【发布时间】:2015-07-08 18:06:16
【问题描述】:
问题:
5. 现在编写函数 is_odd(n),当 n 为奇数时返回 True,否则返回 False。
最后,修改它,使其使用对 is_even 的调用来确定其参数是否为奇数。
我必须为 is_even(n) 编写一个函数,当 n 为偶数时返回 True,否则返回 False。这是我的代码:
def is_even(n):
return n % 2 == 0
def is_odd(n):
if is_even(n):
print "This is an even integer."
else:
print "This is an odd integer."
return n % 2 != 0
我的问题: 我是一个完全的初学者,发现编程非常困难,但出于某种原因我喜欢它,但为什么这不起作用?我定义了函数 is_even(n) 和 is_odd(n),将 is_even(n) 放入 is_odd(n) 函数中,如果函数 is_even 等于 true,则编写 if/else else 语句,它应该打印出它是偶数...当我输入 is_odd(3);它打印出“这是一个偶数”并返回 True,即使它应该打印出“这是一个奇数”。
更新:
我把我的代码改成了这个并且工作正常。
def is_even(n):
return n % 2 == 0
def is_odd(n):
if is_even(n) == False:
print "This is an odd integer."
return n % 2 != 0
【问题讨论】:
-
这与您建议的代码不起作用无关(尽管
== True在这里是多余的,您可以只写if is_even(n)),以及与您有关的一切(a.)混合制表符和空格,或者 (b.) 如果缩进的空格数量与缩进它上面的其他块不同。 -
是的,你说得对,我先问了这个问题,并将代码修改为函数内部的函数调用工作的位置,并没有回到这个来改变所提出的问题。我仔细检查了混合和匹配,只使用了没有空格的制表符,并将所有内容缩进了 4 个空格,但仍然收到相同的错误
-
我认为你错过了一些东西,因为如果你说的是真的,它会起作用。尝试将所有选项卡更改为空格以确保安全。
-
我开始了一个新的石板并重新输入了所有内容,它确实有效,所以没有缩进错误,但是当我测试放入 is_odd(3) 的代码时,我得到“这是一个偶数”并且是真的.. 即使它应该是“这是一个奇数”。
-
很确定这只是另一个错字。上面的代码是正确的,适用于我在 Python 2.7 中。
标签: python-2.7