挑战介绍
给定一个整数 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() 方法用于在列表末尾添加新的对象。