Ошибка отступа Python во время цикла

#python #syntax #while-loop #syntax-error #indentation

#python #синтаксис #во время цикла #синтаксическая ошибка #отступ

Вопрос:

 while x <= 9:
    result = usertype()
    if result == 'Correct':
  

Я получаю ошибку отступа на «t» результата в «result = usertype(). Кто-нибудь может это объяснить?

* РЕДАКТИРОВАТЬ Я попытался переписать его, и я проверил, чтобы убедиться, что все отступы действительно являются отступами, а не пробелами. Сейчас я очень расстроен и очень смущен. Я думаю, что это может быть что-то в предыдущей строке, вызывающее проблему.

* ОШИБКА РЕДАКТИРОВАНИЯ 2, скопированная из командной строки, потому что IDLE у меня не работает:

   File "<stdin>", line 5
    result = usertype()
         ^
IndentationError: expected an indented block
>>>         if result == 'Correct':
  File "<stdin>", line 1
    if result == 'Correct':
    ^
IndentationError: unexpected indent
>>>             x = x   1
  File "<stdin>", line 1
    x = x   1
    ^
IndentationError: unexpected indent
>>>             y = y   5
  File "<stdin>", line 1
    y = y   5
    ^
IndentationError: unexpected indent
>>>         else:
  File "<stdin>", line 1
    else:
    ^
IndentationError: unexpected indent
>>>             x = x   1
  File "<stdin>", line 1
    x = x   1
    ^
IndentationError: unexpected indent
>>>             y = y - a2
  File "<stdin>", line 1
    y = y - a2
    ^
IndentationError: unexpected indent
>>>     return y
  File "<stdin>", line 1
    return y
    ^
IndentationError: unexpected indent
  

Решаемая!
Я не уверен, как, но я скопировал вставленный мой код в IDLE, развернул все области, а затем снова ввел табуляцию. Я читал где-то еще на SO, чтобы сделать это, так что проблема решена!

Вот вся программа:

 import random

def usertype(raw_input):
    randletter = random.choice('qwer')
    print randletter
    userinput = raw_input('')
    if userinput == randletter:
        return 'Correct'
    else:
        return 'Incorrect'

def usertypetest(raw_input):
    x=0
    y=0
    while x <= 9:
        result = usertype()
        if result == 'Correct':
            x = x   1
            y = y   5
        else:
            x = x   1
            y = y - a2
    return y

print usertypetest(raw_input)
  

Комментарии:

1. Вы смешиваете табуляции и пробелы? Обычно это является причиной ошибок такого типа.

2. Да … из «:» в то время как нажмите enter и введите новый код

3. Я переписал код, все еще получая эту ошибку. Сейчас я опубликую всю программу.

4. Не могли бы вы также опубликовать полную ошибку, пожалуйста?

Ответ №1:

В опубликованном коде нет ничего неправильного. Но у вас могут быть смешанные табуляции и пробелы в вашем файле, что приводит к тому, что Python путается в отступах. Проверьте настройки текстового редактора, чтобы узнать, можете ли вы выделить эти символы.

Комментарии:

1. Я проверил, все они были с вкладками. Я переписал неправильные области, но безуспешно.

Ответ №2:

В notepad есть опция отображения пробелов и табуляции.

Перейти к View>> Show Sybmol>> show white Spaces and Tab (белые точки)

введите описание изображения здесь

Вам нужно найти что-то подобное в других IDE.