调试Python分钟转小时代码中的NameError问题
问题分析与修复方案
嘿,我来帮你搞定这个NameError问题!
错误根源
你碰到的问题完全是变量作用域在搞鬼:
- 你在
minutes_to_hours函数里定义的hours是个局部变量——简单说就是,这个变量只活在函数内部,函数执行完它就消失了,外面的代码(比如最后那行print(hours))根本看不到它。 - 虽然你调用了
minutes_to_hours(minutes),但你没把函数返回的结果存下来,等于白调用了,外部还是拿不到转换后的小时数。
两种靠谱的修复方法
方法1:把函数返回值存进变量再打印
修改最后两行,把函数返回的结果赋值给一个变量(名字可以叫hours,也可以随便取),然后打印这个变量:
def minutes_to_hours(minutes): hours = minutes / 60.0 return hours minutes = int(input("Enter minutes \n")) # 把函数返回的结果存到变量里 hours = minutes_to_hours(minutes) print(hours)
现在输入120,就会输出2.0,完全符合预期。
方法2:直接打印函数的返回值
如果之后不需要用到这个小时数,也可以省掉中间变量,直接打印函数调用的结果:
def minutes_to_hours(minutes): hours = minutes / 60.0 return hours minutes = int(input("Enter minutes \n")) # 直接打印函数返回的结果 print(minutes_to_hours(minutes))
额外小优化(可选)
要是想让输出更友好,比如显示成“XX分钟等于XX小时”,可以把打印语句改成这样:
print(f"{minutes} minutes equals {minutes_to_hours(minutes)} hours")
输入120的话,就会输出120 minutes equals 2.0 hours,可读性拉满~
内容的提问来源于stack exchange,提问作者Aditya Singh
相关产品推荐
相关产品推荐

