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

编程新手求助:无法定位以下Python代码中的错误

Python代码错误排查及修正

下面是你代码里的所有问题和对应的修正方法:

  • 缩进混乱:第二行的print "\n"和后续变量定义的缩进层级与第一行print不一致,Python对缩进要求严格,会直接触发IndentationError,需删除多余缩进,保持层级统一。
  • print语法错误:Python3中print是函数,必须加括号,你代码里多处print未加括号(如第一行、第二行、倒数第二行等),属于语法错误,需将所有print改为带括号的形式。
  • 赋值运算符误用:age_Str == "24 years old"用了比较运算符==,赋值应该用单等号=;同时"24 years old"包含非数字字符,直接转int会触发ValueError,要么改为纯数字字符串,要么直接用数字赋值,或者提取字符串中的数字部分。
  • 类型不匹配问题:
    • 打印年龄时,age是整数类型,不能直接与字符串拼接,需转为字符串(如str(age)),或使用更便捷的f-string。
    • years_from_now = "3"是字符串类型,与整数age相加会触发TypeError,需将其转为整数。
    • 最后打印月数时,total_months是整数类型,同样不能直接与字符串拼接,需转字符串或用f-string。
  • 未定义变量引用:total_months = total * 12中的total未定义,根据提示的正确答案330,应计算24岁加3年6个月(即27.5年),再乘以12得到结果,需替换为正确的计算逻辑。
  • 变量引用错误:print "The total number of years:" + "answer_years"中使用了字符串"answer_years",应改为引用实际计算出的total_years变量。

修正后的代码示例

print("Welcome to the error program")
print("\n")

# 定义年龄并打印
age = 24
print(f"I'm {age} years old.")

# 计算3年后的年龄并打印
years_from_now = 3
total_years = age + years_from_now
print(f"The total number of years: {total_years}")

# 计算3年6个月后的总月数(正确结果330)
total_months = (age + 3.5) * 12
print(f"In 3 years and 6 months, I'll be {total_months} months old")

如果想保留从字符串提取年龄的逻辑,可使用以下写法:

print("Welcome to the error program")
print("\n")

# 从字符串中提取年龄数字并打印
age_str = "24 years old"
# 拆分字符串取第一个元素(数字部分)转成整数
age = int(age_str.split()[0])
print(f"I'm {age} years old.")

# 计算3年后的年龄并打印
years_from_now = int("3")
total_years = age + years_from_now
print(f"The total number of years: {total_years}")

# 计算3年6个月后的总月数
total_months = (total_years + 0.5) * 12
print(f"In 3 years and 6 months, I'll be {total_months} months old")

内容的提问来源于stack exchange,提问作者caliphonia Cally M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:48:18