Comments by "" (@doom678) on "#16 Решение ДЗ по спискам и словарям | Курс по Python | Курс по программированию | Михаил Омельченко" video.
-
Пришлось попотеть. Сделал программу для охранника стоянки:
😅
import json # Для работы с JSON
def load_data(file_name):
"""Загрузка данных из файла."""
try:
with open(file_name, "r", encoding="utf-8") as file:
return json.load(file)
except FileNotFoundError:
return {} # Если файл отсутствует, возвращает пустой словарь
except json.JSONDecodeError:
print("Ошибка чтения данных из файла. Проверьте формат.")
return {}
def save_data(file_name, data):
"""Сохранение данных в файл."""
with open(file_name, "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False, indent=4)
def main():
file_name = "car_owners.json"
car_owners = load_data(file_name)
while True:
command = input("1 - Добавить\n2 - Удалить\n3 - Просмотр\n4 - Изменить запись\n0 -Выход\nВведите команду: ")
if command == '1': # Добавить запись
name = input("Введите имя владельца машины: ")
if car_owners.get(name):
print("Такое имя уже существует")
continue
car_make_and_model = input("Введите марку и модель машины: ")
car_number = input("Введите номер машины: ")
owner_phone_number = input("Введите номер телефона владельца машины: ")
car_owners[name] = [car_make_and_model, car_number, owner_phone_number]
print(f"Создана новая запись: Владелец: {name} Автомобиль: {car_make_and_model} с Гос. номером: /{car_number}/ Телефон для связи: {owner_phone_number}")
elif command == '2':
name = input("Введите имя владельца машины для удаления: ")
if name in car_owners:
car_owners.pop(name)
print(f"\nЗапись с Именем: {name}, Автомобиль: {car_make_and_model}, Гос. номер: /{car_number}/ удалена!")
else:
print(f"Запись с Именем: {name} не найдена!")
elif command == '3': # Просмотр всех записей
if not car_owners:
print("Список владельцев пуст.")
else:
print("\nСписок владельцев автомобилей:")
for name, (car_make_and_model, car_number, owner_phone_number) in car_owners.items():
print(f"Владелец: {name}, Автомобиль: {car_make_and_model}, Гос. номер:/{car_number}/ Телефон для связи: {owner_phone_number}")
elif command == '4': # Изменить запись
name = input("Введите имя владельца для изменения: ")
if name not in car_owners:
print("\nИмя не найдено, введите существующее имя!\n")
continue
new_car_make_and_model = input("Введите новую марку и модель автомобиля: ")
new_car_number = input("Введите новый номер автомобиля: ")
owner_phone_number = input("Введите номер телефона владельца машины: ")
car_owners[name] = [new_car_make_and_model, new_car_number, owner_phone_number]
print(f"Запись для {name} обновлена. Автомобиль: {new_car_make_and_model}, Гос. номер: /{new_car_number}/ Телефон для связи: {owner_phone_number}")
elif command == '0': # Выход из программы
save_data(file_name, car_owners)
print("Данные сохранены. Выход из программы.")
break
else:
print("Неизвестная программа. Попробуйте снова.")
main()
1