Первая проблема, с которой вы столкнулись, заключается в том, что, как только функция python возвращает значение, она останавливается. Таким образом, ваша функция fizzbuzz вернется только один раз, и, поскольку вы всегда начинаете с l oop с 1, возвращаемое значение всегда будет одинаковым (при условии, что n равно или больше 3. Например, fizzbuzz (10) и fizzbuzz). (123) всегда будет возвращать 'fizz' (и распечатывать 1,2, fizz перед возвратом. Это потому, что он вернется, когда я равняюсь 3. Если вы хотите, чтобы функция 'возвращала' несколько значений, поскольку она повторяется, вы должны проверить функции генератора
Однако самое простое решение, вероятно, состоит в том, чтобы fizzbuzz отслеживал счетчик внутри и возвращал сразу все 3 значения:
def fizzbuzz(n):
fizzbuzz=0
fizz=0
buzz=0
for i in range(1,n+1):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
fizzbuzz += 1
elif i % 3 == 0:
print("Fizz")
fizz += 1
elif i % 5 == 0:
print("Buzz")
buzz += 1
else:
print(i)
return fizzbuzz, fizz, buzz