python-3.x - 基数为 10 的 int() 的无效文字:''。叹
问题描述
这里的初学者,所以要友善。
这是我的示例代码。
def iq_test(numbers): for i in numbers: if int(i) %2 != 0: return i
这段代码总是返回 base10 的无效文字......这很奇怪,因为当 mod 运算符为 == 0 时,它不会返回错误。我哪里错了?
我尝试过 .isdigit,尝试使用浮点数,但没有任何乐趣。
解决方案
您还没有说明您的要求是什么,所以我猜它是“从包含数字和字母混合的字符串中提取第一个奇数”。
您还想知道为什么 i % 2 == 0 允许某些特定的测试工作,但这可能只是因为被测试的字符串只包含偶数。
这是为回答该假设问题而调整的函数:
def iq_test(numbers):
for i in numbers:
if str(i).isdigit() and int(i) %2 != 0:
return i
请注意将字符串/列表的每个元素测试为整数的字符串化要求。
推荐阅读
- python-3.x - 类型错误:insert_results() 缺少 1 个必需的位置参数:'ergebnisse'
- python - 单击按钮后更改 Pyglet 窗口的内容
- angular - 嵌套过滤器不起作用
- compilation - 编译/配置时如何指定额外的 include 和 lib 目录?(回复:自动配置/配置)
- xml - 基于 PowerShell 中的模式提取 XML 节点和值
- angular - 以编程方式访问 NGRX 状态中的值
- javascript - 从 JS 中动态添加 CSS 关键帧,为动画添加随机性
- python - 按其他列表过滤列表系列
- amazon-ec2 - AWS SSH 密钥是否符合 HIPAA 或 Sox 标准?
- visual-studio - 传感器模拟器构建失败并出现 LNK1112 错误