繁体   English   中英

Python 3:N 是奇数且大于 - 代码无法正常工作

[英]Python 3: N is odd number and greater than - code not working properly

我是 Python 的新手,我偶然发现了一个名为 HackerRank 的有趣网站,您可以在其中通过解决任务来取得进步。 我坚持这个: https://www.hackerrank.com/challenges/py-if-else/problem

尽管有多种方法可以解决此问题,但我已尝试使用任务描述中所示的 elif 语句来解决此问题,但由于某种原因,我无法解决此问题,因为我的代码的最后一行(elif 语句)不起作用.

代码:

if __name__ == '__main__':
N = int(input())
num = N % 2
if num > 0:
    print("Weird")
elif num == 0 and range(6,20):
    print("Weird")
elif num == 0 and range(2,5):
    print("Not Weird")
elif num == 0 and N > 20:
    print("Not Weird")

所以一切正常,直到检查数字是否为偶数且大于 20。我用谷歌搜索和搜索,在我看到的所有地方,这个和运算符应该工作,但它在我的情况下不工作。 谁能帮忙?

您对range (...) 的使用是错误的。

if __name__ == '__main__':
    N = int(input())
    num = N % 2
    if num > 0:
        print("Weird")
    elif num == 0 and 6 <= N <= 20:
        ...

只是为了使用您的范围理念:

# The example bellow just work with int numbers and is more slow than the above approach.
elif num == 0 and N in range(2,21):
if __name__ == '__main__':
   N = int(input())
num = N % 2
if num > 0:
   print("Weird")
elif num == 0 and N in range(2,6):
   print("Not Weird")
elif num == 0 and N in range(6,21):
   print("Weird")
elif num == 0 and N > 20:
   print("Not Weird")

我认为它应该是N in range 并且 range(2,6) 意味着 [2 3 4 5] 如果你不在 range 中使用 N 你会得到错误的答案。 我认为这与您的条件检查错误无关,而是关于难以从范围中找出值的错误。

n = int(input())

while True:
    if n==0:
        print("please enter positive integer")
    break

if (n%2) != 0:
    print("Weird")

elif (n%2) == 0 and 2<= n <= 5:
    print("Not Weird")

elif (n%2) ==0 and 6 <= n <= 20:
    print("Weird")

elif (n%2) ==0 and n > 20:
    print("Not Weird")
if n%2!=0:
    print("Weird")

elif n%2==0 and n in range(2,6):
    print("Not Weird")

elif n%2==0 and n in range(6,21):
    print("Weird")

elif n%2==0 and n>20:
    print("Not Weird")
if __name__ == '__main__':
    n = int(input().strip())
    num = n % 2
    if num != 0:
        print("Weird")
    elif (num == 0):
        if n in range(2, 5):
            print("Not Weird")
        if n in range(6, 21):
            print("Weird")
        if (n > 20):
            print("Not Weird")

看看这个问题......范围格式让我第一次(2:5)而不是(2, 5) 然后还有6, 21而不是6, 20 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM