该程序的目的是通过检查该数字是否可以除以 2 而没有余数来查找字符串中的奇数,代码如下:
def iq_test(numbers):
for x in numbers.split():
if x % 2 != 0:
return x
iq_test("1 2 3 4 5")
这是我运行代码时收到的错误:
Traceback (most recent call last):
File "python", line 6, in <module>
File "python", line 3, in iq_test
TypeError: not all arguments converted during string formatting
任何帮助,将不胜感激
当你使用%
(或更详细的operator.mod) 在字符串文字上,你是尝试格式化:
>>> a = 'name'
>>> ('%s' % a) == 'name'
True
但你打算用这个int
,因此您需要将字符串文字转换为整数:
if int(x) % 2 != 0
Then mod
将尝试查找模数而不是尝试格式化。
但是,您的函数一旦找到第一个奇数就会返回。如果您打算找到所有奇数而不仅仅是第一个,您可以将奇数累积在一个list
并返回joined list:
def iq_test(numbers):
lst = []
for x in numbers.split():
if int(x) % 2 != 0:
lst.append(x)
return ' '.join(lst)
iq_test("1 2 3 4 5")
# "1 3 5"
另一个时尚的选择是尝试生成器函数/表达式和产量
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)