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

时间:2018-05-22 12:26:10

标签: python python-3.x

我是学习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的位置。我用google搜索并搜索到我看到的任何地方,这个和操作符应该可以工作,但它不适用于我的情况。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

您使用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):

答案 1 :(得分:1)

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 范围,范围(2,6)意味着[2 3 4 5] 如果你不在范围内使用N,你会得到错误的答案。我认为这不是关于你的条件检查错误,因为难以从范围中找出值,所以是错误。

答案 2 :(得分:0)

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")

答案 3 :(得分:0)

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")