挑战介绍
给定一个整数 num,从 1 到 num 按照下面的规则返回每个数:
1如果这个数被 3 整除,返回 'Fizz'。 2如果这个数被 5 整除,返回 'Buzz'。 3如果这个数能同时被 3 和 5 整除,返回 'FizzBuzz'。 4如果这个数既不能被 3 也不能被 5 整除,返回这个数字的字符串格式。
挑战内容
本次挑战中,你需要在 fizzbuzz.py 文件中补充函数 fizz_buzz 的空缺部分。
1fizz_buzz 函数接受一个参数,num 用于指定传入的整数; 2fizz_buzz 函数输出一个数组。
你需要补充 fizz_buzz 函数,使 fizz_buzz 函数可以识别从 1 到 num 中能被 3 或 5 整除的数。要求如下:
1对于传入的整数 num,返回长度为 num 的数组,数组的每个值由 Fizz Buzz 的规则构成; 2如果传入的数为 None,需要使用 raise 语句显示 TypeError。 3如果传入的整数小于 1,需要使用 raise 语句显示 ValueError。
1class Solution(object): 2 3 def fizz_buzz(self, num): 4 if num is None: 5 raise TypeError('num cannot be None') 6 if num < 1: 7 raise ValueError('num cannot be less than one') 8 results = [] 9 for i in range(1, num + 1): 10 if i % 3 == 0 and i % 5 == 0: 11 results.append('FizzBuzz') 12 elif i % 3 == 0: 13 results.append('Fizz') 14 elif i % 5 == 0: 15 results.append('Buzz') 16 else: 17 results.append(str(i)) 18 return results
因为需要返回长度为num的数组 索引从0开始 所以在遍历时需要将数值加1
通过ifelifelse条件语句来筛选添加符合要求数值
append() 方法用于在列表末尾添加新的对象。
