当我运行代码时,小于或等于6的数字显示为:x: 1。如果随机数是7,它不会说x: 2。如果随机数在6-9之间,它会打印x: 2。
import random
for k in range(1,10):
rnum = random.randint(1, 10)
print(rnum)
if rnum <= 6:
x = 1
print("x:",x)
elif rnum == (6,9):
x = 2
print("x:", x)
elif rnum == 10:
x = 3
print("x:", x)
运行代码时:
8
9
1
x: 1
1
x: 1
5
x: 1
1
x: 1
4
x: 1
9
4
x: 1
Process finished with exit code 0
发布于 2017-03-20 00:03:01
目前,您使用的是不正确的语法的elif rnum == (6,9):
。尝试使用翻译为“如果x小于或等于9,大于或等于6”的elif rnum <= 9 and rnum >= 6:
。
发布于 2017-03-20 13:21:35
当您检查elif rnum == (6,9):
时,左手侧是int
,右边是tuple
。平等是行不通的。
您可以使用in
检查元组的成员资格,但是元组将显式地需要所有值:elif rnum in (6,7,8,9):
。另一种选择是使用范围,但请记住,对于上限范围是不包括在内的,因此应该是:elif rnum in range(6,10):
。
https://stackoverflow.com/questions/42893885
复制相似问题