Я пытаюсь получить код «кроме» строки для целого числа.- «длина».Когда я ставлю, кроме ValueError, я получаю обратно «Пожалуйста, введите номер», но добавляется больше ошибок.Я также добавил, кроме UnboundLocalError, но это не похоже на работу.Пожалуйста, дайте мне знать, что я делаю не так!Вот мой код:
import random
import string
def RPG():
try:
RPG = ""
count = 0
length = int(
input("How many characters would you like in your password? "))
except (ValueError, UnboundLocalError):
print("Please enter a number.")
while count != length:
upper = [random.choice(string.ascii_uppercase)]
lower = [random.choice(string.ascii_lowercase)]
num = [random.choice(string.digits)]
symbol = [random.choice(string.punctuation)]
everything = upper + lower + num + symbol
RPG += random.choice(everything)
count += 1
continue
if count == length:
print(RPG)
# could also use string.printable for digits, letters, punct., and whitespace.
RPG()
Вот что я получил от использования этого кода и ввода строки вместо целого числа в длину:
How many characters would you like in your password? j
Please enter a number.
Traceback (most recent call last):
File "c:\Users\jkelly\Desktop\python\code.py", line 28, in <module>
pwd()
File "c:\Users\jkelly\Desktop\python\code.py", line 14, in pwd
while count != length:
UnboundLocalError: local variable 'length' referenced before assignment
Я ожидаю только "Пожалуйставведите число ", а не остальная часть ошибки, любая помощь будет принята с благодарностью.Спасибо за ваше время!