# 第96期-基础结构:字符串 Fizz Buzz
Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。
# 1 问题描述
写一个程序,输出从 1 到 n 数字的字符串表示。
如果 n 是3的倍数,输出“Fizz”;
如果 n 是5的倍数,输出“Buzz”;
如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例 1:
输入: n = 15
输出: ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
示例 2:
输入: n = 5
输出: ['1', '2', 'Fizz', '4', 'Buzz']
初始代码
from typing import List
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
#在此之间填写代码
print(Solution().fizzBuzz(15))
print(Solution().fizzBuzz(5))
2
3
4
5
6
7
# 2 解题思路
- 标签:字符串
- 就像你每次玩 FizzBuzz 那样,你只需要判断这个数是能被 3 整除? 还是能被 5 整除? 或者是都能被整除。
- 初始化一个空的答案列表。
- 遍历 1 ... N。
- 对于每个数,判断它能不能同时被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案列表。
- 如果不行,判断它能不能被 3 整除,如果可以,把 Fizz 加入答案列表。
- 如果还是不行,判断它能不能被 5 整除,如果可以,把 Buzz 加入答案列表。
- 如果以上都不行,把这个数加入答案列表。
# 3 解题方法
from typing import List
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
i=1
a=[]
while i<=n:
if i%3==0 and i%5==0:a.append('FizzBuzz')
elif i%3==0:a.append('Fizz')
elif i%5==0:a.append('Buzz')
else:a.append(str(i))
i+=1
return a
print(Solution().fizzBuzz(15))
print(Solution().fizzBuzz(5))
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
第1-3,15-16行: 题目中已经给出的信息,运行代码时要根据这些代码进行编辑
第4行: 创建变量i用于索引
第5行: 定义空列表a用于存放结果
第6行: 当i<=n的时候,执行循环
第7行: 判断它能不能同时被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案a列表
第8行: 如果不行,判断它能不能被 3 整除,如果可以,把 Fizz 加入答案a列表
第9行: 如果还是不行,判断它能不能被 5 整除,如果可以,把 Buzz 加入答案a列表
第10行: 如果以上都不行,把这个数加入答案a列表
第11行: i+=1用于下次循环
第12行: 返回答案a列表
代码运行结果为:
# 4 视频解析
高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码