提问者:小点点

if else条件


问题是这样的

我的解决方案:

n= int(input())
if n%2==0:
    if (n >=2 & n<=5):
        print("Not Weird")
    elif n >=6 & n<=20:
        print("Weird")
    else:
        print ("Not Weired")
else:
    print ("Weird")

现在,如果我输入18,那么它应该被打印为“weird”。 但它显示的是“not weird”

我没有找到代码的问题所在。


共3个答案

匿名用户

运算符&是按位的and运算。 相反,您需要逻辑AND,它是通过关键字完成的。

只需将&替换为:

n= int(input())
if n%2==0:
    if (n >=2 and n<=5):    #modified here!
        print("Not Weird")
    elif n >=6 and n<=20:   #modified here!
        print("Weird")
    else:
        print ("Not Weird")
else:
    print ("Weird")

匿名用户

尝试使用:

if n >= 2 and n <= 5:
elif n >= 6 and n <= 20:

而不是二进制和

匿名用户

问题是您使用的是按位和&,而不是逻辑运算符

n= int(input())

if n%2 == 0:
    if n >=2 and n<=5:   # Changed condition
        print("Not Weird")
    elif n >=6 and n<=20:   # Changed condition
        print("Weird")
    else:
        print ("Not Weired")

else:
    print ("Weird")