帮你改好了 ,希望采纳
直接用 n % 2 != 0 来判断 n 是不是奇数就可以啦
n = int(input())
def colour(n):
if n <= 36 and n>= 0: # n 在 0 到 36 才会进行判断颜色
if n == 0:
return 'green'
elif 1 <= n <= 10:
if n % 2 != 0:
return 'red'
else:
return 'black'
elif 11 <= n <= 18:
if n % 2 != 0:
return 'black '
else:
return ' red '
elif 19 <= n <= 28:
if n % 2 != 0:
return 'red'
else:
return 'black'
elif 29 <= n <= 36:
if n % 2 != 0:
return 'black'
else:
return 'red '
else:
return 'error'
print(colour(n))
1.首先判断n是否合法中,就不能只判断小于36,还要判断非负
2.n in [1,3,5,7,9]
或写为
n==1 or n==3 or n==5 or n==7 or n==9
否则你的表达式恒为真
其实判断奇数,只要写n%2即可,不要把每种答案都罗列出来
你的 n== 29 or 31 or33 or 35,这种写法完全就是错误的,永远不会有else的情况,
if n==1 or n==3 or n==5 or n==7 or n==9
if n %2 ==1
确定n的范围之后,应该去判断n是奇数还是偶数,而不是用or
建议题主再问问题直接把代码粘出来,不要发截图