我有这段 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
类型。
关于Python - FizzBuzz - 如何同时打印数字和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54548643/