Ошибка Traceback (most recent call last): (Python)
написал код который генерирует рандомные пароли вот собственно сам код:
import random from random import choice from string import ascii_uppercase def test(): cs = random.randint(8,25) symbols = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_' rand = (''.join(choice(symbols) for i in range(cs))) if rand == "testPIN12345": print (rand) else: test() test()
по идеи он должен работать до тех пор пока не сгенерирует рандомный пароль совпадающий со значением в if rand == «testPIN12345»: но вылетает ошибка:
Traceback (most recent call last): File "C:\test\test.py", line 19, in test() File "C:\test\test.py", line 17, in test test() File "C:\test\test.py", line 17, in test test() File "C:\test\test.py", line 17, in test test() [Previous line repeated 1017 more times] File "C:\test\test.py", line 12, in test rand = (''.join(choice(symbols) for i in range(cs))) File "C:\test\test.py", line 12, in rand = (''.join(choice(symbols) for i in range(cs))) File "C:\Users\epicb\AppData\Local\Programs\Python\Python38\lib\random.py", line 288, in choice i = self._randbelow(len(seq)) File "C:\Users\epicb\AppData\Local\Programs\Python\Python38\lib\random.py", line 254, in _randbelow_with_getrandbits k = n.bit_length() # don't use (n-1) here because n can be 1 RecursionError: maximum recursion depth exceeded while calling a Python object
Python | Как исправить ошибку Traceback (most recent call last): File «main.py»?

Хотел «скомпилировать» проект на pygame с помощью pyinstaller’a, но при открывании exe файла выскакивает такая ошибка:
- Вопрос задан более года назад
- 2673 просмотра
Комментировать
Решения вопроса 1

Сегодня как раз читал это.
У меня подобная ошибка была, но после статьи все исправил.
Ответ написан более года назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
Опять коги! Выдаёт ошибку, как её убрать?
- 1 подписчик
- 5 минут назад
- 10 просмотров

- Python
- +1 ещё
Как заставить селениум просто открыть страницу и ждать?
- 1 подписчик
- 2 часа назад
- 209 просмотров
Ошибки и исключения
Если вы пишете программу на Python и игнорируете синтаксис этого языка, то при запуске своей программы получите одну или несколько ошибок. Python сообщит вам, что ваш код не работает, и выдаст информацию об ошибке. Взгляните, что произойдет, если в Python вы попытаетесь определить строку с кавычками только с одной стороны.
my_string = "Привет, мир.
Traceback (most recent call last): File error.py, line 1 my_string = "Привет, мир. ^ SyntaxError: EOL while scanning string literal
Это сообщение указывает, что ваша программа содержит синтаксическую ошибку. Синтаксические ошибки фатальны; программа, содержащая их, не может работать. Когда вы пытаетесь запустить программу с синтаксической ошибкой, Python сообщает об этом.
Сообщение расскажет вам о том, в каком файле была ошибка, в какой она произошла строке, и что это была за ошибка. Хотя ошибки могут показаться пугающими, они случаются постоянно.
Если в вашем коде была допущена ошибка, вы должны перейти к номеру строки кода, в которой возникла проблема, и попытаться выяснить, что было сделано неправильно. В данном примере нужно перейти к первой строке. Если вы внимательно к ней присмотритесь, то заметите, что она содержит лишь открывающие кавычки. Чтобы исправить это, закройте кавычки в конце строки и повторно запустите программу.
У Python есть два типа ошибок: синтаксические ошибки и исключения. Исключением называется любая ошибка, которая не является синтаксической. В отличие от синтаксических ошибок, исключения необязательно фатальны.
ZeroDivisionError — пример исключения, которое возникает при попытке деления на ноль пользователем, в случае если вами, как программистом, не предусмотрено ограничения такой возможности.
В процессе обучения программированию вы будете часто получать синтаксические ошибки и исключения, но со временем их количество снизится. Помните, когда вы сталкиваетесь с синтаксической ошибкой или исключением, переходите к строке, где возникла проблема, и всматривайтесь в нее, пока не найдете решение.
Обработка исключений ¶
Предположим, вы написали программу, которая принимает от пользователя два числа и выводит результат деления первого числа на второе:
a = input("Введите число: ")b = input("Введите еще одно число: ")a = int(a)b = int(b)print (a / b)
Программа будет работать. Однако если пользователь введет 0 в качестве второго числа, вы столкнетесь с ошибкой:
Traceback (most recent call last): module division.py line 5 ZeroDivisionError: division by zero
Нельзя просто надеяться, что пользователь не введет 0 и отличным способом выйти из положения может стать обработка исключений — инструмент, позволяющий «перехватить» исключения, если таковые возникают, и решить, что делать дальше.
Для обработки исключений используются ключевые слова try и except . При использовании обработки исключений, когда пользователь вторым числом вводит 0, программа может вывести им сообщение о недопустимости ввода нуля.
Все исключения в Python являются объектами, так что вы можете использовать их в своих программах. Список встроенных исключений можно найти здесь . Если вам кажется, что ваш код может сгенерировать исключение, используйте составную инструкцию с ключевыми словами try и except , чтобы перехватить его.
Блок try содержит код, который может сгенерировать исключение. Блок except содержит код, который будет выполняться лишь в том случае, если внутри блока try появится исключение. Ниже приведен пример использования обработки исключений, когда программа не прерывается при вводе 0 в качестве второго числа.
try: a = input("Введите число: ") b = input("Введите еще одно число: ") a = int(a) b = int(b) print (a / b)except ZeroDivisionError: print("b не может быть нулем!")
Такая программа перехватит исключение ZeroDivisionError и передаст управление в блок except , в котором мы и выведем сообщение о недопустимости ввода 0.
Ваша программа также завершится с ошибкой, если пользователь введет строку, которую Python не может преобразовать в целое число. Попробуйте ввести вместо числа какое-нибудь слово и вы увидите примерно такое сообщение об ошибке:
Traceback (most recent call last): module division.py line 3 ValueError: invalid literal for int() with base 10: 'слово'
Это можно исправить, перехватив оба типа исключений
try: a = input("Введите число: ") b = input("Введите еще одно число: ") a = int(a) b = int(b) print (a / b)except ZeroDivisionError: print("b не может быть нулем!")except ValueError: print("Ошибка ввода числа")
Не используйте в инструкции except переменные, определенные в try , поскольку исключение может возникнуть прежде, чем будет определена переменная, и как только вы попытаетесь использовать инструкцию except , внутри нее сгенерируется исключение.
try: 10 / 0 c = "Я никогда не определюсь."except ZeroDivisionError: print(c)
Такая программа закончится с ошибкой
Traceback (most recent call last): module zero.py line 5 NameError: name 'c' is not defined
Что означает ошибка Traceback (Most recent call last)?
Во время игры неожиданно выключился комп. Теперь после каждой загрузки появляется такая ошибка (фото). При этом пропал весь прогресс этой игры. Подскажите Что это такое и что с этим делать? и можно ли восстановить прогресс?
Дополнен 6 лет назад
Что ошибка в последней строке, я понял. А как исправить то? (для чайников)
Голосование за лучший ответ
Ошибка внизу. А сверху идёт стэк вызовов.