Python函数未实现预期年龄修正效果,求问题排查与修正
代码错误排查与修复
核心问题分析
- 缩进错误:
fix_age函数中if条件后的index = 0未缩进,违反Python的缩进语法规则,会触发语法错误导致代码无法正常执行。 - 不可变类型传参失效:Python的整数属于不可变类型,函数接收的参数是原始变量的副本,在函数内部修改参数值不会影响外部的原始变量。
- 无返回值传递修正结果:
fix_age函数没有返回修正后的年龄值,无法将处理后的结果同步到外部的变量中。
修复后的代码
a = int(input("Age1: ")) b = int(input("Age2: ")) c = int(input("Age3: ")) def fix_age(age): if (13 <= age < 15) or (16 < age <= 19): return 0 return age def filter_teens(a, b, c): fixed_a = fix_age(a) fixed_b = fix_age(b) fixed_c = fix_age(c) total = fixed_a + fixed_b + fixed_c print(total) return total filter_teens(a, b, c)
修复说明
- 修正缩进问题,确保
if条件块内的代码正确归属到判断逻辑下。 - 调整
fix_age函数为返回处理后的年龄值,通过返回值传递修正结果,避免因不可变类型传参导致的修改失效问题。 - 在
filter_teens函数中接收每个年龄的修正结果,再进行求和计算,确保年龄修正规则生效。
内容的提问来源于stack exchange,提问作者talp
相关产品推荐
相关产品推荐

