# 第96期-基础结构:字符串 Fizz Buzz

Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。

# 1 问题描述

写一个程序,输出从 1 到 n 数字的字符串表示。

  1. 如果 n 是3的倍数,输出“Fizz”;

  2. 如果 n 是5的倍数,输出“Buzz”;

  3. 如果 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))
1
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))
1
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列表

代码运行结果为:
image.jpg

# 4 视频解析

高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码
AI大学堂公众号.png

更新于: 12/28/2021, 7:43:14 AM