作为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进行单独测试,但从长远来看,这是不可能的。当然,必须有一些更多的Pythonic方式?
有关用法的说明: 代码在一个函数内部使用,该函数接受一个参数(一次4个变量中的1个),具体取决于应该进行哪些(var1-4)不同的打印输出。变量由用户输入,存储在函数外部,可以在0-10的范围内,彼此独立。
答案 0 :(得分:1)
您正在将整数与列表进行比较,该列表始终为False。
我猜你试图检查列表中的所有值是否等于1.你可以这样做:
all(item == 1 for item in items)
您也可以这样做:
if var1==var2==var3==var4==1:
print "ok"