Python - 不支持的操作数类型:%:'list'和'int'

4
我已经查看了stackoverflow上的其他问题,但它们不同,并且似乎不适用于这个问题,所以在这里开始。
我编写了一个简单的脚本,使用range函数将1-49之间的每个数字打印出来并放入列表中。
现在我定义了一个函数来计算哪些数字是奇数,哪些数字是偶数,下面是我的代码:
def check(number):
    if number%2==0:
        print "Even Numbers:",(number)
    else:
        print "Odd Numbers:",(number)


a = range(1,50)

print a

check(a)

当我运行脚本时,出现了以下错误:
unsupported operand type(s) for %: 'list' and 'int'

我知道这意味着%运算符不支持“列表”或“整数”,但我该如何解决它?

我尝试了这个:

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


a = range(1,50)

b = str(a)

check(str(a))

但是出现了错误:
Traceback (most recent call last):
  File "showEvenNumbers.py", line 12, in <module>
    check(str(a))
  File "showEvenNumbers.py", line 2, in check
    if number%2==0:
TypeError: not all arguments converted during string formatting

我有点不确定该怎么做。

任何帮助将不胜感激。


1
你需要以某种方式迭代列表。 - Matt Ball
谢谢Mat,我有一个空白的瞬间。在我发布问题后,我意识到Blender和你让我思考我想要做什么。谢谢 :) - BubbleMonster
1个回答

11

a 是一个列表,但 check 函数期望接收单个整数。您需要迭代列表:

for item in a:
    check(item)

很合理,我知道它一定是一个简单的东西。谢谢 Blender,现在可以工作了。我以为那个(数字)需要一个整数,但我错过了它。等系统允许,我就会接受它。 - BubbleMonster

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