我正在做一个为期30天的代码挑战,我的代码通过了5/8的测试,但我找不出它一直失败的原因
参数是:如果N是奇数,则打印怪异;如果N是偶数,并且在2-5的范围内,则打印不奇怪;如果N是偶数,并且在6-20的范围内,则打印怪异;如果N是偶数,并且大于20,则打印不奇怪
N = int(input())
if N % 2 == 0 and range(2-5):
print("Not Weird")
elif N % 2 == 0 and range(6-20):
print("Weird")
elif N % 2 == 0 and N > 20:
print("Not Weird")
elif N % 2 == 1 :
print("Weird")
发布于 2019-10-05 08:19:03
if N % 2 == 0 and range(2-5):
并不是你想的那样,它应该是这样的:
if N % 2 == 0 and N in range(2, 6):
具体地说:
在你的例子中,每个子条件(在‘’的两边)都应该是complete.
发布于 2019-10-05 08:28:44
1)定义了begging和end的函数range
是一个带2个参数的函数。因此,我建议您使用它作为range(x,y)
,而不是range(x-y)
。
如果你像使用range(2-5)
一样使用它,你实际上是在请求range(-3)
。当仅与1个参数一起使用时,函数range
将为您提供从0到输入参数的int
列表。
如果没有大于0 和-3\f25-3\f6的整数-3\f25-3,则得到一个空列表。
2)另外,请注意上限不包含在内:
>>> for i in range(2,5):
... print(i)
...
2
3
4
因此,您可以考虑在第一种情况下使用range(2,6)
,在第二种情况下使用range(6,21)
,以此类推。
发布于 2019-10-05 08:26:27
要扩展@paxdiablo的答案,您还可以使用range
的step
参数来测试偶数:
if N in range(2, 6, 2):
https://stackoverflow.com/questions/58244362
复制相似问题