不知道问什么运行不正确?

问题遇到的现象和发生背景

leetcode的题目https://leetcode.cn/problems/fizz-buzz/

n = 4
for i in range(1, n + 1):
b = []
if i % 3 == 0:
b.append("Fizz")
elif i % 5 == 0:
b.append("Buzz")
elif i % 5 == 0 and i % 3 == 0:
b.append("FizzBuzz")
else:
a = str(i)
b.append(i)
print(b)

运行结果及报错内容

[4]

这样写输出不对,问题出在哪里了?
应该["1",‘2’,“Fizz”,'4']

b = []写在循环里面的,每次循环都将b赋值成一个空列表,相当于b里面就只存了最后一次循环时往里加的值。

n = 4
b = []
for i in range(1, n + 1):
if i % 3 == 0:
b.append("Fizz")
elif i % 5 == 0:
b.append("Buzz")
elif i % 5 == 0 and i % 3 == 0:
b.append("FizzBuzz")
else:
a = str(i)
b.append(i)
print(b)

img

这个a变量也没有用到啊。 逻辑判断没有问题。