Реализация программы На питоне

Не работает программа когда ввожу индентификатор (имя пользователя)

Ошибка

Traceback (most recent call last):
  File "main.py", line 46, in <module>
    ident=(chr(get_password(p)))
  File "main.py", line 33, in get_password
    q = identifier % 8
TypeError: not all arguments converted during string formatting

import random
import string


def get_password(identifier):    
    symbols_array = ['!', '"', "#", '$', '%', '&', "'", '(', ')', '*']
    q = identifier % 8
    password = ''
    
    for i in range(2):
        password += str(random.randint(0, 9))
    
    for i in range(q + 1):
        password += random.choice(string.ascii_uppercase)
    
    for i in range(11 - len(password)):
        password += random.choice(symbols_array)
        return str(password)
p = 'ecgeny'
ident=(chr(get_password(p)))

Ответы (1 шт):

Автор решения: CrazyElf
q = identifier % 8

Поскольку в identifier у вас строка, это воспринимается как старый способ форматирования строки. В строке у вас нет никаких шаблонов форматирования, поэтому питон не понимает, как в эту строку разместить число 8 и выдаёт такую ошибку.

Могу лишь предположить, что вы хотели взять остаток от деления длины строки на 8, но не могу быть уверенным, поскольку ваш код в целом не очень понятен по смыслу:

q = len(identifier) % 8

Если поменять ещё и эту строку, то код хотя бы будет работать без ошибок:

ident=(chr(get_password(p)))

На вот эту:

print(get_password(p))
→ Ссылка