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

大一Python编程题:修复整数阈值过滤自定义函数实现错误

代码问题分析
  • 阈值读取逻辑完全错误:题目要求读取完n个待筛选整数后,还要额外读取一个值作为阈值,但你的代码没有做这一步,错误将待筛选列表的最后一个元素直接当作阈值,刚好示例的输出要求和这种错误逻辑的结果一致,才会出现示例通过的情况,换其他阈值立刻出错。
  • 筛选条件逻辑错误:output_ints_less_than_or_equal_to_threshold函数没有使用传入的upper_threshold参数,反而再次用列表最后一个元素作为判断阈值,完全没有用到传入的参数,逻辑冗余且错误。
  • 滥用全局变量:将n、user_values定义在全局作用域,函数内部直接调用全局变量,不符合题目要求的函数封装规范,可复用性差。
  • 变量赋值逻辑不严谨:upper_threshold在循环内部反复赋值,只有最后一次赋值生效,逻辑不合理。
修复后代码
def get_user_values():
    n = int(input())
    user_values = []
    for _ in range(n):
        num = int(input())
        user_values.append(num)
    # 额外读取阈值输入
    upper_threshold = int(input())
    return user_values, upper_threshold
 
def output_ints_less_than_or_equal_to_threshold(user_values, upper_threshold):
    # 用传入的阈值做判断
    filter_values = [i for i in user_values if i <= upper_threshold]
    print(*filter_values, sep = "\n")

if __name__ == '__main__':
    user_values, upper_threshold = get_user_values()
    output_ints_less_than_or_equal_to_threshold(user_values, upper_threshold)
修复说明
  1. 将n、待筛选列表的定义挪到get_user_values函数内部,不再依赖全局变量,符合函数封装要求。
  2. 在get_user_values读取完n个待筛选整数后,新增一行读取阈值输入,符合题目要求的输入逻辑。
  3. 筛选逻辑改为使用传入的upper_threshold参数做判断,不再错误使用列表最后一个元素。
  4. 修改变量作用域问题后,函数可以独立复用,符合题目给定的函数定义要求。

内容的提问来源于stack exchange,提问作者Jonathanks

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:45:04