if分支里的赋值不算已经定义了吗
from random import randintvalue = 37
#value = randint(0,37)
color = ''
num = ''
a = 0
if value == 1 or 3 or 5 or 7 or 9 or 12 or 14 or 16 or 18 or 19 or 21 or 23 or 25 or 27 or 30 or 32 or 34 or 36:
color = 'Red'
elif value == 0 or value == 37:
a = 1
else:
color = 'Black'
if value % 2 == 0:
num = 'Even'
else:
num = 'Odd'
if value >= 1 and value <= 18:
region = '1 to 18'
else:
region = '19 to 36'
if a == 1:
if value == 0:
print('Pay 0')
else:
print('Pay 00')
else:
print('The spin resulted in %i...' %value)
print('Pay', value)
print('Pay', color)
print('Pay', num)
print('Pay', region)
这里的a在第一个分支内已经定义了,为什么当随机数是37的时候程序不运行第一个if里面的elif呢,永远显示color = red,a = 0 from random import randint
value = 37
#value = randint(0,37)
color = ''
num = ''
if value == 1 or 3 or 5 or 7 or 9 or 12 or 14 or 16 or 18 or 19 or 21 or 23 or 25 or 27 or 30 or 32 or 34 or 36:
color = 'Red'
elif value == 0 or value == 37:
a = 1
else:
color = 'Black'
if value % 2 == 0:
num = 'Even'
else:
num = 'Odd'
if value >= 1 and value <= 18:
region = '1 to 18'
else:
region = '19 to 36'
if a == 1:
if value == 0:
print('Pay 0')
else:
print('Pay 00')
else:
print('The spin resulted in %i...' %value)
print('Pay', value)
print('Pay', color)
print('Pay', num)
print('Pay', region) if value == 1 or 3 or 5 or 7 or 9 or 12 or 14 or 16 or 18 or 19 or 21 or 23 or 25 or 27 or 30 or 32 or 34 or 36:
次判定永远为True
每个or都是独立的判断
修改为if value == 1 or value == 3 or value == 5 ....
或者修改为if value in[ 1,3,5,7,9,...] 逃兵 发表于 2021-10-13 21:08
if value == 1 or 3 or 5 or 7 or 9 or 12 or 14 or 16 or 18 or 19 or 21 or 23 or 25 or 27 or 30 or 32...
为什么每次判断都为true
1005663861 发表于 2021-10-13 21:12
为什么每次判断都为true
每个or都是独立的
bool类型,0为假,非0为真
if value == 1 or 3:
value == 1 或者实数 3
这里实数3 本身代表的含义是bool(3),即为True,返回为True
页:
[1]