🎉 बधाई! 🎉
आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।
ProgerLib सभी के लिए Python
आप डिजिटल आर्काइव में एक जूनियर विशेषज्ञ के रूप में काम करते हैं। आपका कार्य & mdash; प्राचीन कलाकृतियों की सूची बनाने के लिए एक सहायक प्रोग्राम बनाना। प्रत्येक कलाकृति का एक अद्वितीय संख्यात्मक पहचानकर्ता (ID) और नाम होता है।
प्रोग्राम इंटरैक्टिव होना चाहिए और एक लूप में काम करना चाहिए, जो आपसे कमांड की अपेक्षा करता है।
प्रोग्राम कमांड:
add — एक नई कलाकृति जोड़ने की प्रक्रिया शुरू करता है। प्रोग्राम आपसे "id: name" प्रारूप में डेटा का अनुरोध करेगा। आपको यह सुनिश्चित करना होगा कि ID एक पूर्ण संख्या है। यदि इनपुट प्रारूप गलत है (उदाहरण के लिए, कोलन नहीं है या ID एक संख्या नहीं है), तो प्रोग्राम को एक त्रुटि की रिपोर्ट करनी चाहिए और सही डेटा दर्ज होने तक पुनः इनपुट का अनुरोध करना चाहिए। list — स्क्रीन पर सभी जोड़ी गई कलाकृतियों की वर्तमान सूची उसी क्रम में प्रदर्शित करता है जिस क्रम में उन्हें जोड़ा गया था। sort — सभी कलाकृतियों को उनके ID के बढ़ते क्रम में क्रमबद्ध करता है। क्रमबद्ध करने के लिए बबल सॉर्टिंग एल्गोरिदम का उपयोग करना आवश्यक है। क्रमबद्ध करने के बाद, प्रोग्राम को सफलता के बारे में सूचित करना चाहिए। exit — प्रोग्राम का कार्य समाप्त करता है। आपका लक्ष्य — एक ऐसा प्रोग्राम लिखना जो सभी कमांड को सही ढंग से संसाधित करे, कलाकृतियों की सूची को नियंत्रित करे, और बबल सॉर्टिंग को सही ढंग से लागू करे ताकि वरिष्ठ आर्काइविस्ट कैटलॉग में आसानी से नेविगेट कर सके।
उपयोगकर्ता टीम (पंक्ति)। यह निम्न में से एक हो सकता है: add , list , sort , output ।
यदि कमांड add है, तो आर्टिफैक्ट (पंक्ति) पर डेटा का इनपुट id: name प्रारूप में होगा। ID को पूर्ण संख्या के रूप में दर्शाया जाना चाहिए।
प्रोग्राम के कमांडों के उत्तर, त्रुटि संदेश, कलाकृतियों (पंक्तियों) की एक क्रमबद्ध या अधूरी सूची।
जोड़ें
30: ढाल
जोड़ें
10: तलवार
क्रमबद्ध करें
सूची
बाहर निकलें
कलाकृति सफलतापूर्वक जोड़ी गई है।
कलाकृति सफलतापूर्वक जोड़ी गई है।
संग्रह को आईडी द्वारा सफलतापूर्वक क्रमबद्ध किया गया है।
--- कलाकृतियों की सूची ---
id: 10, name: तलवार
id: 30, name
-------------------- प्रोग्राम। अलविदा!
# Создаем два пустых списка для хранения ID и названий артефактов.
# Мы используем два списка, чтобы ID и названия с одинаковыми индексами соответствовали друг другу.
artifact_ids = []
artifact_names = []
# Запускаем бесконечный цикл, который будет работать, пока пользователь не введет команду "выход".
while True:
# Запрашиваем у пользователя ввод команды.
command = input()
# Условие для обработки команды "добавить".
if command == "добавить":
# Внутренний цикл для проверки корректности ввода данных об артефакте.
while True:
# Запрашиваем данные в формате "ID:Название".
data_input = input()
# Проверяем, есть ли в строке разделитель ':'.
if ':' in data_input:
# Разделяем строку на две части по первому вхождению ':'.
parts = data_input.split(':', 1)
id_str = parts[0]
name_str = parts[1]
# Проверяем, состоит ли часть с ID только из цифр (и возможно знака минус).
if id_str.strip().isdigit():
# Если все проверки пройдены, преобразуем ID в целое число.
new_id = int(id_str)
# Добавляем ID и название в соответствующие списки.
artifact_ids.append(new_id)
artifact_names.append(name_str)
print("Артефакт успешно добавлен.")
# Прерываем внутренний цикл проверки, так как данные корректны.
break
else:
# Сообщение об ошибке, если ID не является числом.
print("Ошибка: ID должен быть целым числом. Попробуйте снова.")
else:
# Сообщение об ошибке, если формат ввода неверный.
print("Ошибка: неверный формат. Используйте ID:Название. Попробуйте снова.")
# Условие для обработки команды "список".
elif command == "список":
print("--- Каталог артефактов ---")
# Проверяем, есть ли артефакты в каталоге.
if not artifact_ids:
print("Архив пуст.")
else:
# Используем цикл for для перебора всех артефактов и их вывода.
# range(len(artifact_ids)) генерирует последовательность индексов от 0 до N-1.
for i in range(len(artifact_ids)):
print(f"ID: {artifact_ids[i]}, Название: {artifact_names[i]}")
print("--------------------------")
# Условие для обработки команды "сортировать".
elif command == "сортировать":
# Получаем количество элементов для сортировки.
n = len(artifact_ids)
# Внешний цикл пузырьковой сортировки.
for i in range(n):
# Внутренний цикл, который сравнивает и меняет местами соседние элементы.
# С каждым проходом внешнего цикла самый большой элемент "всплывает" в конец,
# поэтому внутренний цикл можно сокращать на 'i'.
for j in range(0, n-i-1):
# Если текущий ID больше следующего, меняем их местами.
if artifact_ids[j] > artifact_ids[j+1]:
# Меняем местами ID.
artifact_ids[j], artifact_ids[j+1] = artifact_ids[j+1], artifact_ids[j]
# ВАЖНО: одновременно меняем местами и названия, чтобы сохранить соответствие.
artifact_names[j], artifact_names[j+1] = artifact_names[j+1], artifact_names[j]
print("Архив успешно отсортирован по ID.")
# Условие для обработки команды "выход".
elif command == "выход":
print("Завершение работы программы. До свидания!")
# Прерываем главный цикл while, что приводит к завершению программы.
break
# Если введена неизвестная команда.
else:
print("Неизвестная команда. Пожалуйста, используйте одну из следующих: добавить, список, сортировать, выход.")
🎉 बधाई! 🎉
आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।
AD
विज्ञापन
कोड चल रहा है...