这是我的代码,我无法让最后一个IF语句正常工作,我希望它只在答案不均匀或奇怪时打印,但几乎每次都会打印。我应该怎么解决?
def evenOdd(x):
for x in range (1, 6):
num= random.randrange(1,101)
ans=raw_input("Is" + str(num) + "Odd or Even?")
if (num % 2 == 0 and ans=="even") or (num % 2 == 1 and ans == "odd"):
print "correct"
if (num % 2 == 0 and ans=="odd") or (num % 2==1 and ans == "even"):
print "incorrect"
if (num % 2 ==0 or num % 2 == 1 and ans != "odd" or ans != "even"):
print "Please answer with Even or Odd"
答案 0 :(得分:1)
问题在于,在您的上一个if
中,您需要单独检查每个相等而不是作为群组。
您需要将它们分组为逻辑分组。另外,我不知道为什么这是一个你从不使用的输入函数。这对你有用:
import random
for x in range(1, 6):
num = random.randrange(1, 101)
ans = input("Is" + str(num) + "Odd or Even?")
if (num % 2 == 0 and ans == "even") or (num % 2 == 1 and ans == "odd"):
print("correct")
if (num % 2 == 0 and ans == "odd") or (num % 2 == 1 and ans == "even"):
print("incorrect")
if (ans != "odd" or ans != "even"):
print("Please answer with Even or Odd")
最后一行的更改是因为您实际上并不需要检查该数字是奇数还是偶数,只是用户回复了'odd'
或'even'
以外的其他内容。