Python 为什么要打印输出;“不是威德”;当输入为18?
当输入为18时,为什么输出打印为“Not Wierd”Python 为什么要打印输出;“不是威德”;当输入为18?,python,if-statement,Python,If Statement,当输入为18时,为什么输出打印为“Not Wierd” if __name__ == '__main__': n = int(input().strip()) if(n%2==0): if(range(2,5)): print("Not Weird") elif(range(6,20)): print("Weird") elif(n>20): print(
if __name__ == '__main__':
n = int(input().strip())
if(n%2==0):
if(range(2,5)):
print("Not Weird")
elif(range(6,20)):
print("Weird")
elif(n>20):
print("Not Weird")
else:
print("Weird")
使用
n在范围内(…)
查看n
是否在范围内。问题在于您的使用或range()
,它返回一个iterable,这是一个真实值(如果不是空的话),因此您的第一个条件始终为真
更新它,以便检查您的号码是否在range()
如果(范围(2,5))没有让任何感官怀疑
如果范围(2,5):
将始终是真的。任何非空范围都是真的-y,因此这将始终打印偶数的“不奇怪”
。你期望如果(范围(2,5))
做什么?如果n在范围(2,5)内,则使用或如果n在范围(2,5)内,则使用
...
if(n in range(2,5)):
...