С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 10

Работа с библиотекой книг

31.03.2019, 13:30. Показов 2307. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в том,что когда я поменял ID книжки и после решил ее удалить по новому ID выдало ошибку.


Реализовать функции:
1) вывода информации о всех книгах
2) вывода информации о книге по введенному с клавиатуры номеру
3) вывода количества книг, старше введённого года
4) обновлении всей информации о книге по введенному номеру
5) удалении книги по номеру'''

import traceback

library = [{"id":1,"title":"Война и мир","au":"Толстой Л.Н","date":1867,"str":12327},
{"id":2,"title":"Мартин Иден","au":"Джек Лондон","date":1909,"str":547},
{"id":3,"title":"Три товарища","au":"Эрих Мария Ремарк","date":1936,"str":523},
{"id":4,"title":"Жутко громко и запредельно близко","au":"Фоер Д.С","date":2005,"str":3547},
{"id":5,"title":"Гранатовый браслет","au":"Куприн А.И","date":1911,"str":121},
{"id":6,"title":"Великий Гэтсби","au":"Фицджеральд Ф.С","date":1922,"str":486},
{"id":7,"title":"На западном фронте без перемен","au":"Эрих Мария Ремарк","date":1928,"str":160},
{"id":8,"title":"Триумфальная арка","au":"Эрих Мария Ремарк","date":1945,"str":672},
{"id":9,"title":"Чёрный обелиск","au":"Эрих Мария Ремарк","date":1956,"str":545},
{"id":10,"title":"Время жить и время умирать","au":"Эрих Мария Ремарк","date":1954,"str":2342}]

def pr_func():
for i in range(10):
q=library[i]
print("Книга",q['id'],q['title'],", Автор-",q['au'],", Дата публикации-",q['date'],", Кол-во страниц-",q['str'])

def pr_nom():
q=library[int(input("Введите номер книги "))-1]
print("Книга",q['id'],q['title'],", Автор-",q['au'],", Дата публикации-",q['date'],", Кол-во страниц-",q['str'])

def kol():
e=0
date_scan=int(input("Введите год для сравнения "))
for i in range(10):
if library[i]['date']>int(date_scan):
e+=1
print("Кол-во книг старше введённого года: ",e)

def upd():
num=library[int(input("Введите номер книги для обновления инф-ии о ней "))-1]
num['id']=int(input("Изменение номера книги: "))
num['title']=input("Изменение названия: ")
num['au']=input("Изменение автора: ")
num['date']=int(input("Изменение даты публикации: "))
num['str']=int(input("Изменение кол-ва страниц: "))
print("Книга",num['id'],num['title'],", Автор-",num['au'],", Дата публикации-",num['date'],", Кол-во страниц-",num['str'])

def delete():
number=int(input("Введите номер книги для её удаления "))
library[number-1].clear()
for x in libraryrint(x)
def main():
pr_func()
pr_nom()
kol()
upd()
delete()
main()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2019, 13:30
Ответы с готовыми решениями:

Работа с библиотекой xlsxwriter
Здравствуйте У меня такой вопрос Вот у меня есть программа import xlsxwriter import sys data = list(map(str.strip,...

Работа с библиотекой python-gitlab
Помогите разобраться с библиотекой python-gitlab (https://python-gitlab.readthedocs.io/en/stable/index.html) Не могу понять с самого...

Работа с библиотекой urllib
Здравствуйте. Пытаюсь выполнить команду f = urllib.request.urlopen('http://www.python.org/'). Но получаю ошибку Библиотеку подключила. ...

2
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
31.03.2019, 15:00
Slein,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
library = [{"id":1,"title":"Война и мир","au":"Толстой Л.Н","date":1867,"str":12327},
          {"id":2,"title":"Мартин Иден","au":"Джек Лондон","date":1909,"str":547},
          {"id":3,"title":"Три товарища","au":"Эрих Мария Ремарк","date":1936,"str":523},
          {"id":4,"title":"Жутко громко и запредельно близко","au":"Фоер Д.С","date":2005,"str":3547},
          {"id":5,"title":"Гранатовый браслет","au":"Куприн А.И","date":1911,"str":121},
          {"id":12,"title":"Великий Гэтсби","au":"Фицджеральд Ф.С","date":1922,"str":486},
          {"id":7,"title":"На западном фронте без перемен","au":"Эрих Мария Ремарк","date":1928,"str":160},
          {"id":8,"title":"Триумфальная арка","au":"Эрих Мария Ремарк","date":1945,"str":672},
          {"id":9,"title":"Чёрный обелиск","au":"Эрих Мария Ремарк","date":1956,"str":545},
          {"id":10,"title":"Время жить и время умирать","au":"Эрих Мария Ремарк","date":1954,"str":2342}]
        
def pr_func():
  for i in range(10):
    q=library[i]
    print("Книга",q['id'],q['title'],", Автор-",q['au'],", Дата публикации-",q['date'],", Кол-во страниц-",q['str'])
 
def pr_nom():
  q=library[int(input("Введите номер книги "))-1]
  print("Книга",q['id'],q['title'],", Автор-",q['au'],", Дата публикации-",q['date'],", Кол-во страниц-",q['str'])
 
def kol():
  e=0
  date_scan=int(input("Введите год для сравнения "))
  for i in range(10):
    if library[i]['date']>int(date_scan):
      e+=1
  print("Кол-во книг старше введённого года: ",e)
 
def upd():
  num=library[int(input("Введите номер книги для обновления инф-ии о ней "))-1]
  num['id']=int(input("Изменение номера книги: "))
  num['title']=input("Изменение названия: ")
  num['au']=input("Изменение автора: ")
  num['date']=int(input("Изменение даты публикации: "))
  num['str']=int(input("Изменение кол-ва страниц: "))
  print("Книга",num['id'],num['title'],", Автор-",num['au'],", Дата публикации-",num['date'],", Кол-во страниц-",num['str'])
 
def delete():
  number=int(input("Введите номер книги для её удаления "))
  for i in library:
    for k in i.values():
      if k == number:
        library.remove(i)
  for x in library:
    print(x)
 
def main():
  pr_func()
  pr_nom()
  kol()
  upd()
  delete()
 
if __name__ == '__main__':
  main()
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
31.03.2019, 16:19
Лучший ответ Сообщение было отмечено Slein как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
library ={1:{"title":"Война и мир","au":"Толстой Л.Н","date":1867,"str":12327},
               2:{"title":"Мартин Иден","au":"Джек Лондон","date":1909,"str":547},
               3:{"title":"Три товарища","au":"Эрих Мария Ремарк","date":1936,"str":523},
               4:{"title":"Жутко громко и запредельно близко","au":"Фоер Д.С","date":2005,"str":3547},
               5:{"title":"Гранатовый браслет","au":"Куприн А.И","date":1911,"str":121},
               12:{"title":"Великий Гэтсби","au":"Фицджеральд Ф.С","date":1922,"str":486},
               7:{"title":"На западном фронте без перемен","au":"Эрих Мария Ремарк","date":1928,"str":160},
               8:{"title":"Триумфальная арка","au":"Эрих Мария Ремарк","date":1945,"str":672},
               9:{"title":"Чёрный обелиск","au":"Эрих Мария Ремарк","date":1956,"str":545},
              10:{"title":"Время жить и время умирать","au":"Эрих Мария Ремарк","date":1954,"str":2342}}
        
 
def full_info():
    for key in library:
        num_info(key)
        print('-'*20)
 
def num_info(id_):
    for i,x in library[id_].items():
        print(f'{i} : {x}')
    print('-'*20)
        
def year_book(year):
    for id_ in library:
        if library[id_]["date"] > year:
            num_info(id_ )
            
def nev_info(id_):
    print(' Информация для id:' ,id_)
    num_info(id_)
    print(' Изменение данных для id:' ,id_)
    for key in library[id_]:
        library[id_][key] = input(f'{key}: ')
 
def book_del(id_):
    library.pop(id_)
 
 
def correct_num():
    num = int(input('введи номер: '))
    if num not in library:
        print('Нет такого номера')
        return 0
    return num
 
while True:
    print('''
    1 - вывода информации о всех книгах
    2 - вывода информации о книге по введенному с клавиатуры номеру
    3 - вывода количества книг, старше введённого года
    4 - обновлении всей информации о книге по введенному номеру
    5 - удалении книги по номеру
    0 - выход '''
          )
 
    par = int(input('>>>  '))
    if par == 1:
        full_info()
    elif par == 2:
        num = correct_num()
        if not num:
            continue
        num_info(num)
    elif par == 3:
        year_book(int(input('введи год: ')))
    elif par == 4:
        num = correct_num()
        if not num :
            continue
        nev_info(num)
    elif par == 4:
        num = correct_num()
        if not num :
            continue
        book_del(num)
    elif par == 0:
        print('Выход')
        break
    else:
        print('Нет такого пункта !')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2019, 16:19
Помогаю со студенческими работами здесь

Работа с библиотекой TensorFlow
Доброго времени суток! Предыстория: пытаюсь построить нейросеть для решения задачи классификации текста. Есть файл CSV, в котором...

Pefile работа с библиотекой
Привет, подскажите пожалуйста где найти информацию про эту библиотеку и я точно не могу понять на каком питоне она работает. И какие...

Работа с графической библиотекой tkinterPython
Напишите программу, позволяющую осуществлять деление, вычитание и сложение двух чисел. Добавьте соответствующие кнопки.

Подключение и работа с библиотекой с github.com
Возникла у меня прикладная задача - управлять хабом универсального пульта (по сути ИК-передатчиком) с компьютера. попалась библиотека на...

Работа с библиотекой requests, http-запросы
Домашнее задание к лекции 8.«Работа с библиотекой requests, http-запросы» Задача №1 Кто самый умный супергерой? Есть API по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru