
调用函数时,必须显式将返回值赋给变量才能在后续代码中使用;仅执行函数调用(如 `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免费学习笔记(深入)”;
- 所有函数调用默认“静默”执行,除非你主动捕获返回值;
- input() 之所以能赋给 time,正是因为写了 time = input(...) —— 这和 conversion = convert(...) 是完全一致的逻辑;
- 若忽略赋值(如只写 convert(time)),函数虽会运行并返回值,但该值会被立即丢弃,无法后续使用。
✅ 最终可运行的完整修正版如下:
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() 辅助排查,但务必确保核心逻辑依赖显式赋值。)










