kjhfdklffsjsw
07.02.2022 20:09

(файл books.txt) номер|название|автор|количество|цена
43545-9|Python для начинающих|Михаил Дроздов|10|1890.80
59600-2|XSLT справочник|Семён Мангалов|15|3460.50
32168-3|Программирование на Python|Марк Полевой|8|2728.90
44935-9|Изучаем Python|Марк Прыгунов|21|3420.85
47178-2|Ajax для дураков|Сергей Иванов|32|1180.90
78439-5|Сетевые дела на Python|Эдуард Медведев|23|3149.50
59037-7|Программируем на Lua|Роберт Иерусалимский|12|3710.49
78439-9|Обучаем машины на Java|Борис Калужный|45|3447.99

В файле books.txt находится каталог товаров в формате:
номер|название|автор|количество|цена

Ваша программа должна находится в файле books.py и быть доступна для автоматического теста файлом books_test.py.

Задание 1

Необходимо реализовать функцию get_books.
Функция должна принимать имя файла для чтения
Функция должна возвращать данные из файла в виде списка списков как:
[ ['номер', 'название', 'автор', количество, цена], [...], ... ]

Например, вызов функции как
books = get_books('books.txt')
должен вернуть следующий список списков:
[
['43545-9', 'Python для начинающих', 'Михаил Дроздов', 10, 1890.80],
['59600-2', 'XSLT справочник', 'Семён Мангалов', 15, 3460.50],
[...],
...
]

Задание 2

Необходимо реализовать функцию filter_books
Функция должна принимать поисковую строку и список созданный в предыдущем задании
Функция должна возвращать список списков с книгами, которые выбраны по поисковой строке в названии как
[ ['номер', 'название, автор', количество, цена], [...], ... ]

Например, вызов функции как
filtered = filter_books('python', books)
должен вернуть следующий список списков (выбираются книги, где в названии есть подстрока 'python'):
[
['43545-9', 'Python для начинающих, Михаил Дроздов', 10, 1890.80],
['32168-3', 'Программирование на Python, Марк Полевой', 8, 2728.90],
[...],
...
]

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
yuliana577
01.01.2021 03:39

const

   handsfree = false;

   nmax = 10;

   random_min = -50;

   random_max = 50;

var

   a: array[0..nmax] of real;

   i, n: integer;

   sum, x: real;

begin

   {ввод массива}

   n := nmax;

   if handsfree then begin

       for i := 0 to n do

       begin

           a[i] := random(random_max - random_min) + random_min;

           write(a[i], ' ');

       end

   end

   else begin

       for i := 0 to n do

           readln(a[i]);

   end;

   writeln();

   

   {подсчет суммы}

   write('x = ');

   readln(x);

   

   sum := a[n];

   for i := n - 1 downto 0 do

       sum := sum * x + a[i];

   writeln('S = ', sqrt(sum));

end.

0,0(0 оценок)
Ответ:
НикитаДикий
11.10.2021 06:22
Var a, b: integer;
var c: string;
begin
writeln('Введите 1 число.');
readln(a);
writeln('Введите 2 число.');
readln(b);
writeln('Знак операции.');
readln(c);
if c='*' then writeln(a*b);
if c='/' then writeln(a/b);
if c='-' then writeln(a-b);
if c='+' then writeln(a+b);
end.
2 ЗАДАЧА 
var a, b: real;
begin
writeln('Зарабаток Пети:');
readln(a);
writeln('Зарабаток Петрова:');
readln(b);
if a>b then writeln('Петя заработал больше Петрова.')
else if a=b then writeln('Петров и Петя заработали одинаково.')
else
writeln('Петров заработал больше Пети.');
writeln('Среднее: ', (a+b)/2);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота