我正在尝试将列表中的某些整数转换为字符串,但我一直在收到一个错误,我认为这与将整数转换为字符串有关。我已经尝试过str(),但它似乎没有解决问题。我想我可能做错了什么。我的代码如下:
intList = [1,2,3,4,5]
def fizzbuzz(intList):
for e in intList:
if (e % 3) ==0:
e='Fizz'.join(str(e) for e in intList)
if (e % 5) ==0:
e='Buzz'.join(str(e) for e in intList)
print fizzbuzz (intList)
我收到此错误:
TypeError: not all arguments converted during string formatting
我也尝试过更改它,但不断收到相同的字符串格式错误:
def fizzbuzz(intList):
for e in intList:
if (e % 3) ==0:
intList.append(str('Fizz'))
elif (e % 5) ==0:
intList.append(str('Buzz'))
else:
intList.append(e)
print fizzbuzz (intList)
我无法找到解决字符串错误的另一种方法。我已经四处搜索并认为这可能是%的问题?
答案 0 :(得分:0)
这里有一些问题:
if ('Fizz' % 3) ==0:
Hopefuly这将为您提供足够的洞察力来修复您的代码。如果没有,那么我们就在这里!
答案 1 :(得分:0)
问题在于这部分代码:
if (e % 3) ==0:
e='Fizz'.join(str(e) for e in intList)
if (e % 5) ==0:
e='Buzz'.join(str(e) for e in intList)
如果e
可被3整除,则e
将更改为字符串。然后,下一个if
语句尝试%
e
(字符串)为5.在Python中,带有字符串的%
与使用数字的情况完全不同(它将值替换为它)并且错误消息与之相关。
解决方案是为包含Fizz
或Buzz
的字符串使用不同的变量名。
您的代码还有其他问题;当你碰到它们时再问一遍。