这个问题在这里已有答案:
问题
If语句即使不符合参数,也会让条件通过
描述
当选择等于列表操作的索引2或列表的索引3时,应该运行这段代码。然而,当选择等于列表操作的索引1时,代码仍然运行
if v.selection == v.operations[2] or v.operations[3]:
print('arrived at a sub n missing - geometric')
print('index of ', v.selection, 'in the list is ', v.operations.index(v.selection))
if not v.aSub1:
v.aSub1 = input('first value in sequence>>>')
if not v.r:
v.r = input('common rate>>>')
if not v.n:
v.n = input('index (n)>>>')
pass
pass
pass
你是从错误的角度看if语句。你写的评价为:v.selection等于v.operations [2]或v.operations [3]不是假的。就此而言,任何不是0的东西都不是假的。这是一个例子:
a = 5;
b = 6;
c = 7;
if (a == b or c):
print("hey")
else:
print("nay")
这导致:
hey