当调用一个函数并期望使用其返回值时,必须将该返回值显式赋给变量;仅调用函数(如 convert(time))不会自动将返回值绑定到同名变量或使其在作用域中可用。
在你的代码中,convert(time) 确实正确计算并返回了浮点数(例如 "7:30" 返回 7.5),但你并未将这个返回值保存下来——而是直接执行了 print(conversion),而此时局部变量 conversion 在 main() 函数内
部根本未被定义,因此触发 NameError: name 'conversion' is not defined。
✅ 正确做法是:用变量接收返回值,再使用它:
def main():
time = input("What time is it? ")
conversion = convert(time) # ← 关键:赋值接收返回值
print(conversion) # ← 此时 conversion 已定义且持有结果⚠️ 注意事项:
? 小技巧:你可以一步完成调用与打印,无需中间变量(适用于简单场景):
立即学习“Python免费学习笔记(深入)”;
print(convert(time)) # 直接打印函数返回值
但推荐显式赋值(如 conversion = convert(time)),既增强可读性,也便于后续调试、校验或复用该值。这是 Python 函数式编程的基本实践,也是避免作用域误解的关键习惯。