分支循环 轮赌盘颜色python

img

img


请问我的代码哪里有问题呀

帮你改好了 ,希望采纳
直接用 n % 2 != 0 来判断 n 是不是奇数就可以啦

n = int(input())

def colour(n):
    if n <= 36 and n>= 0:    # n 在 036 才会进行判断颜色
        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的情况,

img


if n==1 or n==3 or n==5 or n==7 or n==9
或者
if n %2 ==1

确定n的范围之后,应该去判断n是奇数还是偶数,而不是用or
建议题主再问问题直接把代码粘出来,不要发截图