在整数列表上迭代的问题



我有这样的代码

class Solution:
def fizzBuzz(self, n: int) -> List[str]:
l = []
starting_pos = n-n+1
ending_pos = n+1
for i in range(starting_pos, ending_pos):
l = [i]
for j in l:
if j % 5 == 0 and j % 3 == 0:
l.insert(j, "FizzBuzz")
if j % 3 == 0:
l.insert(j, "Fizz")
if j % 5 == 0:
l.insert(j, "Buzz")
else:
continue

当我运行这个时,我得到这个错误

TypeError: not all arguments converted during string formatting
if j % 5 == 0 and j % 3 == 0:
Line 9 in fizzBuzz (Solution.py)
ret = Solution().fizzBuzz(param_1)
Line 37 in _driver (Solution.py)
_driver()
Line 48 in <module> (Solution.py)

我似乎无法解决这个问题。如果你能帮忙,我会很感激的。

您正在将字符串("FizzBuzz"等)插入列表l中,并对其进行迭代。

j起初是整型,但后来变成了字符串。对于int和string,%的含义是完全不同的。所以表达j % 5意味着其余(j mod 5)当jint,但后来它被解释为字符串格式化,失败与错误。

你可能应该做的是处理i的值,并删除整个内循环。

相关内容

  • 没有找到相关文章

最新更新