You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 19:57:52