调用函数时,必须显式将返回值赋给变量才能在后续代码中使用;仅执行函数调用(如 `convert(time)`)不会自动保存或暴露其返回值。
在 Python 中,函数的返回值不会自动绑定到同名变量,也不会“全局可见”。你定义的 conversion 变量仅存在于 convert() 函数的局部作用域内,函数执行结束后即被销毁。因此,在 main() 中直接写 print(conversion) 会触发 NameError: name 'conversion' is not defined —— 因为该变量从未在 main() 的作用域中声明过。
正确的做法是:将函数调用的结果显式赋值给一个变量,再使用它:
def main():
time
= input("What time is it? ")
conversion = convert(time) # ✅ 关键修正:接收返回值
print(conversion)这段代码中,conversion = convert(time) 表示“把 convert(time) 的返回值(即计算出的小数时间)存入 main() 函数内的局部变量 conversion”,此后即可安全访问。
? 小贴士:
立即学习“Python免费学习笔记(深入)”;
✅ 最终可运行的完整修正版如下:
def main():
time = input("What time is it? ")
conversion = convert(time)
print(conversion)
def convert(time):
hours, minutes = time.split(":")
return float(hours) + float(minutes) / 60
if __name__ == "__main__":
main()(调试打印语句已移除,保持逻辑清晰;实际开发中可酌情保留 print() 辅助排查,但务必确保核心逻辑依赖显式赋值。)