这段代码有什么问题?我收到一个NameError

时间:2019-09-29 07:01:38

标签: python python-3.x

我是Python的初学者。 这是我写的一些代码,我无法确定问题出在哪里。

应该将分钟转换为小时

这是代码

def minutes_to_hours(minutes):
    hours = minutes/60.0
    return hours

minutes = int(input("Enter minutes \n"))

minutes_to_hours(minutes)
print(hours)

在运行它时,它要求输入分钟。在传递120时,应该给出2,但这是我得到的错误

Enter minutes
120
Traceback (most recent call last):
  File "functions.py", line 11, in <module>
    print(hours)
NameError: name 'hours' is not defined

2 个答案:

答案 0 :(得分:1)

hours变量仅在minutes_to_hours函数中可用 做

hours = minutes_to_hours(minutes)

这将在全局范围内重新创建小时变量

答案 1 :(得分:0)

“小时”未定义,因为您没有声明/设置“小时”变量!

这就是为什么您收到NameError的原因,因为您没有设置小时数,并且没有设置minutes_to_hours

如果要在def语句中获取小时数,请使用

def minutes_to_hours(minutes):
    global hours
    hours = minutes/60.0
    #return is not setting a new variable, so this will return None

正确的代码:

def minutes_to_hours(minutes):
    hours = minutes/60.0
    return hours

minutes = int(input("Enter minutes \n"))

hours = minutes_to_hours(minutes)
print(hours)