Python新手求助:如何用用户输入限制FizzBuzz函数的循环范围
解决FizzBuzz函数的循环范围问题
嘿,别着急!你的问题根源很清楚——当前代码里的循环范围被硬写成range(200000)了,这就导致不管用户输入多少n,程序都会固定跑到200000,完全没用到传入的参数。咱们只需要把循环范围改成基于n来生成就行。
核心修改点
Python的range()函数是左闭右开的特性,如果你要遍历从1到n(包含n)的所有数字,应该用range(1, n+1)。把原来固定的循环范围替换掉,问题就解决了。
修改后的完整代码
#!/bin/python3 import math import os import random import re import sys # # Complete the 'fizzBuzz' function below. # # The function accepts INTEGER n as parameter. # def fizzBuzz(n): # 改成基于参数n的循环范围,覆盖1到n的所有数字 for x in range(1, n+1): fizz = x % 3 == 0 buzz = x % 5 == 0 if fizz and buzz: print('FizzBuzz') elif fizz: print('Fizz') elif buzz: print('Buzz') else: print(x) if __name__ == "__main__" : giveMEANumber = int(input()) fizzBuzz(giveMEANumber)
额外小优化
我把原来嵌套的if判断改成了更简洁的fizz and buzz写法,逻辑和你原来的完全一致,但可读性会更好一些~
现在你测试一下不同的输入值,比如输入15,函数就会精准输出从1到15的FizzBuzz结果,完全符合题目要求啦。
内容的提问来源于stack exchange,提问作者commandershepard
相关产品推荐
相关产品推荐

