2013-03-13 122 views
0

在这个时钟中,我最初要求用户输入时间,但当它不会返回变量的时间。我得到一个Python返回不返回变量

Traceback (most recent call last): 
    File "C:/Documents and Settings/Brett/My Documents/Programming/Python/clock.py", line 20, in <module> 
    print(hour,":",mins,":",sec) 
NameError: name 'hour' is not defined 

我知道设置时间部分dosnt需要是一个功能,但我想以后使用它。

import time 

def setTime(): 
    print("Set time \n--------") 
    time=input("24 hour or 12 hour \nType 1 or 2: ") 
    if time=="2": hour12=input("AM or PM \nType 1 or 2: ") 
    else: hour12=0 
    hour=input("Hour: ") 
    mins=input("Minute: ") 
    print("--------") 
    sec=0 
    return time,hour12,hour,mins,sec 

def printTime24(): 
    print(hour,":",mins,":",sec) 

#def printTime12(): 

setTime() 
print(hour,":",mins,":",sec) 
while True: 
    time.sleep(1) 
    sec+=1 
    if sec == 60: 
     sec=0 
     mins+=1 
    if mins == 60: 
     mins=0 
     hour+=1 
    if time=="1": printTime24() 
# elif time=="2": printTime12() 

回答

2

return语句返回,不变量。如果对返回值没有做任何处理,它们将被丢弃。

您可以拨打setTime(),但对返回的值无效。

您需要返回的值存储在新的名称:

time, hour12, hour, mins, sec = setTime() 

我用同样的名称作为setTime()函数本身使用,但我也可以同样给了他们不同的名称:

foo, bar, baz, spam, eggs = setTime() 

,然后使用这些名称在代码的其余部分:

print(baz, ":", spam, ":", eggs)