Распространённые сообщения об ошибках

На этой странице собрана информация о самых распространённых сообщениях об ошибках, с которыми вы можете столкнуться при выполнении упражнений по программированию в этом курсе.

Мой вывод выглядит точно так же, как пример в условии, но отправленное решение всё равно не проходит проверку

Убедитесь, что ваша программа не печатает лишние пробельные символы, например пробелы. Обратите внимание, что по умолчанию функция print добавляет пробел между строками, разделёнными запятой.

    print("Hello","World!")    # This prints out: Hello World!

SyntaxError: bad input on line [line number]

Это сообщение обычно появляется, когда в коде есть опечатка, которую интерпретатор Python не может точнее классифицировать. Например, в конце инструкции if может не хватать двоеточия, или ключевое слово, например while, может быть написано с ошибкой. Единственный способ исправить проблему — внимательно проверить строку, указанную в сообщении об ошибке.

    number1 = 1
    number1 = 2
    if number1 < number2    # ':' missing
        print('number2 is greater')

Если строка, указанная в сообщении об ошибке, выглядит правильно, ошибка часто может находиться строкой выше или ниже, поэтому проверьте и соседние строки.

Обратите внимание: в упражнениях по программированию в ранних частях этого курса для запуска Python-кода в браузере используется фреймворк Skulpt. Skulpt довольно ограничен по сравнению с обычным интерпретатором Python, поэтому сообщения об ошибках часто менее информативны. Например, сообщение bad input on line может относиться ко многим разным ошибкам программирования, и по одному этому сообщению трудно установить настоящую причину ошибки.

SyntaxError: unindent does not match any outer indentation level on line [line number]

В строке, указанной в сообщении об ошибке, в вашем коде неправильный отступ. Например, все строки внутри блока if должны иметь одинаковый отступ. Чтобы исправить ошибку, сделайте отступы всех строк внутри блока кода строго одинаковыми. Следующий код вызовет такую ошибку:

    if True:
        print('Indented correctly')
       print('Indented incorrectly!')

NameError: name [variable name] is not defined on line [line number]

Вы пытаетесь обратиться к переменной или объекту, которого в этой точке программы не существует. Возможно, переменной ещё не было присвоено значение, или в имени переменной есть опечатка. Также возможно, что вы определили переменную внутри функции, а затем пытаетесь обратиться к той же переменной за пределами функции.

    person = input('Please type in your name: ')
    input('Please type in your age: ')

    print("Hi", pearson)                # error: person was typed pearson
    print("You are", age, "years old")  # error: the variable age has not been defined

TypeError: unsupported operand type(s) for Add: 'int' and 'str' on line [line number]

Возможно, вы пытаетесь сложить целое число и строку, не преобразовав строку в целое число. Строки можно преобразовывать в целые числа с помощью функции int(). Похожее сообщение об ошибке может появиться, если попытаться выполнить со строками другие арифметические операции, например деление или вычитание.

Также возможно, что вы пытаетесь создать новую строку, объединяя строку и целое число. Сначала следует преобразовать целое число в строку с помощью функции str().

    my_age = input("Please type in your age: ")
    my_name = input("Please type in your name: ")

    print(my_age//2)   # error: the variable my_age has not been converted into an integer

TypeError: cannot concatenate 'str' and 'int' objects on line [line number]

Смотрите выше.

Pylance аварийно завершает работу

Обычно это происходит из-за того, что в плагине TMC одновременно открыто слишком много упражнений. Попробуйте закрыть неиспользуемые упражнения через меню TMC на боковой панели VS code. Откройте меню TMC, в разделе my courses откройте свои курсы и нажмите close all для тех частей, над которыми вы больше не работаете. Если вы решите вернуться к части позже, упражнения всегда можно открыть снова.