我有这段Python代码:

    for num in range(1,21):
    string = ""
    if num % 3 == 0:
        string = string + "Fizz"
    if num % 5 == 0:
        string = string + "Buzz"
    if num % 5 != 0 and num % 3 != 0:
        string = string + str(num)
    print(string)


而且我想知道如何制作它,以便以三的倍数打印数字+“ Fizz”。

即我们应该看到

1
2
3 Fizz
4
Buzz
6 Fizz
7
8
9 Fizz
Buzz
11
12 Fizz
13
14
FizzBuzz
16
17
18 Fizz
19
Buzz


代替当前正在打印的内容:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz


我试过了

if num % 3 == 0:
        string = string.extend("Fizz")


但这返回了AttributeError: 'str' object has no attribute 'extend'。与.append相同。

您是否对如何在Python范围内以3的倍数打印范围内的数字以及其后的单词/字符串“ Fizz”有任何建议?

谢谢!

最佳答案

更改

string = string + "Fizz"

进入:

string = str(num)+ " " + "Fizz"


或者,如@ArpitSvt所建议:

string = "{} Fizz".format(num)


注意:str函数将int num显式转换为str类型。

10-06 06:28