我有这样的代码
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
)当j
int
,但后来它被解释为字符串格式化,失败与错误。
你可能应该做的是处理i
的值,并删除整个内循环。