python百题大冲关-Fizz Buzz 经典问题

DaLongggggg 38 0 0

挑战介绍

给定一个整数 num,从 1 到 num 按照下面的规则返回每个数:

如果这个数被 3 整除,返回 'Fizz'。
如果这个数被 5 整除,返回 'Buzz'。
如果这个数能同时被 3 和 5 整除,返回 'FizzBuzz'。
如果这个数既不能被 3 也不能被 5 整除,返回这个数字的字符串格式。

挑战内容

本次挑战中,你需要在 fizzbuzz.py 文件中补充函数 fizz_buzz 的空缺部分。

fizz_buzz 函数接受一个参数,num 用于指定传入的整数;
fizz_buzz 函数输出一个数组。

你需要补充 fizz_buzz 函数,使 fizz_buzz 函数可以识别从 1 到 num 中能被 3 或 5 整除的数。要求如下:

对于传入的整数 num,返回长度为 num 的数组,数组的每个值由 Fizz Buzz 的规则构成;
如果传入的数为 None,需要使用 raise 语句显示 TypeError。
如果传入的整数小于 1,需要使用 raise 语句显示 ValueError。
class Solution(object):

    def fizz_buzz(self, num):
        if num is None:
            raise TypeError('num cannot be None')
        if num < 1:
            raise ValueError('num cannot be less than one')
        results = []
        for i in range(1, num + 1):
            if i % 3 == 0 and i % 5 == 0:
                results.append('FizzBuzz')
            elif i % 3 == 0:
                results.append('Fizz')
            elif i % 5 == 0:
                results.append('Buzz')
            else:
                results.append(str(i))
        return results

因为需要返回长度为num的数组 索引从0开始 所以在遍历时需要将数值加1 通过ifelifelse条件语句来筛选添加符合要求数值 append() 方法用于在列表末尾添加新的对象。

预览图
收藏
评论区