2013-03-13 91 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)