Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 26, 2019 10:38:50

Flexizz
Зарегистрирован: 2019-08-26
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

NameError: name 'done' is not defined

Всем привет, только начал изучать программирование, сейчас по книге "думать на языке 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') 

Отредактировано Flexizz (Авг. 26, 2019 12:24:52)

Офлайн

#2 Авг. 26, 2019 11:50:28

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

NameError: name 'done' is not defined

1) укажите ваш код корректно в тегах code
2) всегда указывайте полный текст ошибки



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 26, 2019 13:05:10

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

NameError: name 'done' is not defined

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')
про отступы



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Авг. 28, 2019 11:07:11)

Офлайн

#4 Авг. 28, 2019 07:13:45

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

NameError: name 'done' is not defined

Flexizz странно что у вас с вашим регистром код вообще запустился до ошибки которой кстати нет если вы правильно записали ‘done’ как строку а не как переменную done

 while True:
    line = input('>') 
    if line == 'done' :
       break
    print(line) 
print('done')

Офлайн

#5 Авг. 28, 2019 11:00:50

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

NameError: name 'done' is not defined

 # 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



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Авг. 28, 2019 12:10:00)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version