GPT-4o
В Python ключи словаря должны быть уникальными. Если ключи повторяются, то старые значения перезаписываются новыми, что приводит к потере части данных. В вашем случае проблема заключается в том, что случайные номера студенческих билетов могут повторяться. Чтобы избежать потери данных, можно использовать проверку на уникальность ключа перед добавлением его в словарь.
Вот модифицированный вариант вашего кода, который обеспечивает уникальные ключи:
import random
d = 10 # Количество студентов
stud_ids = set() # Множество для хранения уникальных студенческих билетов
students = {}
for i in range(d):
while True:
student_id = random.randint(1, 11) # Случайный номер студенческого билета
if student_id not in stud_ids:
stud_ids.add(student_id)
break
student_name = input('Введите Фамилию и Имя: ') # Ввод имени студента
students[student_id] = student_name # Добавление в словарь
print(students)
В этом коде мы используем множество `stud_ids` для отслеживания уникальных номеров студенческих билетов. Каждый раз, когда генерируется новый номер, программа проверяет, не существует ли он уже в множестве. Если номер уникален, он добавляется в множество и используется как ключ в словаре. Таким образом, гарантируется уникальность всех ключей в словаре `students`.
Если количество студентов больше, чем диапазон возможных номеров студенческих билетов, программа может зациклиться в попытках найти уникальный номер. В таком случае нужно увеличить диапазон возможных номеров или изменить логику генерации уникальных ключей.
Ввод:
Введите Фамилию и Имя: Sergey Ivanov
Введите Фамилию и Имя: Ivan Pulgar
Введите Фамилию и Имя: Dmitriy Polyanski
Введите Фамилию и Имя: Wjyceh Kshistovski
Введите Фамилию и Имя: Ivan Ivanon
Введите Фамилию и Имя: Andrey Suslov
Введите Фамилию и Имя: Nikolay Barbov
Введите Фамилию и Имя: Ignat Sergeev
Введите Фамилию и Имя: Vladimir Leonov
Введите Фамилию и Имя: Alexey Buslov
Вывод:
{3: 'Sergey Ivanov', 2: 'Vladimir Leonov', 4: 'Dmitriy Polyanski', 6: 'Alexey Buslov', 7: 'Ignat Sergeev', 5: 'Nikolay Barbov'}