作为Python的新手,我脑海中有这样的伪代码:
if vars 1-4 are passed and all of them are 1:
if it’s var1 or 2:
print("a")
if it’s var3
print("b")
if it’s var4
print("c")
if vars 1-4 are passed and all of them are either 2, 3 or 4:
if it’s var1 or 2:
print("d")
if it’s var3:
print("e") and so on
if vars 1-4 are passed and all of them are either 0 or 5-10:
if it’s var1 or 2:
print("f") and so forth我试过几种方法,但还没有办法。例如:
if arg in [var1, var2, var3, var4] and [var1, var2, var3, var4] == 1:
if var in [var1, var2]:
print("a")
if var == var3:
print("b")
if var == var4:
print("c")
if arg in [var1, var2, var3, var4] and 2 <= [var1, var2, var3, var4] <= 4:
if var in [var1, var2]:
print("d") #and so on
if arg in [var1, var2, var3, var4] and 5 <= [var1, var2, var3, var4] <= 10: #+ put the 0
if var in [var1, var2]:
print("f") #and so forth使用if test in [var1, var2, var3, var4]的部分可以很好地使用所有4个变量,但对于检查它们是否等于1则不行。而且,第二部分,带范围的第二部分(范围+ 0)更糟糕。我可能会把所有这些分开,然后在每个人前面用一个OR单独测试,但从长远来看,如果有更多的变量,那是不可能的。当然,一定还有更多的毕达通方式吗?
用于澄清用法:代码是在一个函数中使用的,该函数接受一个参数(每次4个变量中的一个),这取决于应该根据哪些(var1-4)不同的输出。变量由用户输入,存储在函数之外,可以在0-10的范围内,彼此独立。
发布于 2015-09-13 06:00:13
您正在将一个整数与一个总是导致False的列表进行比较。
我猜您正在尝试检查列表中的所有值是否等于1。您可以这样做:
all(item == 1 for item in items)你也可以这样做:
if var1==var2==var3==var4==1:
print "ok"https://stackoverflow.com/questions/32546776
复制相似问题