Python函数问题:统计随机数中小于阈值的数量并输出阈值
问题修复与代码优化
原代码存在的问题
- 未导入
random模块,运行会直接报错; - 计数逻辑错误:
- 全局变量
b未在函数内声明global,无法被函数修改; b+1仅做加法运算,未赋值回b,计数不会更新;- 判断语句在循环外,只会检查最后一个生成的随机数,而非每一个;
- 全局变量
- 缺少打印
limit值的逻辑; - 依赖全局变量传递结果,代码结构不严谨。
修正后的代码
import random def howManyLessThan(maX, num, limit): count = 0 for _ in range(num): x = random.randrange(0, maX + 1) print(x) # 每生成一个随机数就检查是否小于limit,更新计数 if x < limit: count += 1 # 所有随机数输出完成后打印limit值 print(f"limit: {limit}") return count # 调用函数并获取结果 less_count = howManyLessThan(6, 10, 5) print(f"小于limit的数字数量: {less_count}")
修正说明
- 新增
import random,确保随机数生成功能正常; - 用局部变量
count替代全局变量,避免全局变量污染,逻辑更清晰; - 将计数判断移到循环内部,每个随机数生成后立即检查并更新计数;
- 循环结束后打印
limit值,满足需求; - 函数返回计数结果,调用时直接接收输出,代码结构更合理;
- 移除多余的
elif分支,不满足条件时无需额外操作,简化逻辑。
内容的提问来源于stack exchange,提问作者Neil Nair
相关产品推荐
相关产品推荐

