在我的程序中出现类型错误(python 的初学者)

Getting a type error in my program (beginner at python)

我正在尝试编写一个程序,使用 while 循环重复读取命令行的输入。我想跳过偶数,只打印奇数。输入始终有效。

这是我得到的:

    import sys

    num = sys.argv

    while True:
      for x in num:
        if x % 2 == 0:
           continue
      else: 
        print(x)

我收到此错误:"TypeError: not all arguments converted during string formatting"

如果使用 sys.argv,则不需要 while True,而您的 else 缩进错误。 导入系统

num = sys.argv


for x in num:
    if int(x) % 2 != 0:
        print(x)

或者如果你想让它 运行 像你说的那样连续不断地尝试:

while True:
    x = input("Number: ")
    if int(x) % 2 != 0:
        print(x)

sys.argv 包含字符串,而不是数字。您可以使用 int() 函数将字符串转换为数字。

但是你应该跳过sys.argv的第一个元素,因为它包含脚本的名称,不太可能是数字。

不需要 continue 语句。只需反转测试的意义并在那里打印值即可。

import sys

num = sys.argv[1:]

for x in num:
    if int(x) % 2 == 1:
        print(x)

等效的 while 循环是:

i = 1
while i < len(sys.argv):
    if int(sys.argv[i]) % 2 == 1:
        print(sys.argv[i])
    i += 1