首页 > 解决方案 > 基数为 10 的 int() 的无效文字:''。叹

问题描述

这里的初学者,所以要友善。

这是我的示例代码。

def iq_test(numbers): for i in numbers: if int(i) %2 != 0: return i

这段代码总是返回 base10 的无效文字......这很奇怪,因为当 mod 运算符为 == 0 时,它不会返回错误。我哪里错了?

我尝试过 .isdigit,尝试使用浮点数,但没有任何乐趣。

标签: python-3.x

解决方案


您还没有说明您的要求是什么,所以我猜它是“从包含数字和字母混合的字符串中提取第一个奇数”。

您还想知道为什么 i % 2 == 0 允许某些特定的测试工作,但这可能只是因为被测试的字符串只包含偶数。

这是为回答该假设问题而调整的函数:

def iq_test(numbers):
    for i in numbers:
        if str(i).isdigit() and int(i) %2 != 0:
            return i

请注意将字符串/列表的每个元素测试为整数的字符串化要求。


推荐阅读