微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我收到错误 TypeError: Unsupported operand type(s) for %: 'list' and 'int'

如何解决我收到错误 TypeError: Unsupported operand type(s) for %: 'list' and 'int'

我是 Python 新手,但我收到此错误并且不知道如何解决

numbers = [100,50,10,1,2,7,11,17,53,-8,-4,-9,-72,-64,-80]
b=1
while b>=1:
  if (numbers % 2) == 1:
    print(numbers[b])
    b += 2
  else:
    break

解决方法

如果您的要求是求奇数:

numbers = [100,50,10,1,2,7,11,17,53,-8,-4,-9,-72,-64,-80]
for number in numbers:
  if number % 2:
     print(f"Found odd: {number}")
,

numbers 是一个列表,您不能对只有整数的列表使用模。

if (numbers % 2) == 1:

应该看起来像:

if (numbers[b] % 2) == 1:

旁注:在大多数编程语言中,数组/列表从 0 开始。

,

以下是您可以稍微修改自己的代码的方法。请记住,由于 number 是一个列表,您可以运行 numbers%2,因为您不能对列表运行模数,只能对整数运行。在这种情况下使用 for 循环可确保迭代整个列表以提供您正在寻找的奇数

numbers = [100,-80]
b=1
while b>=1:
  for i in numbers:
      if i%2 == 1:
         print(numbers[b])
         b += 2
      else:
        break
,

你得到的错误是因为这一行:

if (numbers % 2) == 1:

您应该看到 what farbiondriven said,但还要注意您是在对 Python 说“将此列表除以 2”,而 Python 不知道该怎么做,因此会抛出错误

,

如果您只想打印给定列表“数字”中的奇数,您可以尝试以下代码。

numbers = [100,-80]
for b in range(len(numbers)):
if numbers[b] % 2 == 1:
    print(numbers[b])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。