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