python - 在我的程序中出现类型错误(python 初学者)
问题描述
我正在尝试编写一个使用 while 循环重复读取命令行输入的程序。我想跳过偶数,只打印奇数。输入始终有效。
这是我所拥有的:
import sys
num = sys.argv
while True:
for x in num:
if x % 2 == 0:
continue
else:
print(x)
我收到此错误:“TypeError:字符串格式化期间并非所有参数都转换了”
解决方案
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
推荐阅读
- javascript - 为什么数组中的对象返回未定义?
- python - 如何创建一个 python 模块,用户可以在其中调用功能(String.substringing)以获取要在函数中使用的相应值
- asp.net - ASP.NET 自己的主机阻止来自具有“.json”扩展名的文件的 404 请求。Html、txt、js 不阻塞。Cors 关闭,行为相同
- python - Selenium 中 XPath 的奇怪行为与 python
- c# - c# Sqlite查询单字符串实例
- excel - 使用某些标准然后从值中减去的 Excel 公式?
- javascript - Jquery:从经过美化的 url 获取查询值
- ios - 获取'设备
未找到!' 运行 ideviceinfo 命令后的错误消息 - cytoscape.js - 如何使用鼠标拖放在 cytoscape 中的两个节点之间绘制边缘
- c++ - 无冲突的哈希函数