Python if语句hackerrank

Python if语句hackerrank,python,if-statement,Python,If Statement,以下是来自挑战的问题: 如果是奇数,则打印奇数 如果是偶数且在2到5的范围内,则打印不奇怪 如果为偶数且包含在6到20的范围内,则打印“怪异” 如果是偶数且大于20,则打印不奇怪 我的代码: if __name__ == '__main__': n = int(input().strip()) if (n%2==1): #print Weird for odd number print("Weird") else if(n%2==0 for n in

以下是来自挑战的问题:

如果是奇数,则打印奇数
如果是偶数且在2到5的范围内,则打印不奇怪
如果为偶数且包含在6到20的范围内,则打印“怪异”
如果是偶数且大于20,则打印不奇怪

我的代码:

if __name__ == '__main__':
    n = int(input().strip())

if (n%2==1):  #print Weird for odd number
    print("Weird")
 
else if(n%2==0 for n in range(6,21)):  #to print Weird as output for numbers between 6 to 20 
    print("Weird")

else if(n%2==0 for n in range(2,6)):   #to print No weird for even number between 2 to 5
    print("Not Weird")
  
else if(n>20 and n%2==0):  #to print Not Weird for even greater than 20 
    print("Not Weird")

我得到了24的错误输出。我并没有表现得很奇怪,而是作为输出变得很奇怪。您能告诉我哪里出错了吗?

在for循环中,您将迭代器变量取为'n',并且输入也是'n',这是令人困惑和错误的
最重要的是,为什么要运行一个循环来检查一个数字是否在一个范围内

试试这个

N = int(input())
if(N%2!=0):
    print("Weird")
elif(N%2==0):
    if(N>=2 and N<=5):
        print("Not Weird")
    if(N>=6 and N<=20):
        print("Weird")
    if(N>20):
        print("Not Weird")
N=int(输入())
如果(N%2!=0):
印刷品(“怪异”)
elif(N%2==0):
如果(N>=2,N=6,N20):
打印(“不奇怪”)

HackerRank确实有论坛部分。因此,如果你问这个问题,你会得到一个更好的答案。检查
(n%2==0表示范围(6,21)内的n
。这不是为你的情况设置条件的正确方法。我通过将“for”替换为“and;”进行了检查。但需要理解为什么在此处使用for失败。我正在尝试使用for and range@Ahmed检查条件