这个问题已经在这里有了答案:

该程序为指定的字符串返回一个真理表。 我想从控制台读取字符串,但我不知道如何创建变量。 我尝试了(几乎)一切,但是没有用。 请帮我。 对不起我的英语不好。

from itertools import izip, product, tee

# Logic functions: take and return iterators of truth values

def AND(a, b):
    for p, q in izip(a, b):
        yield p and q

def OR(a, b):
    for p, q in izip(a, b):
        yield p or q

def NOT(a):
    for p in a:
        yield not p

def EQUIV(a, b):
    for p, q in izip(a, b):
        yield p is q

def IMPLIES(a, b):
    for p, q in izip(a, b):
        yield (not p) or q

def XOR(a,b):
    for p,q in izip(a,b):
        yield  (p and (not q)) or ((not p) and q)

def create(num=2):
#''' Returns a list of all of the possible combinations of truth for the  
given number of variables.
#ex. [(T, T), (T, F), (F, T), (F, F)] for two variables '''
    return list(product([True, False], repeat=num))

def unpack(data):
#''' Regroups the list returned by create() by variable, making it suitable
for use in the logic functions.
#ex. [(T, T, F, F), (T, F, T, F)] for two variables '''
    return [[elem[i] for elem in lst] for i, lst in enumerate(tee(data,
    len(data[0])))]

def print_result(data, result):
''' Prints the combinations returned by create() and the results returned
by the logic functions in a nice format. '''
    n = len(data[0])
    headers = 'abcdefghijklmnopqrstuvwxyz'[:n]
    print headers + "|RESULT"
    print '-' * len(headers) + '+------'
    for row, result_cell in izip(data, result):
        print ''.join({True: 'T', False:'F'}[cell] for cell in row) + '|' +
        ' ' + {True: 'T', False:'F'}[result_cell]




if __name__ == '__main__':  
    data = create(num = 2)
    a,b = unpack(data) 
    result = IMPLIES(a,b)     
    print_result(data, result)     

===============>>#1 票数:2 已采纳

我以前遇到过这个问题,答案是使用字典。 这基本上是您需要的

var_dict = {}
my_list = ['a', 'b', 'c', 'd']
for each in my_list:    
    #Create a new dictionary key if it the current iteration doesn't already exist
    if each not in var_dict.keys():
        var_dict[each] = <THE VALUE YOU WISH TO SET THE VARIABLE TO>
    else:
        pass 
        #Or do something if the variable is already created

  ask by Daril Aleman Morales translate from so

未解决问题?本站智能推荐:

1回复

Python动态创建变量名[重复]

这个问题在这里已有答案: 创建多个变量[重复] 2个答案 我有一些逻辑需要重复6次。 结果存储在变量的末尾,但我需要变量名称为data1,data2,data3等。所以,如果我有: 如何根据循环编号获取名为data1,data2等的数据变量?
3回复

是否可以在Python中“动态”创建局部变量? [重复]

这个问题在这里已有答案: 动态设置局部变量[重复] 7个答案 是否可以使用Python代码创建局部变量,只给出变量的名称(字符串),以便后续调用locals()中的“'xxx'”将返回True? 这是一个视觉: 出于什么目的,我需要这个技巧完全是另一个
1回复

在python中的循环中创建不同的变量[重复]

这个问题在这里已有答案: 如何创建可变数量的变量? 13个答案 我想在for循环中创建变量,如下所示: 我想要的答案是: 我怎么能在python中做到这一点? 谢谢
2回复

Python:什么是“变量”? [重复]

这个问题已经在这里有了答案: 在Python赋值运算符中使用逗号和下划线的含义? 4个答案 python中的“线”是什么意思或在做什么? 我收集到它与对象中的可迭代对象有关。
1回复

为列表中的每个x> 0创建新变量(Python)[重复]

这个问题已经在这里有了答案: 如何创建可变数量的变量? 13个答案 Python中的动态变量[重复] 2个答案 好吧,我掉进了XY陷阱。 抱歉 我将重写我的问题: 我有一个数字清单,例如。 l = [1,3,5,1,0,0,0] 我需要
5回复

如何在Python中创建模块范围的变量? [重复]

这个问题在这里已有答案: 在函数中使用全局变量 18答案 有没有办法在模块内部设置全局变量? 当我尝试以最明显的方式执行此操作时,如下所示,Python解释器说变量__DBNAME__不存在。 并在将模块导入另一个文件后 追溯是: ...
4回复

在Python中,如何在循环中创建大量变量? [重复]

这个问题已经在这里有了答案: 如何通过while循环动态创建变量? [重复] 8个答案 我正在python 3.2中寻找一种创建大量变量并为其分配值的方法。 就像是 这将最佳地创建200个变量,分别为cell1X1,cell1Y1,cell2X1,cel
2回复

如何自动创建变量?

我有以下代码: 我想将列表中的名称用作变量名称,并以此方式构造新的变量,让机器完成艰苦的工作。 但是,相反,我得到了:NameError:未定义名称'name_1'。 我究竟做错了什么? 这有可能吗?
4回复

如何自动创建变量?

我刚开始使用python,目前正在制作蛇和梯子游戏。 这是我的代码: 这就是我得到的: 我试图弄清楚为什么它不将“ Alvin”声明为变量,或者为什么我不能将其打印出来。 我不确定自己是否犯了一个愚蠢的错误。
3回复

Python自动完成变量名称

我是Python的新手,并且希望在while循环内使用自动完成的变量。 我尝试举一个最小的例子。 假设我的文件夹中有以下文件,每个文件以相同的字母开头,并以递增的数字开头,但文件名的末尾仅由随机数组成 我想要一段时间的循环 因此,如果我开始循环,则希望它自动处理目录中的所有文