Найти - Пользователи
Полная версия: NameError: name 'done' is not defined
Начало » Python для новичков » NameError: name 'done' is not defined
1
Flexizz
Всем привет, только начал изучать программирование, сейчас по книге "думать на языке Python“. В 7 главе столкнулся с проблемой и был бы признателен, если кто-нибудь объяснит как исправить ошибку.
По заданию, создаю простую функцию:
 Def eval_loop() :
    while True:
        line = input('>') 
        If line == 'done':
           dreak
    Print(eval(line)) 
    return
    print('done')
При вводе в интерпритатор ‘done’ питон, как я понял, пытается распознать как переменную и не может её найти, пробовал вводить переменную такую, не помогает, так же выдаёт эту же ошибку: NameError: name ‘done’ is not defined Делал по примеру из книги:
 While True:
    Line = input('>') 
    If line == 'done' :
       Break
    Print(line) 
Print('done') 
JOHN_16
1) укажите ваш код корректно в тегах code
2) всегда указывайте полный текст ошибки

AD0DE412
Flexizz
NameError: name ‘done’ is not defined
ну сталобыть в этом пространстве имен нет такого имени
зы а разве def пишется как Def питонже регистрозависимый вроде
ззы
 def eval_loop() :
    while True:
        line = input('>') 
        if line == 'done':
           break
    print(eval(line)) 
    return
#зачем это здесь? после return вы выходите из функции те код ниже 
#ни когда не исполнится если конечно ето не ваша ошибка с отступами
    print('done')
про отступы
marvellik
Flexizz странно что у вас с вашим регистром код вообще запустился до ошибки которой кстати нет если вы правильно записали ‘done’ как строку а не как переменную done
 while True:
    line = input('>') 
    if line == 'done' :
       break
    print(line) 
print('done')
AD0DE412
 # codind: utf-8
def eval_loop():
    while True:
        line = input('--> ')
        if line == 'done':
           break
        else:
            try:
                var = eval(line)
                print(var)
            except Exception as err:
                print("err:", err)
                continue
    return "end"
print(eval_loop())

 --> 1 + 45
46
--> sum([1, 2, 3])
6
--> "".join(["1", "2"])
12
--> print("err")
"err"
--> ghgh
err: name 'ghgh' is not defined
--> done
end
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB