在我的程序中出现类型错误(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
我正在尝试编写一个程序,使用 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