В основном я новичок в python, и я использую python 3, чтобы попытаться создать генератор паролей просто для удовольствия, но я продолжаю сталкиваться с проблемой. Когда я пытаюсь использовать следующий код в Pydroid 3, он работает так, как задумано: создать смешанный пароль (символы, буквы верхнего и нижнего регистра и цифры), длина которого определяется пользователем, но когда я запускаю его на Pycharm I,получить только 1 символ, несмотря на то, что я хочу больше 1. Знает ли кто-нибудь проблему?
import random
import string
import pyfiglet
print(pyfiglet.figlet_format('Password Generator!\n', font="digital"))
length = int(input('How many characters long do you want the password to be? '))
alphabet = list(string.ascii_lowercase)
numbers = range(0, 10)
specialchar = list(string.punctuation)
char = ('alfa', 'num', 'char')
pw = []
passw = ''
while length > 0:
if random.choice(char) == 'alfa':
x = str(random.choice(alphabet))
pw.append(x)
passw = ''.join(x)
length -= 1
elif random.choice(char) == 'num':
x = str(random.choice(numbers))
pw.append(x)
passw = ''.join(x)
length -= 1
else:
x = str(random.choice(specialchar))
pw.append(x)
passw = ''.join(x)
length -= 1
def randomupper(c):
if random.random() > 0.5:
return c.upper()
return c.lower()
password = ''.join(map(randomupper, passw))
print(f'Your randomly generated password is: {password}')