2015-01-16 2 views
0

Я пытаюсь сделать программу печенья удачи, и мне нужно меню, тогда функция выбранного варианта будет выполнена. Я получаю сообщение об ошибке при попытке запустить код, мне нужно иметь возможность запускать выбранную функцию (я только написал код для опции 1, когда я наткнулся на эту ошибку: (мне нужно добавить новую судьбу на конец текстового файла) Traceback (последний последний вызов): Файл «N: \ work \ computing \ fortune cookie \ fortunecookie.py», строка 9, в , если параметр == 1: NameError: name ' опция»не определенпытаясь сделать меню для программы и запустить определенную функцию

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 
    ... 

T он над кодом должен это делать.
Подробнее о прицелов here

Maby пытаются вернуть это значение вместо того, чтобы использовать глобальную переменную:

def menu(): 
    ... 
    return option 

И превратить ваши условия соответственно к нему.

Некоторые мнения о глобальных переменных: Why are global variables evil?