0

この時計では、最初にユーザーに時間を入力するように求めましたが、変数に時間を返さない場合に作成しました。私は得る

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

設定時間の部分は関数である必要はありませんが、後で使用したいと思います。

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()
4

1 に答える 1

3

このreturnステートメントは、変数ではなくを返します。そして、戻り値に何もしなければ、それらは破棄されます。

呼び出しますsetTime()が、返される値には何もしません。

戻り値を新しい名前で保存する必要があります。

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

関数自体で使用されているのと同じ名前を使用しましたsetTime()が、異なる名前を付けることもできます。

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

次に、コードの残りの部分でそれらの名前を使用しました。

print(baz, ":", spam, ":", eggs)
于 2013-03-13T21:19:15.733 に答える