确定数字是奇数还是偶数

3
我正在添加这个,
def check(digit):
     if digit % 2 == 0:
         print("Even number")

check()

而作为回报,我收到一个错误,内容是:
 Traceback (most recent call last):
 File "<pyshell#9>", line 1, in <module>
 check()
 TypeError: check() missing 1 required positional argument: 'digit'

有人可以帮我弄清楚我做错了什么吗?

1
顺便说一下,如果命名得当(例如def is_odd(digit)),并且函数返回结果而不是打印它,那么您的函数将更有用。def is_odd(digit): return digit%2 就可以很好地工作,因为这样您就可以测试 if is_odd(7): #do something - Adam Smith
2
@AdamSmith 我喜欢在解决简单的Python问题时使用SO fine。记录这个问题并提供一个好的答案,让其他新手也能找到有何妨呢? - iwein
1
如果错误不够清晰明了,我会同意@iwein的说法。但是这个错误非常具体和明确,它清楚地说明了问题所在:缺少一个参数。 - towr
1
@iwein 没有任何伤害,因为您将从不止一个而是三个对OP问题的良好回答中看到。话虽如此,这不是一个好问题,所以没有太多理由给它点赞。事实上,缺乏研究(字面上是在Google搜索“缺少必需的位置参数”)加上错误的微不足道性质,导致我投票关闭该问题,因为这是排版错误或无法重现。 - Adam Smith
1
@towr 但对于不知道这意味着什么的人,或者当异常返回一堆红色的乱码时不知道该搜索什么的人来说,这是一个合适的问题。这个问题针对他的问题具体,提供了我们帮助他所需的所有信息,并且可以帮助其他人解决类似的问题。 - flakes
显示剩余3条评论
3个回答

6

您没有给函数check传递任何参数。另外,您还需要缩进if语句。

def check(digit):
     if digit % 2 == 0:
         print("Even number")
     else:
         print("Odd number")

check(3) # Prints "Odd number"
check(4) # Prints "Even number"

哇!我明白了,我看到了我的错误,对于这个非常愚蠢的基础问题我很抱歉,我目前是新手。谢谢!! - Palermox
Palermox:不知道某件事情并不等同于愚蠢。继续学习吧 ;) - Elias Benevedes

4

您的代码有误。请尝试以下代码:

def check(digit):
     if digit % 2:
         print("Odd number")
     else:
         print("Even number")

您需要提供要检查的数字!

check(5)
Odd number
check(2)
Even number

3

您需要向函数传递一个数字,例如 check(2)。否则它怎么知道要检查哪个数字呢?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接