2015-01-16 88 views
0

我正在嘗試製作幸運餅乾程序,並且我需要一個菜單​​,然後所選選項的功能纔會執行。當我嘗試運行代碼時,我得到一個錯誤,我需要能夠運行選擇的功能(我只寫了選項1的代碼,因爲我遇到了這個錯誤:(我需要追加新的財富到 文件 「N:\工作\計算\幸運餅乾\ fortunecookie.py」 文本文件 回溯(最近通話最後一個))的結束,9號線,在 如果選擇== 1: NameError:名字「選項」沒有定義試圖爲程序製作菜單並運行特定功能

def menu(): 
    print "Your options are: " 
    print "1-Add a new fortune" 
    print "2-Tell my fortune" 
    print "3-Exit" 
    option = raw_input("What do you want to do?") 

menu() 
if option == 1: 
    addfortune() 
elif option == 2: 
    tellfortune() 
elif option == 3: 
    exitProgram() 
else: 
    print("Invlaid menu choice") 
    menu() 

def addfortune(): 
    newfortune = input("What is the new fortune?") 
    f = open("fortune.txt","w") 
    f.write(str(newfortune)) 
    f.close() 
    menu() 

回答

1

它試圖在全局範圍內訪問的變量。

def menu(): 
    global option 
    ... 

Ť他上面的代碼應該這樣做。
瞭解更多關於作用域here

莫比試圖返回,而不是使用全局變量值:

def menu(): 
    ... 
    return option 

並據此把你的條件吧。

關於全局變量的一些觀點:Why are global variables evil?