Найти - Пользователи
Полная версия: Ошибка с табуляцией
Начало » Python для новичков » Ошибка с табуляцией
1
kakadyi
Потихоньку изучаю Питон,разбираю пример из книги.Вот код:
>>> while True:
reply=input('Enter Text')
if reply=='stop':
break
elif not reply.isdigit():
print('bad')
else:
num=int(reply)
if num<20:
print('low')
else:
print(num**2)
print('bye')
SyntaxError: unindent does not match any outer indentation level
>>> Пишет что якобы последняя строка ни с чем не связана.Что мне надо.Чтобы последняя строка выполнялась уже отдельно от инструкции while,т.е. уже отдельная невложенная инструкция.Но.Во-первых,после print(num**2),нажимаю enter,он переводит курсор под эту строку.А мне надо,чтобы было под while.Если вручную пробелом тыкать,то вроде по виду print('bye') находится под while,но интерпретатор так не считает.И если с txt файла скопировать код,то print('bye') будет намного левее while…В чем проблема?
На выходе вот то получается:
Enter Text:33
1089
bye
Enter Text:
А надо:
Enter Text:33
1089
Enter Text:stop
bye
terabayt
while True:
    reply=input('Enter Text')
    if reply=='stop':
        print("bye")
        break
    elif not reply.isdigit():
        print('bad')
    else:
        num=int(reply)
        if num<20:
            print('low')
        else:
            print(num**2)
kakadyi
Почему тогда в книге Лутца это код работает в таком виде?И почему табуляция не подводит строку print('bye') под while?Получается,я не могу начать новый код,который будет независим от цикла while…Потому что опять же,табуляция относит следующий написанный код либо к циклу,либо выдаёт ошибку.Где я туплю?
py.user.next
kakadyi
В чем проблема?
Ты неправильно скопировал из книги.

Либо так:
>>> 1
1
>>> 2
2
>>> 3
3
>>>

Либо так:
1
2
3
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