题目要求:
编写一个程序,接受一个数字作为输入,并在控制台中打印从 1 到该数字的所有数字,但对于三个的倍数,不打印数字,而打印“Fizz”;对于五的倍数,用“Buzz”代替数字;对于既是 3 又是 5 的倍数的数字,打印“FizzBuzz”。
思路:
- 首先,通过
input
函数接收用户输入的一个数字,然后使用int
函数将其转换为整数类型; - 接下来,使用
range
函数生成从 1 到用户输入数字的所有数字,使用for
循环遍历这些数字; - 在循环体内,首先判断当前数字是否是 3 和 5 的倍数,如果是,则打印 “FizzBuzz”;
- 如果当前数字不是 3 和 5 的倍数,再依次判断当前数字是否是 3 的倍数或 5 的倍数,如果是,则分别打印 “Fizz” 或 “Buzz”;
- 如果当前数字既不是 3 和 5 的倍数,也不是 3 的倍数或 5 的倍数,那么就直接打印当前数字。
完整代码:
num = int(input("请输入一个数字:")) # 接收用户输入的数字,并将其转换为整数类型
for i in range(1, num+1): # 从1到用户输入数字的所有数字进行遍历
if i % 3 == 0 and i % 5 == 0: # 判断当前数字是否是3和5的倍数
print("FizzBuzz") # 如果是,打印 "FizzBuzz"
elif i % 3 == 0: # 如果当前数字不是3和5的倍数,判断是否是3的倍数
print("Fizz") # 如果是,打印 "Fizz"
elif i % 5 == 0: # 如果当前数字不是3和5的倍数,判断是否是5的倍数
print("Buzz") # 如果是,打印 "Buzz"
else:
print(i) # 如果既不是3和5的倍数,也不是3的倍数或5的倍数,直接打印当前数字
注意事项:
- 程序中的缩进非常重要,特别是在
for
循环和if-elif-else
语句中; - 在判断是否是 3 和 5 的倍数时,应该先判断是否同时是 3 和 5 的倍数,再分别判断是否是 3 的倍数或 5 的倍数,否则会出现逻辑错误;
- 用户输入的数字必须是正整数,否则程序可能会出现错误。