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

Вид: 13564|Ответ: 1

[Связь] 17 распространённых ошибок во время выполнения Python для новичков

[Скопировать ссылку]
Опубликовано 05.12.2015 13:08:56 | | |

При изучении Python бывает немного сложно понять значение сообщений об ошибках Python. Вот список некоторых распространённых ошибок во время выполнения, которые вызывают сбои вашей программы.


1) Забыл добавить :( в конце if, elif, else, for, while, class, def.

        Ошибка возникает в таком коде:

если спам == 42
    печать («Здравствуйте!»)

2) Use = вместо == (что приводит к «SyntaxError: неверный синтаксис»)

        = — оператор присвоения, а == равно операции сравнения.Ошибка возникает в таком коде:

если спам = 42:
    печать («Здравствуйте!»)

3) Неправильное использование отступов. (В результате появляются «IndentationError:unexpected indent», «IndentationError:unindent не совпадает с каким-либо внешним уровнем indetation» и «IndentationError: ожидался отступный блок»)

        Помните, что отступ используется только после операторов, заканчивающихся на: после чего формат отступов должен быть вернут к предыдущему формату. Ошибка возникает в таком коде:

печать («Здравствуйте!»)
    print («Привет!»)
Или:
если спам == 42:
    печать («Здравствуйте!»)
  print («Привет!»)
Или:
если спам == 42:
печать («Здравствуйте!»)

4) Забывание вызвать len() в операторе for loop (что приводит к тому, что «TypeError: объект «list» не может быть интерпретирован как целое число)

Обычно нужно итерировать по списку или строковому элементу через индекс, что требует вызова функции range(). Не забудьте вернуть значение len вместо того, чтобы возвращать этот список.

        Ошибка возникает в таком коде:

spam = [«кошка», «собака», «мышь»]
Для I в радиусе действия (спам):
    print(спам)

5) Попробуйте изменить значение строки (в результате чего появляется «TypeError: объект "str" не поддерживает назначение элементов)

        Строка — это неизменяемый тип данных, и ошибка возникает в коде следующего:

spam = «У меня есть домашний кот.»
spam[13] = «r»
print(спам)

И вы действительно хотите сделать это:

spam = «У меня есть домашний кот.»
спам = спам[:13] + «r» + спам[14:]
print(спам)

6) Попытка конкатенировать нестроковые значения со строками (что приводит к «TypeError: Can't convert object "int" в str implicly)

        Ошибка возникает в таком коде:

numEggs = 12
print («У меня есть " + numEggs + " яйца.")

И вы действительно хотите сделать это:

numEggs = 12
print («У меня есть " + str(numEggs) + "яйца".)
Или:
numEggs = 12
print («У меня есть %s яйца.» % (numEggs))

7) Забывание поставить кавычки в начале и конце строки (в результате чего появляется «Ошибка синтаксиса: EOL при сканировании литерала строки»)

        Ошибка возникает в таком коде:

print(Здравствуйте!»)
Или:
печать («Здравствуйте!)
Или:
myName = «Эл»
print("Моё имя " + myName + . Как дела?»)

8) Ошибка в написании имён переменных или функций (что приводит к «NameError: name "fooba" не определено")

        Ошибка возникает в таком коде:

foobar = «Al»
print («Меня зовут» + fooba)
Или:
спам = руонд(4.2)
Или:
спам = Раунд(4.2)

9) Ошибка в написании имён методов (в результате чего появляется «AttributeError: объект «str» не имеет атрибута «lowerr»)

        Ошибка возникает в таком коде:

spam = «ЭТО НАПИСАНО СТРОЧНЫМИ БУКВАМИ.»
spam = spam.lowerr()

10) Ссылки превышают максимальный индекс списка (в результате чего «IndexError: list index out of range»)

        Ошибка возникает в таком коде:

spam = [«кошка», «собака», «мышь»]
print(спам[6])

11) Использование значения ключа словаря, которого не существует (что приводит к «KeyError: 'spam'»)

        Ошибка возникает в таком коде:

spam = {"cat": "Zophie", "dog": "Basil", "mouse": "Whiskers"}
print("Имя моей домашней зебры " + spam["zebra"])

12) Попытка использовать ключевое слово Python в качестве имени переменной (что приводит к «SyntaxError: некорректный синтаксис»)

        Python-ключ нельзя использовать как имя переменной, ошибка возникает в таком коде:

класс = «алгебра»

Ключевые слова Python3: and, as, assert, break, class, continue, def, del, elif, else, except, False, наконец, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, Верно, попробуй, пока, с, уступай


13) Использование операторов добавленной стоимости в определённой новой переменной (в результате чего «NameError: name "foobar" не определено")

        Не используйте строки 0 или null в качестве начальных значений при объявлении переменных, чтобы предложение spam += 1 с оператором самоувеличения равно spam = spam + 1, что означает, что спам должен указывать действительное начальное значение.

        Ошибка возникает в таком коде:

спам = 0
спам += 42
яйца += 42

14) Использовать локальные переменные в функциях перед определением локальных переменных (в данном случае существует глобальная переменная с тем же именем, что и локальная переменная) (в результате чего до присвоения упоминается «UnboundLocalError: локальная переменная «foobar»)

        Использовать локальную переменную в функции с тем же именем, что и глобальная переменная, сложно, и правила использования таковы: если что-либо определено в функции, если оно используется только в функции, оно локально, и наоборот.

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

        Ошибка возникает в таком коде:

someVar = 42
def myFunction():
    print(someVar)
    someVar = 100
myFunction()

15) Попытка создать целочисленный список с range() (в результате чего появляется «TypeError: объект «range» не поддерживает назначение элементов)

        Иногда нужно получить упорядоченный список целых чисел, поэтому range() кажется хорошим способом сгенерировать этот список. Однако нужно помнить, что range() возвращает «объект диапазона», а не фактическое значение списка.

        Ошибка возникает в таком коде:

спам = дальность (10)
спам[4] = -1

Возможно, вот что вы хотите сделать:

spam = list(range(10))
спам[4] = -1
(Примечание: spam = range(10) работает в Python 2, потому что в Python 2 range() возвращает значение списка, а в Python 3 генерируется вышеуказанная ошибка)

16) Nice в ++ или — оператор самоувеличения. (В результате получается «SyntaxError: некорректный синтаксис»)

        Если вы привыкли к другим языкам, таким как C++, Java, PHP и т.д., возможно, стоит попробовать использовать ++ или — увеличить и вычесть переменную. В Python такого оператора нет.

        Ошибка возникает в таком коде:

спам = 1
spam++

Возможно, именно этого ты и хочешь:

спам = 1
спам += 1

17) Забыл добавить параметр self к первому аргументу метода (в результате получается «TypeError: myMethod() не принимает аргументов (1 given)»)

        Ошибка возникает в таком коде:

класс Foo():
    def myMethod():
        печать («Здравствуйте!»)
a = Foo()
a.myMethod()





Предыдущий:Программное обеспечение для беспроводного взлома WiFi + обучающий материал (капля воды)
Следующий:【iOS Study Series Development Series, выпущенный летом】IOS проекта】IOS
Опубликовано 05.12.2015 13:34:16 |
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com