Python - наверное глупый вопрос (возможно про рекурсию, а может и нет)
я довольно таки еще новичек в python и программировании в целов и возможной мой вопрос будет глупым, но решения я так и не нашел.
Для примера взял общий список имен, также есть рандомные имена которые сравниваются с общим списком. Если такоего имени в общем списке еще нет, оно туда запишется (но проблема не в этом). Проблема в том что если такое имя уже есть в общем списке то его нужно перерандомить и опять проверить на наличие, если вдруг оно не изменилось то опять перерандомить и так до тех пор пока оно не изменится, после чего отправить на добавление в общий список (реализация добавления пока не требуется)
Не знаю понятно ли обьяснил в чем проблема, комментариями в коде постарался также передать суть.
Пожалуйста не придерайтесь к самой задаче, если есть критика насчет самого кода буду рад узнать что то новое.
import random
#Общий список имен
list_name = ["Вася", "Петя", "Коля", "Дима"]
#Имена для рандомайзера
list_random = ["Олег", "Коля"]
#Случайно выбирает одно имя из списка list_random
def generation_random():
random_index = random.randint(0,len(list_random)-1)
return list_random[random_index]
name_one = generation_random()
print(name_one)
#Сравнивает случайно выбраное имя из общим списком имен
def name_check():
if name_one in list_name:
print("такое имя уже существует")
#Если имя уже существует, нужно его перерандомить и опять проверить на наличие функцией name_check()
#Если оно не поменялось то опять перерандомить, а если поменялось то отправить в else
else:
print("такого имени нет")
#тут ничего писать не надо, интересует только если "такое имя уже существует"
name_check()
Ответы (1 шт):
Я так понимю имелось ввиду что-то такое?
import random
list_name = ["Вася", "Петя", "Коля", "Дима"]
list_random = ["Олег", "Коля"]
def name_check():
while (name_one := random.choice(list_random)) in list_name:
print(f"имя {name_one} уже существует")
list_name.append(name_one)
print(f'Имя {name_one} добавлено')
name_check()