From 52dbc9f6c78cb59d16439a331c433f7ec9390539 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Sat, 5 Dec 2020 22:52:00 +0300 Subject: [PATCH 01/38] add string practice tasks --- Module3/practice/string/01_task_string.py | 11 +++++++++++ Module3/practice/string/02_task_string.py | 12 ++++++++++++ Module3/practice/string/03_task_string.py | 3 +++ Module3/practice/string/04_task_string.py | 7 +++++++ Module3/practice/string/04a_task_string.py | 10 ++++++++++ Module3/practice/string/05_task_string.py | 8 ++++++++ 6 files changed, 51 insertions(+) create mode 100644 Module3/practice/string/01_task_string.py create mode 100644 Module3/practice/string/02_task_string.py create mode 100644 Module3/practice/string/03_task_string.py create mode 100644 Module3/practice/string/04_task_string.py create mode 100644 Module3/practice/string/04a_task_string.py create mode 100644 Module3/practice/string/05_task_string.py diff --git a/Module3/practice/string/01_task_string.py b/Module3/practice/string/01_task_string.py new file mode 100644 index 000000000..01c4b5f5d --- /dev/null +++ b/Module3/practice/string/01_task_string.py @@ -0,0 +1,11 @@ +# Для регистрации на сайте, пользователи часто вводят Имя и Фамилию с маленькой буквы. +# Напишите мини-программу, которая будет запрашивать у пользователя имя и фамилию +# и заменять первые буквы буквами в верхнем регистре. +# Измененные данные(имя и фамилию) вывести на экран. + +name = input("Имя: ") +surname = input("Фамилия: ") + +# TODO: your code here + +print(name, surname) \ No newline at end of file diff --git a/Module3/practice/string/02_task_string.py b/Module3/practice/string/02_task_string.py new file mode 100644 index 000000000..313941aab --- /dev/null +++ b/Module3/practice/string/02_task_string.py @@ -0,0 +1,12 @@ +# Пользователь Василий очень часто злоупотребляет восклицательными знаками! +# Напишите программу, которая будет заменять восклицательные знаки на точки. +# Пример строки: «Вася самый умный! Вася лучше всех! И ждет его успех! Вот так!» + +text = "Вася самый умный! Вася лучше всех! И ждет его успех! Вот так!" + +# TODO: your code here + +print(text) + +# Важно! Ваше решение должно работать не только с данной строкой, но и слюбой другой. +# Проверьте это, заменив текст примера на любой другой. diff --git a/Module3/practice/string/03_task_string.py b/Module3/practice/string/03_task_string.py new file mode 100644 index 000000000..b8bc0e9a4 --- /dev/null +++ b/Module3/practice/string/03_task_string.py @@ -0,0 +1,3 @@ +# Подсчитать количество букв «а» во введенной строке + +# TODO: your code here diff --git a/Module3/practice/string/04_task_string.py b/Module3/practice/string/04_task_string.py new file mode 100644 index 000000000..c184075f3 --- /dev/null +++ b/Module3/practice/string/04_task_string.py @@ -0,0 +1,7 @@ +# Дана строка текста, слова разделены пробелами, знаки препинания отсутствуют. +# Определить в предоставленном сообщении количество слов длиной больше, чем 5. + +text = "Lorem ipsum dolor sit amet consectetur adipiscing elit Integer porttitor bibendum nisi ut convallis ante" +# Примечание: для генериации текста можете воспользоваться сайтом: https://ru.lipsum.com/ + +# TODO: your code here diff --git a/Module3/practice/string/04a_task_string.py b/Module3/practice/string/04a_task_string.py new file mode 100644 index 000000000..fa83b8478 --- /dev/null +++ b/Module3/practice/string/04a_task_string.py @@ -0,0 +1,10 @@ +# Дана строка текста, слова разделены пробелами. +# В предложении могут присутствовать следующие знаки препинания ",.!?-". Знаки препинания частьюслова не являются. +# Определить в предоставленном сообщении количество слов длиной больше, чем 7. + +text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam placerat consequat vestibulum. " \ + "Donec tincidunt sed lorem et feugiat. Nullam elementum" +# Примечание: для генериации текста можете воспользоваться сайтом: https://ru.lipsum.com/ +# Примечание: обратите внимание на перенос длинной строки на новую строку + +# TODO: your code here diff --git a/Module3/practice/string/05_task_string.py b/Module3/practice/string/05_task_string.py new file mode 100644 index 000000000..adda7927e --- /dev/null +++ b/Module3/practice/string/05_task_string.py @@ -0,0 +1,8 @@ +# Вам дана строка, состоящая из строчных латинских букв и пробелов. +# Ваша задача — определить, является ли эта строка «перевертышем», если удалить из нее все пробелы и знаки пуктуации. +# Строка называется «перевертышем», если читается одинаково слева направо и справа налево. + +# Пример строки перевертыша: "И темен город. Мороз узором дорог не мети." + +# TODO: your code here + From 80174d1e76ee8cdb6a565da0b1eb55d5877fc4f1 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Sun, 6 Dec 2020 01:08:10 +0300 Subject: [PATCH 02/38] add tasks for Module-3 --- Module3/home_work/01_hw.py | 9 ++++ Module3/home_work/02_hw.py | 8 ++++ Module3/home_work/03_hw.py | 4 ++ Module3/home_work/04_hw.py | 7 +++ Module3/home_work/05_hw.py | 6 +++ Module3/home_work/06_hw.py | 45 +++++++++++++++++ Module3/practice/dict/01_task_dict.py | 10 ++++ Module3/practice/dict/02_task_dict.py | 48 +++++++++++++++++++ .../practice/list_and_tuple/01_task_list.py | 6 +++ .../practice/list_and_tuple/02_task_list.py | 6 +++ .../practice/list_and_tuple/03_task_list.py | 4 ++ .../practice/list_and_tuple/04_task_list.py | 4 ++ .../practice/list_and_tuple/05_task_list.py | 17 +++++++ .../practice/list_and_tuple/06_task_list.py | 7 +++ .../practice/list_and_tuple/07_task_tuple.py | 5 ++ .../practice/list_and_tuple/08_task_tuple.py | 15 ++++++ .../practice/list_and_tuple/09_task_tuple.py | 4 ++ .../list_and_tuple/add01_task_list.py | 5 ++ .../list_and_tuple/add02_task_list.py | 7 +++ ...4a_task_string.py => add01_task_string.py} | 0 20 files changed, 217 insertions(+) create mode 100644 Module3/home_work/01_hw.py create mode 100644 Module3/home_work/02_hw.py create mode 100644 Module3/home_work/03_hw.py create mode 100644 Module3/home_work/04_hw.py create mode 100644 Module3/home_work/05_hw.py create mode 100644 Module3/home_work/06_hw.py create mode 100644 Module3/practice/dict/01_task_dict.py create mode 100644 Module3/practice/dict/02_task_dict.py create mode 100644 Module3/practice/list_and_tuple/01_task_list.py create mode 100644 Module3/practice/list_and_tuple/02_task_list.py create mode 100644 Module3/practice/list_and_tuple/03_task_list.py create mode 100644 Module3/practice/list_and_tuple/04_task_list.py create mode 100644 Module3/practice/list_and_tuple/05_task_list.py create mode 100644 Module3/practice/list_and_tuple/06_task_list.py create mode 100644 Module3/practice/list_and_tuple/07_task_tuple.py create mode 100644 Module3/practice/list_and_tuple/08_task_tuple.py create mode 100644 Module3/practice/list_and_tuple/09_task_tuple.py create mode 100644 Module3/practice/list_and_tuple/add01_task_list.py create mode 100644 Module3/practice/list_and_tuple/add02_task_list.py rename Module3/practice/string/{04a_task_string.py => add01_task_string.py} (100%) diff --git a/Module3/home_work/01_hw.py b/Module3/home_work/01_hw.py new file mode 100644 index 000000000..51e9724b8 --- /dev/null +++ b/Module3/home_work/01_hw.py @@ -0,0 +1,9 @@ +# Дан список имен. +# Выведите все имена в одну строку через запятую + +names = ["Иван", "Ирина", "Вячеслав", "Василий", "Петр"] + +# TODO: your code here + +# Пример вывода: +# Иван, Ирина, Вячеслав, Василий, Петр diff --git a/Module3/home_work/02_hw.py b/Module3/home_work/02_hw.py new file mode 100644 index 000000000..dfa2b306c --- /dev/null +++ b/Module3/home_work/02_hw.py @@ -0,0 +1,8 @@ +# Напишите алгоритм, заполняющий список произвольными целыми числами +# в диапазоне от -100 до 100. В списке должно быть n - элементов. +# Подсказка: +# для получения случайного числа используйте функцию randint() модуля random +import random +numbers = [] +# print(random.randint(10, 20)) # раскомментируйте, чтобы посмотреть работу функции randint +# TODO: your code here diff --git a/Module3/home_work/03_hw.py b/Module3/home_work/03_hw.py new file mode 100644 index 000000000..8f216a102 --- /dev/null +++ b/Module3/home_work/03_hw.py @@ -0,0 +1,4 @@ +# Дан список из n элементов, заполненный произвольными целыми числами в диапазоне от -100 до 100. +# Вывести на экран сумму всех положительных элементов кратных двум. + +# TODO: your code here diff --git a/Module3/home_work/04_hw.py b/Module3/home_work/04_hw.py new file mode 100644 index 000000000..326998975 --- /dev/null +++ b/Module3/home_work/04_hw.py @@ -0,0 +1,7 @@ +# Дан список, заполненный произвольными целыми числами, получите новый список, +# элементами которого будут квадратные корни элементов исходного списка, +# но только если результаты извлечения корня не имеют десятичной части и +# если такой корень вообще можно извлечь +# Пример: +# Дано: [2, -5, 8, 9, -25, 25, 4] +# Результат: [3, 5, 2] diff --git a/Module3/home_work/05_hw.py b/Module3/home_work/05_hw.py new file mode 100644 index 000000000..c51293672 --- /dev/null +++ b/Module3/home_work/05_hw.py @@ -0,0 +1,6 @@ +# Дан список имен. +# Найдите самое длинное имя, если таких имен несколько - выведи любое их них + +names = ["Иван", "Ирина", "Вячеслав", "Василий", "Петр"] + +# TODO: your code here diff --git a/Module3/home_work/06_hw.py b/Module3/home_work/06_hw.py new file mode 100644 index 000000000..f60d49aab --- /dev/null +++ b/Module3/home_work/06_hw.py @@ -0,0 +1,45 @@ +# Данные о товарах на складе хранятся в словаре +items = [ + { + "name": "Кроссовки", + "brand": "adidas", + "price": 3440 + }, + { + "name": "Кепка", + "brand": "reebok", + "price": 3500 + }, + { + "name": "Рюкзак", + "brand": "reebok", + "price": 4800 + }, + { + "name": "Шорты", + "brand": "puma", + "price": 2500 + }, + { + "name": "Шорты", + "brand": "adidas", + "price": 2750 + }, + { + "name": "Футболка", + "brand": "puma", + "price": 1700 + }, +] +# Найдите: +print("Товары на складе представлены брэндами: ") + +# TODO: your code here + +print("На складе больше всего товаров брэнда(ов): ") + +# TODO: your code here + +print("На складе самый дорогой товар брэнда(ов): ") + +# TODO: your code here diff --git a/Module3/practice/dict/01_task_dict.py b/Module3/practice/dict/01_task_dict.py new file mode 100644 index 000000000..b4da2c64a --- /dev/null +++ b/Module3/practice/dict/01_task_dict.py @@ -0,0 +1,10 @@ +# Дан словарь, содержащий данные о товаре из магазина +# "price" - цена товара в валюте "currency" +# "count" - количествотовара в магазине +# Считая,что курс доллара равен dollar_rate +# Вычислите цену всех товаров с названием "name" в долларах + +item = {"name": "Кроссовки", "price": "7540.5", "currency": "rub", "count": "10"} +dollar_rate = 74.12 + +# TODO: your code here diff --git a/Module3/practice/dict/02_task_dict.py b/Module3/practice/dict/02_task_dict.py new file mode 100644 index 000000000..82ba7084b --- /dev/null +++ b/Module3/practice/dict/02_task_dict.py @@ -0,0 +1,48 @@ +# Данные о сотрудниках в программе хранятся в словаре +staff = [ + { + 'name': 'Алексей', + 'surname': 'Петров', + 'salary': 124300 + }, + { + 'name': 'Николай', + 'surname': 'Петров', + 'salary': 120000 + }, + { + 'name': 'Иван', + 'surname': 'Павлов', + 'salary': 34500 + }, + { + 'name': 'Василий', + 'surname': 'Кукушкин', + 'salary': 162500 + }, + { + 'name': 'Василий', + 'surname': 'Павлов', + 'salary': 47800 + }, +] +# Вычислите: +print("Имя и Фамилию сотрудника с самой высокой зарплатой:") + +# TODO: your code here + +print("Имя и Фамилию сотрудника с самой низкой зарплатой:") + +# TODO: your code here + +print("Среднеарифметическую зарплату всех сотрудников") + +# TODO: your code here + +print("Количество однофамильцев в организации") + +# TODO: your code here + +print("*Список всех сотрудников(Имя и Фамилию) в порядке возрастания их зарплаты") + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/01_task_list.py b/Module3/practice/list_and_tuple/01_task_list.py new file mode 100644 index 000000000..b35769aa9 --- /dev/null +++ b/Module3/practice/list_and_tuple/01_task_list.py @@ -0,0 +1,6 @@ +# Дан список. Вывести элементы списка. +# Каждый элемент должен быть выведен с новой строки. + +my_list = [24, "Васлий", "выхухоль", 42, -12.5] + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/02_task_list.py b/Module3/practice/list_and_tuple/02_task_list.py new file mode 100644 index 000000000..12536b536 --- /dev/null +++ b/Module3/practice/list_and_tuple/02_task_list.py @@ -0,0 +1,6 @@ +# Дан список. Вывести элементы списка, пронумеровав их начиная с единицы. +# Каждый элемент должен быть выведен с новой строки. + +fruits = ["яблоко", "банан", "киви", "ананас", "груша"] + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/03_task_list.py b/Module3/practice/list_and_tuple/03_task_list.py new file mode 100644 index 000000000..ea09a43d7 --- /dev/null +++ b/Module3/practice/list_and_tuple/03_task_list.py @@ -0,0 +1,4 @@ +# Дан список из n элементов, заполненный произвольными целыми числами в диапазоне от -10 до 10. +# Вывести на экран сумму всех элементов. + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/04_task_list.py b/Module3/practice/list_and_tuple/04_task_list.py new file mode 100644 index 000000000..a19b80eb7 --- /dev/null +++ b/Module3/practice/list_and_tuple/04_task_list.py @@ -0,0 +1,4 @@ +# Дан список из n элементов, заполненный произвольными целыми числами в диапазоне от -10 до 10. +# Вывести на экран сумму всех положительных элементов. + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/05_task_list.py b/Module3/practice/list_and_tuple/05_task_list.py new file mode 100644 index 000000000..1481e123d --- /dev/null +++ b/Module3/practice/list_and_tuple/05_task_list.py @@ -0,0 +1,17 @@ +# Дан список фруктов. +# Напишите программу, выводящую фрукты в виде нумерованного списка, +# выровненного по правой стороне - слева короткие слова дополняем символами пробела + +# Исходные данные: +fruits = ["яблоко", "банан", "киви", "арбуз"] + +# TODO: your code here + +# Пример вывода: +# 1. яблоко +# 2. банан +# 3. киви +# 4. арбуз + +# Важно! Ваше решение должно работать с любыми корректными "исходными данными" +# Проверьте это, добавив или удалив несколько элементов списка diff --git a/Module3/practice/list_and_tuple/06_task_list.py b/Module3/practice/list_and_tuple/06_task_list.py new file mode 100644 index 000000000..453968ef1 --- /dev/null +++ b/Module3/practice/list_and_tuple/06_task_list.py @@ -0,0 +1,7 @@ +# Даны два целых числа. +# Вывести список всех чисел кратных трем в диапазоне между заданными числами. + +first_number = int(input()) # Первое число +second_number = int(input()) # Второе число + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/07_task_tuple.py b/Module3/practice/list_and_tuple/07_task_tuple.py new file mode 100644 index 000000000..160a69f9c --- /dev/null +++ b/Module3/practice/list_and_tuple/07_task_tuple.py @@ -0,0 +1,5 @@ +# Дан кортеж заполненный целыми числами +# Найдите самый большой элемент кортежа +tup = (2, 4, 6, -4, 12, 0, 5) + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/08_task_tuple.py b/Module3/practice/list_and_tuple/08_task_tuple.py new file mode 100644 index 000000000..666a76e3b --- /dev/null +++ b/Module3/practice/list_and_tuple/08_task_tuple.py @@ -0,0 +1,15 @@ +# Даны примеры создания кортежев. +# Выясните, какие из них являются корретными. +# Все некорректные объявления и создающие не котрежи закомментируйте (#) +tup1 = (2, 4, -6) +tup2 = (2, "Василия", -6) +tup3 = 2, 4, -6 +tup4 = (2) +tup5 = (2,) +tup6 = 2, +tup7 = tuple([2, 4, -6, 12]) +tup8 = tuple(2, 7, 8, -5) +tup9 = tuple() +tup10 = tuple("hello") +tup11 = () +tup12 = 2 and 4 \ No newline at end of file diff --git a/Module3/practice/list_and_tuple/09_task_tuple.py b/Module3/practice/list_and_tuple/09_task_tuple.py new file mode 100644 index 000000000..96724e535 --- /dev/null +++ b/Module3/practice/list_and_tuple/09_task_tuple.py @@ -0,0 +1,4 @@ +# Дано 3 кортежа заполненные произвольными целыми числами. +# Найдите количество элементов, которые встречаются во всех трех кортежах. + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/add01_task_list.py b/Module3/practice/list_and_tuple/add01_task_list.py new file mode 100644 index 000000000..74cd7f327 --- /dev/null +++ b/Module3/practice/list_and_tuple/add01_task_list.py @@ -0,0 +1,5 @@ +# Дан список из элементов x = [-2,-1,0,1,2,3,4,5,6,7] - это координаты х, точек лежащих на прямой +# описываемой уравнением y=2x-4). +# Получить и вывести на экран список координат y для данного уравнения прямой. + +# TODO: your code here diff --git a/Module3/practice/list_and_tuple/add02_task_list.py b/Module3/practice/list_and_tuple/add02_task_list.py new file mode 100644 index 000000000..ab3b579af --- /dev/null +++ b/Module3/practice/list_and_tuple/add02_task_list.py @@ -0,0 +1,7 @@ +# Пользователь вводит на экран дату в формате dd.mm.yyyy, например: 02.11.2013. +# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года. + +# Подсказка: создайте списки с названием дней и названиями месяцев +# Примечание: для экономии времени, можно ограничить номер дня десятью. +# Примечание: склонениями названий можно принебречь + diff --git a/Module3/practice/string/04a_task_string.py b/Module3/practice/string/add01_task_string.py similarity index 100% rename from Module3/practice/string/04a_task_string.py rename to Module3/practice/string/add01_task_string.py From 98a800f31abe9fcef88b917af4c2fbe13ed87f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=AE=D1=80?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Sun, 6 Dec 2020 13:55:53 +0300 Subject: [PATCH 03/38] add tasks for Module-4 --- Module4/practice/funcs/01_task_func.py | 13 +++++++++++++ Module4/practice/funcs/02_task_func.py | 14 ++++++++++++++ Module4/practice/funcs/03_task_func.py | 12 ++++++++++++ Module4/practice/funcs/04_task_func.py | 6 ++++++ 4 files changed, 45 insertions(+) create mode 100644 Module4/practice/funcs/01_task_func.py create mode 100644 Module4/practice/funcs/02_task_func.py create mode 100644 Module4/practice/funcs/03_task_func.py create mode 100644 Module4/practice/funcs/04_task_func.py diff --git a/Module4/practice/funcs/01_task_func.py b/Module4/practice/funcs/01_task_func.py new file mode 100644 index 000000000..bead1ea43 --- /dev/null +++ b/Module4/practice/funcs/01_task_func.py @@ -0,0 +1,13 @@ +# Напишите функцию, возвращающую наибольшее из двух числе + +def max2(n1, n2): + # TODO: your code here + pass + + +# Тестируем функцию +print(max2(5, 6)) +print(max2(-10, -12)) +print(max2(2.5, 2.6)) +print(max2(-2.5, 0)) +print(max2(0, -2.5)) diff --git a/Module4/practice/funcs/02_task_func.py b/Module4/practice/funcs/02_task_func.py new file mode 100644 index 000000000..55774e9a2 --- /dev/null +++ b/Module4/practice/funcs/02_task_func.py @@ -0,0 +1,14 @@ +# Напишите функцию, определяющую является ли число палиндромом. +# Палиндром - число читающееся одинаково слева направо и справа налево. +# Пример палиндрома: 34543 + +def palindrome(number): + pass + + +# Тестируем функцию +print(palindrome(3454)) +print(palindrome(3443)) +print(palindrome(1234541)) +print(palindrome(1234321)) +print(palindrome(77777)) diff --git a/Module4/practice/funcs/03_task_func.py b/Module4/practice/funcs/03_task_func.py new file mode 100644 index 000000000..b9f7e330d --- /dev/null +++ b/Module4/practice/funcs/03_task_func.py @@ -0,0 +1,12 @@ +# Даны координаты двух точек на плоскости. +# Напишите функцию нахождения расстояния между двумя точками. + +def distance(x1, y1, x2, y2): + # TODO: your code here + pass + + +# Тестируем функцию +print(distance(2, 4, 2, 9)) +print(distance(12, 8, 12, -9)) +print(distance(23, 0, 15, 32)) diff --git a/Module4/practice/funcs/04_task_func.py b/Module4/practice/funcs/04_task_func.py new file mode 100644 index 000000000..77900cf7f --- /dev/null +++ b/Module4/practice/funcs/04_task_func.py @@ -0,0 +1,6 @@ +# Даны координаты трех точек (xa; ya) (xb; yb) (xc; yc),точно известно, что если соединить эти точки отрезками, +# то получится треугольник(проверять, можно ли построить треугольник по заданным координатам, не нужно). +# Найдите периметр и площадь этого треугольника. +# Подсказка: для нахождения площади используйте Теорему Герона + +# TODO: your code here From 639a3aff066f75c436eaddc4ceda7c10658d9f3e Mon Sep 17 00:00:00 2001 From: boo-learn Date: Sun, 13 Dec 2020 02:05:50 +0300 Subject: [PATCH 04/38] add task and hw for module-4 --- Module4/home_work/01_hw_func.py | 13 +++++++++++++ Module4/home_work/02_hw_func.py | 13 +++++++++++++ Module4/home_work/03_hw_func.py | 2 ++ Module4/home_work/04_hw_func.py | 13 +++++++++++++ Module4/practice/funcs/01_task_func.py | 2 +- Module4/practice/funcs/02_task_func.py | 1 + Module4/practice/funcs/04_task_func.py | 16 +++++++++++----- Module4/practice/funcs/05_task_func.py | 9 +++++++++ Module4/practice/funcs/06_task_func.py | 8 ++++++++ Module4/practice/funcs/07_task_func.py | 4 ++++ Module4/practice/funcs/08_task_func.py | 1 + 11 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 Module4/home_work/01_hw_func.py create mode 100644 Module4/home_work/02_hw_func.py create mode 100644 Module4/home_work/03_hw_func.py create mode 100644 Module4/home_work/04_hw_func.py create mode 100644 Module4/practice/funcs/05_task_func.py create mode 100644 Module4/practice/funcs/06_task_func.py create mode 100644 Module4/practice/funcs/07_task_func.py create mode 100644 Module4/practice/funcs/08_task_func.py diff --git a/Module4/home_work/01_hw_func.py b/Module4/home_work/01_hw_func.py new file mode 100644 index 000000000..542654e97 --- /dev/null +++ b/Module4/home_work/01_hw_func.py @@ -0,0 +1,13 @@ +# Дан шестизначный номер билета. Определить, является ли билет счастливым. +# Решение реализовать в виде функции. +# Билет считается счастливым, если сумма его первых и последних цифр равны. + +def lucky_ticket(ticket_number): + # TODO: your code here + pass + + +# Тестируем функцию +print(lucky_ticket(123006)) +print(lucky_ticket(12321)) +print(lucky_ticket(436751)) \ No newline at end of file diff --git a/Module4/home_work/02_hw_func.py b/Module4/home_work/02_hw_func.py new file mode 100644 index 000000000..19ce61f2d --- /dev/null +++ b/Module4/home_work/02_hw_func.py @@ -0,0 +1,13 @@ +# Даны координаты трех точек (xa; ya) (xb; yb) (xc; yc), +# точки соединены отрезками AB, BC и AC. Найдите отрезок с минимальной длинной. +# Если отрезков с минимальной длиной несколько - вывести любой + +# При решении задачи необходимо использовать функцию расстояния между двумя точками. + +def distance(x1, y1, x2, y2): + # TODO: тело, которое вы реализовали на практической работе + pass + + +# TODO: your code here +print("Самый короткий отрезок:", ...) # Выводим название отрезка, например “АС”. diff --git a/Module4/home_work/03_hw_func.py b/Module4/home_work/03_hw_func.py new file mode 100644 index 000000000..76bd94417 --- /dev/null +++ b/Module4/home_work/03_hw_func.py @@ -0,0 +1,2 @@ +# Даны координаты центров двух окружностей (x1; y1) (x2; y2) и и их радиусы R1 и R2. +# Находится ли одна окружность целиком внутри другой diff --git a/Module4/home_work/04_hw_func.py b/Module4/home_work/04_hw_func.py new file mode 100644 index 000000000..befedd82a --- /dev/null +++ b/Module4/home_work/04_hw_func.py @@ -0,0 +1,13 @@ +# Написать программу, выполняющую операции (сложение и вычитание) с простыми дробями. +# Дроби вводятся и выводятся в формате: n x/y +# ,где n - целая часть, x - числитель, у - знаменатель. +# Дроби могут быть отрицательные и не иметь целой части, или иметь только целую часть. + +# Примеры: +# Ввод: 5/6 + 4/7 (всё выражение вводится целиком в виде строки) +# Вывод: 1 17/42 (результат обязательно упростить и выделить целую часть) +# Ввод: -2/3 - -2 +# Вывод: 1 1/3 + + + diff --git a/Module4/practice/funcs/01_task_func.py b/Module4/practice/funcs/01_task_func.py index bead1ea43..616ebf121 100644 --- a/Module4/practice/funcs/01_task_func.py +++ b/Module4/practice/funcs/01_task_func.py @@ -1,4 +1,4 @@ -# Напишите функцию, возвращающую наибольшее из двух числе +# Напишите функцию, возвращающую наибольшее из двух чисел def max2(n1, n2): # TODO: your code here diff --git a/Module4/practice/funcs/02_task_func.py b/Module4/practice/funcs/02_task_func.py index 55774e9a2..c0c01e3bb 100644 --- a/Module4/practice/funcs/02_task_func.py +++ b/Module4/practice/funcs/02_task_func.py @@ -1,6 +1,7 @@ # Напишите функцию, определяющую является ли число палиндромом. # Палиндром - число читающееся одинаково слева направо и справа налево. # Пример палиндрома: 34543 +# * попробуйте решить данную задачу, не преобразуя число к строке def palindrome(number): pass diff --git a/Module4/practice/funcs/04_task_func.py b/Module4/practice/funcs/04_task_func.py index 77900cf7f..460482f35 100644 --- a/Module4/practice/funcs/04_task_func.py +++ b/Module4/practice/funcs/04_task_func.py @@ -1,6 +1,12 @@ -# Даны координаты трех точек (xa; ya) (xb; yb) (xc; yc),точно известно, что если соединить эти точки отрезками, -# то получится треугольник(проверять, можно ли построить треугольник по заданным координатам, не нужно). -# Найдите периметр и площадь этого треугольника. -# Подсказка: для нахождения площади используйте Теорему Герона +# Даны координаты трех точек p1(x1; y1) p2(x2; y2) p3(x3; y3). +# Напишите функцию, проверябщую можно ли построить треугольник, соединив данные точки отрезками -# TODO: your code here +def can_triangle(p1, p2, p3): + # TODO: your code here + pass + + +# Пример вызова функции +can_triangle((10, 12), (14, 18), (12, 12)) + +# Не забудьте протестировать вашу функцию diff --git a/Module4/practice/funcs/05_task_func.py b/Module4/practice/funcs/05_task_func.py new file mode 100644 index 000000000..edceb6c9a --- /dev/null +++ b/Module4/practice/funcs/05_task_func.py @@ -0,0 +1,9 @@ +# Даны координаты трех точек (xa; ya) (xb; yb) (xc; yc), если соединить эти точки отрезками +# и получится треугольник, то нужно найти его периметр и площадь. +# Если по заданным точкам треугольник построить нельзя, выведите соответствующее сообщение. +# Подсказка: для нахождения площади используйте Теорему Герона + +# TODO: your code here + + +# Не забудьте протестировать вашу функцию diff --git a/Module4/practice/funcs/06_task_func.py b/Module4/practice/funcs/06_task_func.py new file mode 100644 index 000000000..e301729e6 --- /dev/null +++ b/Module4/practice/funcs/06_task_func.py @@ -0,0 +1,8 @@ +# Напишите функцию, которая проверит, что точка (x, y) +# находится строго внутри окружности с центром в точке (xc, yc) и радиусом r: + +def point_in_circle(x, y, xc, yc, r): + # TODO: your code here + pass + +# Не забудьте протестировать вашу функцию diff --git a/Module4/practice/funcs/07_task_func.py b/Module4/practice/funcs/07_task_func.py new file mode 100644 index 000000000..e77793d3b --- /dev/null +++ b/Module4/practice/funcs/07_task_func.py @@ -0,0 +1,4 @@ +# Напишите функцию принимающую время в секундах и возвращающую строку формата: “hh:mm:ss”, +# где hh - часы, mm- минуты, ss - секунды. +# Пример: +# 29143 секунд → 08:05:43 diff --git a/Module4/practice/funcs/08_task_func.py b/Module4/practice/funcs/08_task_func.py new file mode 100644 index 000000000..a56682675 --- /dev/null +++ b/Module4/practice/funcs/08_task_func.py @@ -0,0 +1 @@ +# Напишите функцию находящую n-ое число Фибоначчи. From e4f98976885a61763c8d54c9a071910b285e0073 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Sun, 13 Dec 2020 02:29:59 +0300 Subject: [PATCH 05/38] add tasks_part2 for module-4 --- Module4/practice/{funcs => funcs_part1}/01_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/02_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/03_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/04_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/05_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/06_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/07_task_func.py | 0 Module4/practice/{funcs => funcs_part1}/08_task_func.py | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename Module4/practice/{funcs => funcs_part1}/01_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/02_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/03_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/04_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/05_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/06_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/07_task_func.py (100%) rename Module4/practice/{funcs => funcs_part1}/08_task_func.py (100%) diff --git a/Module4/practice/funcs/01_task_func.py b/Module4/practice/funcs_part1/01_task_func.py similarity index 100% rename from Module4/practice/funcs/01_task_func.py rename to Module4/practice/funcs_part1/01_task_func.py diff --git a/Module4/practice/funcs/02_task_func.py b/Module4/practice/funcs_part1/02_task_func.py similarity index 100% rename from Module4/practice/funcs/02_task_func.py rename to Module4/practice/funcs_part1/02_task_func.py diff --git a/Module4/practice/funcs/03_task_func.py b/Module4/practice/funcs_part1/03_task_func.py similarity index 100% rename from Module4/practice/funcs/03_task_func.py rename to Module4/practice/funcs_part1/03_task_func.py diff --git a/Module4/practice/funcs/04_task_func.py b/Module4/practice/funcs_part1/04_task_func.py similarity index 100% rename from Module4/practice/funcs/04_task_func.py rename to Module4/practice/funcs_part1/04_task_func.py diff --git a/Module4/practice/funcs/05_task_func.py b/Module4/practice/funcs_part1/05_task_func.py similarity index 100% rename from Module4/practice/funcs/05_task_func.py rename to Module4/practice/funcs_part1/05_task_func.py diff --git a/Module4/practice/funcs/06_task_func.py b/Module4/practice/funcs_part1/06_task_func.py similarity index 100% rename from Module4/practice/funcs/06_task_func.py rename to Module4/practice/funcs_part1/06_task_func.py diff --git a/Module4/practice/funcs/07_task_func.py b/Module4/practice/funcs_part1/07_task_func.py similarity index 100% rename from Module4/practice/funcs/07_task_func.py rename to Module4/practice/funcs_part1/07_task_func.py diff --git a/Module4/practice/funcs/08_task_func.py b/Module4/practice/funcs_part1/08_task_func.py similarity index 100% rename from Module4/practice/funcs/08_task_func.py rename to Module4/practice/funcs_part1/08_task_func.py From 3a84875ed9419eb1ebbbf430e27de345c541f1aa Mon Sep 17 00:00:00 2001 From: boo-learn Date: Sun, 13 Dec 2020 02:34:05 +0300 Subject: [PATCH 06/38] add task and hw for module-4 --- Module4/home_work/03_hw_func.py | 2 ++ Module4/home_work/04_hw_func.py | 1 + Module4/practice/funcs_part2/10_task_func.py | 11 ++++++++++ Module4/practice/funcs_part2/11_task_func.py | 23 ++++++++++++++++++++ Module4/practice/funcs_part2/12_task_func.py | 1 + README.md | 2 +- 6 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Module4/practice/funcs_part2/10_task_func.py create mode 100644 Module4/practice/funcs_part2/11_task_func.py create mode 100644 Module4/practice/funcs_part2/12_task_func.py diff --git a/Module4/home_work/03_hw_func.py b/Module4/home_work/03_hw_func.py index 76bd94417..686a92fef 100644 --- a/Module4/home_work/03_hw_func.py +++ b/Module4/home_work/03_hw_func.py @@ -1,2 +1,4 @@ # Даны координаты центров двух окружностей (x1; y1) (x2; y2) и и их радиусы R1 и R2. # Находится ли одна окружность целиком внутри другой + +# TODO: your code here diff --git a/Module4/home_work/04_hw_func.py b/Module4/home_work/04_hw_func.py index befedd82a..0109a3ede 100644 --- a/Module4/home_work/04_hw_func.py +++ b/Module4/home_work/04_hw_func.py @@ -9,5 +9,6 @@ # Ввод: -2/3 - -2 # Вывод: 1 1/3 +# TODO: your code here diff --git a/Module4/practice/funcs_part2/10_task_func.py b/Module4/practice/funcs_part2/10_task_func.py new file mode 100644 index 000000000..79b9f0dc6 --- /dev/null +++ b/Module4/practice/funcs_part2/10_task_func.py @@ -0,0 +1,11 @@ +# Напишите функцию, находящую среднее арифметическое всех аргументов +# Функция должна вызываться с любым количеством аргументов + +def average(*args): + # TODO: your code here + pass + + +print(average(3, 4, 8)) +print(average(1, 4, 5, -3, 8, 4)) +print(average(-10, 12, 6.3, -5.5, 7, 0.2)) diff --git a/Module4/practice/funcs_part2/11_task_func.py b/Module4/practice/funcs_part2/11_task_func.py new file mode 100644 index 000000000..0365dec54 --- /dev/null +++ b/Module4/practice/funcs_part2/11_task_func.py @@ -0,0 +1,23 @@ +# Используя функцию average() из предыдущей задачи, найдите среднее арифметическое всех элементов списка и кортежа + +def average(*args): + # TODO: тело из предыдущей задачи + pass + + +def gen_list(size, at=-10, to=10): + import random # импорт в функции возможен, но не рекомендуется PEP-8 + """ + :param size: кол-во элементов списка + :param at: минимально возможное значение элементов + :param to: максимально возможное значение элементов + :return: списко из size произвольных элементов вдиапазоне at..to + """ + result_list = [] + for _ in range(size): + result_list.append(random.randint(at, to)) + return result_list + + +my_list = gen_list(10) +my_tuple = 5, 7, -4, 10, 8 diff --git a/Module4/practice/funcs_part2/12_task_func.py b/Module4/practice/funcs_part2/12_task_func.py new file mode 100644 index 000000000..121dd8838 --- /dev/null +++ b/Module4/practice/funcs_part2/12_task_func.py @@ -0,0 +1 @@ +# in developing ... diff --git a/README.md b/README.md index c4d63a92e..5bb0aae4f 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ ### Модуль 4: Функции 1. Создание функций 1. Аргументы по умолчанию -1. Переменное количество переменных +1. Переменное количество аргументов 1. lambda-функции 1. Встроенные функции map, zip, filter From 2b806fbc92e35fb392ec8036418228a03f3e26cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Tue, 15 Dec 2020 11:26:33 +0300 Subject: [PATCH 07/38] Update 01_task_string.py --- Module3/practice/string/01_task_string.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Module3/practice/string/01_task_string.py b/Module3/practice/string/01_task_string.py index 01c4b5f5d..a5750c5bb 100644 --- a/Module3/practice/string/01_task_string.py +++ b/Module3/practice/string/01_task_string.py @@ -6,6 +6,7 @@ name = input("Имя: ") surname = input("Фамилия: ") -# TODO: your code here +name = name.capitalize() +surname = surname.capitalize() -print(name, surname) \ No newline at end of file +print(name, surname) From 8e1956f357d904f073627964b6130920ee9b73c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=AE=D1=80?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Thu, 17 Dec 2020 09:05:10 +0300 Subject: [PATCH 08/38] add task for module-5 --- Module5/practice/modules/10_task_module.py | 8 ++++++++ Module5/practice/repeat/01_task_repeat.py | 7 +++++++ Module5/practice/repeat/02_task_repeat.py | 7 +++++++ Module5/practice/repeat/03_task_repeat.py | 5 +++++ Module5/practice/repeat/04_task_repeat.py | 10 ++++++++++ Module5/practice/repeat/05_task_repeat.py | 3 +++ Module5/practice/repeat/06_task_repeat.py | 10 ++++++++++ Module5/practice/repeat/07_task_repeat.py | 7 +++++++ Module5/practice/repeat/08_task_repeat.py | 5 +++++ Module5/practice/repeat/09_task_repeat.py | 8 ++++++++ 10 files changed, 70 insertions(+) create mode 100644 Module5/practice/modules/10_task_module.py create mode 100644 Module5/practice/repeat/01_task_repeat.py create mode 100644 Module5/practice/repeat/02_task_repeat.py create mode 100644 Module5/practice/repeat/03_task_repeat.py create mode 100644 Module5/practice/repeat/04_task_repeat.py create mode 100644 Module5/practice/repeat/05_task_repeat.py create mode 100644 Module5/practice/repeat/06_task_repeat.py create mode 100644 Module5/practice/repeat/07_task_repeat.py create mode 100644 Module5/practice/repeat/08_task_repeat.py create mode 100644 Module5/practice/repeat/09_task_repeat.py diff --git a/Module5/practice/modules/10_task_module.py b/Module5/practice/modules/10_task_module.py new file mode 100644 index 000000000..2555ada35 --- /dev/null +++ b/Module5/practice/modules/10_task_module.py @@ -0,0 +1,8 @@ +# При решении различных задач данной практики вы написали некоторое количество функций. В +# озможно, в дальнейшем вы захотите использовать эти функции повторно и в других своих программах. +# Организуем свою библиотеку функций. +# В корне вашего проект создайте папку Library(это будет пакет) +# В папке Library создайте файл my_lib.py(это и будет ваш библиотечный файл) +# Все функции разместите в файле my_lib.py +# Решения всех задач, использующих ваши функции, разместите в отдельном(отдельных - на ваше усмотрение) файле(файлах), +# а используемые функции импортируйте из my_lib.py diff --git a/Module5/practice/repeat/01_task_repeat.py b/Module5/practice/repeat/01_task_repeat.py new file mode 100644 index 000000000..3c9087478 --- /dev/null +++ b/Module5/practice/repeat/01_task_repeat.py @@ -0,0 +1,7 @@ +# Напишите функцию, создающую(возвращающую) список заданной длины заполненный +# произвольными целыми числами в заданном диапазоне. +# , где size - размер генерируемого списка c элементами в диапазоне от of до to. + +def gen_list(size, of, to): + pass + diff --git a/Module5/practice/repeat/02_task_repeat.py b/Module5/practice/repeat/02_task_repeat.py new file mode 100644 index 000000000..86bf6fda9 --- /dev/null +++ b/Module5/practice/repeat/02_task_repeat.py @@ -0,0 +1,7 @@ +# Является ли палиндромом? +# Напишите функцию, проверяющую является ли число палиндромом. +# палиндром - число одинаково читающееся слева направо, так и справа налево. +# Пример палиндрома: 12321 + +def palindrome(number): + pass \ No newline at end of file diff --git a/Module5/practice/repeat/03_task_repeat.py b/Module5/practice/repeat/03_task_repeat.py new file mode 100644 index 000000000..62166cb59 --- /dev/null +++ b/Module5/practice/repeat/03_task_repeat.py @@ -0,0 +1,5 @@ +# Найдите количество чисел являющихся палиндромами в диапазоне от a до b включительно +# Известно, что a и b целые положительные числа. + +a = ... +b = ... \ No newline at end of file diff --git a/Module5/practice/repeat/04_task_repeat.py b/Module5/practice/repeat/04_task_repeat.py new file mode 100644 index 000000000..d3bb8dfde --- /dev/null +++ b/Module5/practice/repeat/04_task_repeat.py @@ -0,0 +1,10 @@ +# Напишите функцию принимающую общее количество объектов(например, товаров) +# которые нужно отобразить и количество объектов, которые нужно отобразить на каждой странице. +# Функция должна вычислять количество страниц для отображения всех объектов. + +# Под пагинацией понимают показ ограниченной части информации на одной +# веб-странице и вывода списка остальных страниц. + +def pagination(num_items, items_on_page): + pass + diff --git a/Module5/practice/repeat/05_task_repeat.py b/Module5/practice/repeat/05_task_repeat.py new file mode 100644 index 000000000..bdb52b648 --- /dev/null +++ b/Module5/practice/repeat/05_task_repeat.py @@ -0,0 +1,3 @@ +# Дано общее количество объектов для отображения на веб-сайте и количество объектов на каждой странице. +# Вычислите, сколько объектов будет отображаться на последней странице сайта. + diff --git a/Module5/practice/repeat/06_task_repeat.py b/Module5/practice/repeat/06_task_repeat.py new file mode 100644 index 000000000..fb2a6634c --- /dev/null +++ b/Module5/practice/repeat/06_task_repeat.py @@ -0,0 +1,10 @@ +# Написать функцию, определяющую кол-во дней в году. +# В обычном году 365 дней, а в високосном - 366. Каждый четвертый год является високосным, +# кроме столетий, которые не делятся нацело на 400. +# Если год не делится нацело на 4, значит сразу можно сделать вывод, что он не является високосным. +# Если все же делится, то надо исключить столетия: они все нацело делятся на 100, но те, +# которые не делятся нацело на 400, високосными не являются. + +def days_in_year(num_year): + pass + diff --git a/Module5/practice/repeat/07_task_repeat.py b/Module5/practice/repeat/07_task_repeat.py new file mode 100644 index 000000000..721ce3707 --- /dev/null +++ b/Module5/practice/repeat/07_task_repeat.py @@ -0,0 +1,7 @@ +# Иван кладет в банк x рублей под a процентов годовых на n лет. Напишите функцию, которая возвращает число - +# сколько денег получит Иван в результате. + +def deposit(x, a, n): + pass +# функция принимает три числа и возвращает одно - итоговая сумма на счету Ивана. +# Проценты на вклад начисляются один раз в год. diff --git a/Module5/practice/repeat/08_task_repeat.py b/Module5/practice/repeat/08_task_repeat.py new file mode 100644 index 000000000..946e016a7 --- /dev/null +++ b/Module5/practice/repeat/08_task_repeat.py @@ -0,0 +1,5 @@ +# Вы решили сделать вклад в банк некоторой суммы на n лет. +# Банк вам предложил x% годовых с расчетом по простым процентам или +# y% годовых по сложным % с периодом капитализации 1 месяц. +# При заданных процентных ставках, определите какой из вкладов вам выгоднее на 5 лет. +# Примечание: формулы расчета простых и сложных процентов ищите на гуглодиске в папке с материалами. diff --git a/Module5/practice/repeat/09_task_repeat.py b/Module5/practice/repeat/09_task_repeat.py new file mode 100644 index 000000000..a870f2dbd --- /dev/null +++ b/Module5/practice/repeat/09_task_repeat.py @@ -0,0 +1,8 @@ +# Дан список с названиями фруктов, орехов и ягод. +# Определите, названий начинающихся на какую(какие) букву(буквы) больше всего. +# Известно, что названия могут начинаться как с заглавной, так и с маленькой буквы. +# Примеры +# Дано: [“ананас”, “кокос”, “Арбуз”, “киви”, “Клюква”, “банан”, “хурма”] +# Результат: фруктов на букву “к” больше. +# Дано: [“ананас”, “яблоко”, “Арбуз”, “киви”, “Клюква”, “банан”, “хурма”] +# Результат: фруктов на букву “к”и “а” больше. From dd3f0f6da6d349c67bd58885459ea0412254ce35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=AE=D1=80?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Thu, 17 Dec 2020 09:09:55 +0300 Subject: [PATCH 09/38] add task for module-6 --- Module6/practice/files/01_task_file.py | 6 ++++++ Module6/practice/files/02_task_file.py | 8 ++++++++ Module6/practice/files/03_task_file.py | 11 +++++++++++ Module6/practice/files/04_task_file.py | 5 +++++ 4 files changed, 30 insertions(+) create mode 100644 Module6/practice/files/01_task_file.py create mode 100644 Module6/practice/files/02_task_file.py create mode 100644 Module6/practice/files/03_task_file.py create mode 100644 Module6/practice/files/04_task_file.py diff --git a/Module6/practice/files/01_task_file.py b/Module6/practice/files/01_task_file.py new file mode 100644 index 000000000..33971019f --- /dev/null +++ b/Module6/practice/files/01_task_file.py @@ -0,0 +1,6 @@ +# Кассовый аппарат пишет цены всех проданных товаров в текстовый файл, наименование проданных товаров не имеет значение. +# По окончанию рабочего дня имеем файл data/sold.txt. +# Узнайте: +# 1. На какую сумму было продано товаров +# 2. Цену самого дорогого товара +# 3. Цену самого дешевого товара diff --git a/Module6/practice/files/02_task_file.py b/Module6/practice/files/02_task_file.py new file mode 100644 index 000000000..97b4859e4 --- /dev/null +++ b/Module6/practice/files/02_task_file.py @@ -0,0 +1,8 @@ +# Кассовый аппарат был доработан, теперь он пишет не только цены, но и тип проданных товаров. +# Файл data/items_sold.txt - продажи всех товаров за день. +# Каждая строка файла - покупка одного покупателя. +# Узнайте: +# 1. Какова общая выручка магазина +# 2. Какова выручка магазина по каждому типу товаров +# 3. Какой тип товара был продан на самую большую сумму +# 4. Сколько различных типов товаров было продано за день diff --git a/Module6/practice/files/03_task_file.py b/Module6/practice/files/03_task_file.py new file mode 100644 index 000000000..5b7116edf --- /dev/null +++ b/Module6/practice/files/03_task_file.py @@ -0,0 +1,11 @@ +# Дан файл ("data/fruits.txt") со списком фруктов. +# Записать в новые файлы все фрукты, начинающиеся с определенной буквы. +# Т.е. в одном файле будут все фрукты на букву “А”, во втором на “Б” и т.д. +# Файлы назвать соответственно. +# Пример имен файлов: fruits_А.txt, fruits_Б.txt, fruits_В.txt …. +# Важно! Обратите внимание, что нет фруктов, начинающихся с некоторых букв. +# Напишите универсальный код, который будет работать с любым списком фруктов и +# распределять по файлам в зависимости от первых букв, имеющихся в списке фруктов. +# Подсказка: +# Чтобы получить список больших букв русского алфавита: +# print(list(map(chr, range(ord('А'), ord('Я')+1)))) diff --git a/Module6/practice/files/04_task_file.py b/Module6/practice/files/04_task_file.py new file mode 100644 index 000000000..3d2748719 --- /dev/null +++ b/Module6/practice/files/04_task_file.py @@ -0,0 +1,5 @@ +# Дана ведомость расчета заработной платы (файл "data/workers"). +# Рассчитайте зарплату всех работников, зная что они получат полный оклад, +# если отработают норму часов. Если же они отработали меньше нормы, то их ЗП уменьшается пропорционально, +# а за каждый час переработки они получают удвоенную ЗП, пропорциональную норме. +# Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" From 54b29ac8c891c90b4115fd105fb76d9182fb4257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=AE=D1=80?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Thu, 17 Dec 2020 09:15:08 +0300 Subject: [PATCH 10/38] add files for task module-6 --- Module6/practice/files/data/fruits.txt | 563 +++++++++++++++++++++ Module6/practice/files/data/hours_of.txt | 7 + Module6/practice/files/data/items_sold.txt | 6 + Module6/practice/files/data/sold.txt | 2 + Module6/practice/files/data/workers.txt | 7 + 5 files changed, 585 insertions(+) create mode 100644 Module6/practice/files/data/fruits.txt create mode 100644 Module6/practice/files/data/hours_of.txt create mode 100644 Module6/practice/files/data/items_sold.txt create mode 100644 Module6/practice/files/data/sold.txt create mode 100644 Module6/practice/files/data/workers.txt diff --git a/Module6/practice/files/data/fruits.txt b/Module6/practice/files/data/fruits.txt new file mode 100644 index 000000000..e55e35623 --- /dev/null +++ b/Module6/practice/files/data/fruits.txt @@ -0,0 +1,563 @@ +Абиу + +Абрикос + +Авокадо + +Айва + +Аки + +Алиберция + +Алыча + +Амбарелла + +Американский абрикос + +Американский орех + +Ананас + +Аннона горная + +Аннона колючая + +Аннона сетчатая + +Аннона черимола + +Аннона чешуйчатая + +Антильский крыжовник + +Апельсин + +Арабика + +Араза + +Арахис + +Арбуз обыкновенный + +Астрокариум колючий + +Атимойя + +Африканский колючий огурец + +Африканский тамаринд + +Бакау + +Баклажан + +Балия + +Бананы + +Баобаб + +Барбадин (Большая гранадилла) + +Барбадосская вишня + +Бархатное яблоко + +Баэль + +Белая сапота + +Бергамот + +Билимби + +Бирсонима + +Блигия вкусная + +Большой змеиный фрукт + +Бразильский орех + +Бычье сердце + +Вампи + +Вангерия + +Ваниль + +Виноград + +Воаванга + +Водяное(восковое) яблоко + +Гандария + +Генипа + +Гибискус съедобный + +Гнетум гнемон + +Голубиная слива + +Голубой квандонг + +Горлянка + +Горький огурец + +Гранадилла (Маракуйа) + +Гранадилла большая (Барбадин) + +Гранадилла сладкая + +Гранат + +Грейпфрут + +Грумичама + +Груша + +Гуайява земляничная + +Гуайява коста-риканская + +Гуайява красная + +Гуайява обыкновенная + +Гуарана + +Давидсония + +Дамские пальчики + +Деревянное яблоко + +Десертный квандонг + +Джекфрут + +Древесная калебаса + +Дуку + +Дуриан + +Дуриан цибетиновый + +Дынная груша + +Дынное дерево + +Дыня обыкновенная + +Звездчатое яблоко + +Земляничная груша + +Земляничный томат + +Земляной орех + +Зизифус мавританский + +Золотая слива + +Золотистый апельсин + +Индийские бобы + +Индийский инжир + +Индийский миндаль + +Индийское розовое яблоко + +Инжир + +Кабачки + +Каинито + +Какао + +Кактус инжировый + +Каламондин + +Калебаса + +Канариум яйцевидный + +Капский крыжовник + +Карамбола + +Кас + +Квини + +Квислендский орех + +Кепель + +Кетамбилла + +Кивано + +Киви + +Китайская калебаса + +Клементин + +Кокколоба ягодоносная + +Кокос + +Корилла + +Кофейные деревья + +Кранжи + +Кумкват овальный + +Купуасу + +Курбарил + +Кустовой горошек + +Лайм настоящий + +Лангсат + +Лансиум домашний + +Леуцена светлоголовчатая + +Либерика + +Ликания + +Лимон грубокожистый + +Лимон обыкновенный + +Лимон Мейера + +Лимонная осина + +Личи + +Лобия + +Ложный мангустан + +Лукума + +Луло + +Люффа остроребристая + +Маболо + +Мадагаскарская слива + +Макадамия цельнолистная + +Малабарская тыква + +Малабарский апельсин + +Малайское яблоко + +Малуко + +Мальпигия гранатолистная + +Маммея американская + +Мамончилло (Лайм испанский) + +Манго благоухающее + +Манго великолепное + +Манго индийское + +Манго резко пахнущее + +Мангостан + +Мангустан + +Мандарин + +Манилкара + +Маракуйя + +Мармеладный плод + +Марула + +Мауриция извилистая + +Маш + +Мексиканская земляная вишня + +Мексиканский огурец + +Мелинжо + +Моква + +Момбин желтый + +Момбин красный + +Момордика + +Моринда + +Мунду + +Мускатный орех + +Мушмула японская + +Наранхилла + +Ням-ням + +Обезьяний хлеб + +Огурец + +Огуречное дерево + +Орех кешью + +Пальма катеху + +Пальма кокосовая + +Пальма масличная африканская + +Пальма персиковая + +Пальчиковый лайм + +Папайя + +Папайя горная + +Папеда + +Паприка + +Пара-гуайява + +Паркия красивая + +Пассифлора съедобная + +Пекуи + +Пепино + +Перец + +Перец кайенский + +Перец стручковый + +Персик + +Перуанская вишня + +Питайя + +Питомба + +Пиши + +Помело + +Померанец + +Помидор + +Помпельмус + +Понцирус (несъедобный плод) + +Приморский виноград + +Путерия + +Пуласан + +Ракум-салакка + +Рамбай + +Рамбутан + +Робуста + +Розовое яблоко + +Роллиния слизистая + +Салакка + +Салакка скученная + +Саламандровое дерево + +Сантол + +Саподилла + +Сатсума + +Сахарное яблоко + +Сахарный горошек + +Свечное дерево + +Свити + +Сизигиум аквеум + +Сизигиум малаккский + +Сизигиум ямбоза + +Сингапурский миндаль + +Слива + +Слива какаду + +Слоновье яблоко + +Сметанное яблоко + +Сонсоя + +Соя + +Спаржевая фасоль + +Страстоцвет + +Суринамская вишня + +Съедобный таитянский орех + +Таитянское яблоко + +Такако + +Тамарилло + +Тамаринд + +Танжерин + +Терминалия катаппа + +Томат настоящий + +Томатное дерево + +Тукума + +Тупа + +Тыква бутылочная + +Тыква восковая + +Тыква мускатная + +Тыква обыкновенная + +Тыква фиголистная + +Тыквенное дерево + +Фейхоа + +Ферония лимонная + +Ферония слоновая + +Физалис земляничный + +Филиппинское розовое яблоко + +Филлантус кислый + +Финик + +Флакурция + +Хлебное дерево + +Хлебные бобы + +Хурма восточная (японская) + +Цейлонский крыжовник + +Циклантера + +Цуккини + +Чайот + +Чампедак + +Черешня + +Черимойя + +Черная гуайява + +Черная сапота + +Черная хурма + +Черный тамаринд + +Чили + +Чилибуха колючая + +Чупа + +Шоколадное дерево + +Яблоко + +Яблоко-кажу + +Яботикаба + +Ямайская вишня diff --git a/Module6/practice/files/data/hours_of.txt b/Module6/practice/files/data/hours_of.txt new file mode 100644 index 000000000..7e3c12c36 --- /dev/null +++ b/Module6/practice/files/data/hours_of.txt @@ -0,0 +1,7 @@ +Имя Фамилия Отработано часов +Петр Алексеев 120 +Матвей Бурин 160 +Василий Сидоров 122 +Альберт Грибов 118 +Василий Иванов 180 +Петр Дурин 80 \ No newline at end of file diff --git a/Module6/practice/files/data/items_sold.txt b/Module6/practice/files/data/items_sold.txt new file mode 100644 index 000000000..06c231227 --- /dev/null +++ b/Module6/practice/files/data/items_sold.txt @@ -0,0 +1,6 @@ +fruits:45.10 bread:25.10 icecream:120.90 juice:80 vegetables:72.40 +bread:42.20 juice:42 meat:280.20 +vegetables:28.10 fruits:142.80 +icecream:40.75 juice:24.50 canned_food:137 +bread:78.40 meat:450.20 +fruits:58.54 \ No newline at end of file diff --git a/Module6/practice/files/data/sold.txt b/Module6/practice/files/data/sold.txt new file mode 100644 index 000000000..5b9274aae --- /dev/null +++ b/Module6/practice/files/data/sold.txt @@ -0,0 +1,2 @@ +23.45 123 17.45 200 221.10 265.0 +78.4 167 24.98 764.14 100 \ No newline at end of file diff --git a/Module6/practice/files/data/workers.txt b/Module6/practice/files/data/workers.txt new file mode 100644 index 000000000..78b2eaf09 --- /dev/null +++ b/Module6/practice/files/data/workers.txt @@ -0,0 +1,7 @@ +Имя Фамилия Зарплата Должность Норма_часов +Петр Алексеев 22000 прораб 140 +Василий Иванов 18000 плотник 150 +Матвей Бурин 42000 директор 150 +Василий Сидоров 17500 плотник 140 +Петр Дурин 20000 разнорабочий 160 +Альберт Грибов 20000 разнорабочий 160 \ No newline at end of file From 61ca711e1328a232228f64e821e0f84a3c4c16e8 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Thu, 17 Dec 2020 21:55:17 +0300 Subject: [PATCH 11/38] add tasks for modules 7,8,9 --- .../practice/exceptions/01_task_except.py | 6 ++++++ .../practice/exceptions/02_task_except.py | 6 ++++++ .../practice/exceptions/03_task_except.py | 7 +++++++ .../practice/exceptions/04_task_except.py | 4 ++++ Module8/practice/decorators/01_task_decor.py | 9 +++++++++ Module8/practice/decorators/02_task_decor.py | 3 +++ Module8/practice/hard/01_task_hard.py | 7 +++++++ Module8/practice/hard/02_task_hard.py | 19 +++++++++++++++++++ Module8/practice/hard/03_task_hard.py | 19 +++++++++++++++++++ Module8/practice/structs/01_task_struct.py | 3 +++ Module8/practice/structs/02_task_struct.py | 7 +++++++ Module8/practice/structs/03_task_struct.py | 6 ++++++ Module8/practice/structs/04_task_struct.py | 4 ++++ Module8/practice/structs/05_task_struct.py | 7 +++++++ Module8/practice/structs/06_task_struct.py | 10 ++++++++++ Module8/practice/structs/07_task_struct.py | 2 ++ Modulr9/practice/tasks.md | 3 +++ 17 files changed, 122 insertions(+) create mode 100644 Module7/examples/practice/exceptions/01_task_except.py create mode 100644 Module7/examples/practice/exceptions/02_task_except.py create mode 100644 Module7/examples/practice/exceptions/03_task_except.py create mode 100644 Module7/examples/practice/exceptions/04_task_except.py create mode 100644 Module8/practice/decorators/01_task_decor.py create mode 100644 Module8/practice/decorators/02_task_decor.py create mode 100644 Module8/practice/hard/01_task_hard.py create mode 100644 Module8/practice/hard/02_task_hard.py create mode 100644 Module8/practice/hard/03_task_hard.py create mode 100644 Module8/practice/structs/01_task_struct.py create mode 100644 Module8/practice/structs/02_task_struct.py create mode 100644 Module8/practice/structs/03_task_struct.py create mode 100644 Module8/practice/structs/04_task_struct.py create mode 100644 Module8/practice/structs/05_task_struct.py create mode 100644 Module8/practice/structs/06_task_struct.py create mode 100644 Module8/practice/structs/07_task_struct.py create mode 100644 Modulr9/practice/tasks.md diff --git a/Module7/examples/practice/exceptions/01_task_except.py b/Module7/examples/practice/exceptions/01_task_except.py new file mode 100644 index 000000000..38878a016 --- /dev/null +++ b/Module7/examples/practice/exceptions/01_task_except.py @@ -0,0 +1,6 @@ +# Дан прямоугольник размером n×m. Напишите программу, вычисляющую, сколько квадратов +# со стороной m от него получится отрезать. + +# На вход программе подается строка формата nxm (x - латинская буква икс). +# Пример входных данных: 12x6 +# Если данные вводятся в неверном формате, сообщить об этом и запросить ввод заново. diff --git a/Module7/examples/practice/exceptions/02_task_except.py b/Module7/examples/practice/exceptions/02_task_except.py new file mode 100644 index 000000000..663f36438 --- /dev/null +++ b/Module7/examples/practice/exceptions/02_task_except.py @@ -0,0 +1,6 @@ +# Даны номер месяца и номер года. Найдите сколько дней в этом месяце. +# При вводе неверного номера месяца или некорректного значения программа должна сообщить об ошибке +# и попросить ввести корректные данные. Также необходимо учесть високосный или не високосный год. +# Алгоритм проверки на високосный год оформите в виде отдельной функции. +# +# Входная строка содержит два целых числа – номер месяца (возможно, неправильный) и номер года. diff --git a/Module7/examples/practice/exceptions/03_task_except.py b/Module7/examples/practice/exceptions/03_task_except.py new file mode 100644 index 000000000..65d95bae5 --- /dev/null +++ b/Module7/examples/practice/exceptions/03_task_except.py @@ -0,0 +1,7 @@ +# Дана строка из пяти целых чисел, разделенных пробелом. +# Пример входных данных: "2 12 -45 7 10" +# Напишите программу, которая находит среди них минимальное положительное число. +# Если таких чисел несколько - вывести любое из них. + +# При решении задачи требуется учесть формат входных данных. +# Если входные данные некорректные, сообщить об этом. diff --git a/Module7/examples/practice/exceptions/04_task_except.py b/Module7/examples/practice/exceptions/04_task_except.py new file mode 100644 index 000000000..de64c3bc6 --- /dev/null +++ b/Module7/examples/practice/exceptions/04_task_except.py @@ -0,0 +1,4 @@ +# Даны два уравнения прямых вида у=kx+b и виде строки. Проверить, пересекаются ли данные прямые? +# Примеры уравнений: "y = 2x + 4" "y = -12x -12" + +# Проверьте входные данные на корректность diff --git a/Module8/practice/decorators/01_task_decor.py b/Module8/practice/decorators/01_task_decor.py new file mode 100644 index 000000000..fcee47749 --- /dev/null +++ b/Module8/practice/decorators/01_task_decor.py @@ -0,0 +1,9 @@ +# Напишите функцию-декоратор, оборачивающую результат другой функции в прямоугольник звездочек. +# Пояснение: если декорируемая функция возвращает “Привет”, то декоратор должен изменить вывод на: +# ******** +# *Привет* +# ******** +# **** +# *23* +# **** +# (кол-во звездочек зависит от длины возвращаемого значения) diff --git a/Module8/practice/decorators/02_task_decor.py b/Module8/practice/decorators/02_task_decor.py new file mode 100644 index 000000000..5832902a1 --- /dev/null +++ b/Module8/practice/decorators/02_task_decor.py @@ -0,0 +1,3 @@ +# Напишите функцию декоратор, которая округляет значение декорируемой функции до двух знаков после запятой. +# Если округление невозможно, например там строка, или не требуется(целое число) то оставляем результат без изменений. +# Примечание: используйте встроенную функцию round() diff --git a/Module8/practice/hard/01_task_hard.py b/Module8/practice/hard/01_task_hard.py new file mode 100644 index 000000000..0656e15a8 --- /dev/null +++ b/Module8/practice/hard/01_task_hard.py @@ -0,0 +1,7 @@ +# "Банкомат" +# В банкомате есть купюры 5000, 2000, 1000 и 500 рублей. +# Напишите функцию, которая будет рассчитывать количество купюр, которыми можно будет выдать +# запрошенную пользователем сумму и возвращать ее в виде словаря, ключами в котором будут номиналы банкнот, +# а значениями кол-во банкнот. Если пользователь запросил некорректную сумму, +# нужно вывести дружественное сообщение об ошибке. +# Результат работы программы - текстовый отчет о номиналах и количестве купюр. diff --git a/Module8/practice/hard/02_task_hard.py b/Module8/practice/hard/02_task_hard.py new file mode 100644 index 000000000..dab5df514 --- /dev/null +++ b/Module8/practice/hard/02_task_hard.py @@ -0,0 +1,19 @@ +# "Перевернутая башня" +# Вавилонцы решили построить удивительную башню — расширяющуюся кверху и содержащую бесконечное число этажей и комнат. +# Она устроена следующим образом — на первом этаже одна комната, +# затем идет два этажа на каждом из которых по две комнаты, +# затем идёт три этажа, на каждом из которых по три комнаты и так далее: +# ... ... ... +# 15 16 17 18 +# 12 13 14 +# 9 10 11 +# 6 7 8 +# 4 5 +# 2 3 +# 1 + +# Эту башню решили оборудовать лифтом --- и вот задача: нужно научится по номеру комнаты определять, +# на каком этаже она находится и какая она по счету слева на этом этаже. + +# Дано целое число - номер комнаты +# Вывести два целых числа — номер этажа и ее порядковый номер слева на этаже. diff --git a/Module8/practice/hard/03_task_hard.py b/Module8/practice/hard/03_task_hard.py new file mode 100644 index 000000000..b769992a1 --- /dev/null +++ b/Module8/practice/hard/03_task_hard.py @@ -0,0 +1,19 @@ +# "Негостеприимные панды" +# В панда парке был очень плохой управляющий. Из-за его ошибок вышло так, что многие клетки с пандами переполнены, +# многие не заполнены, а есть и вовсе пустые. Пришел новый управляющий и захотел решить создавшуюся проблему, +# перераспределив панд по клеткам. + +# Но управляющий столкнулся с двумя проблемами: +# Общество защиты животных запретило выселять панд из клеток, если клетка не переполнена; +# Панды оказались не очень-то дружелюбны к новым соседям и больше одного нового соседа не принимают. +# Зато в пустые клетки можно переселять панд из разных клеток. + +# Напишите программу, которая определяет сколько панд были "лишними" в своих клетках (суммарное переполнение клеток). +# И какое суммарное переполнение получится, после массового переселения панд. + +# Алгоритм переселения нужно разработать самостоятельно с учетом ограничений. + +# Формат входных данных +# n - суммарное количество клеток (4 ≤ n ≤ 100) +# Pn - количество панд в каждой клетке (0 ≤ Pn ≤ 10) +# Sn - количество мест в каждой клетке (1 ≤ Sn ≤10) diff --git a/Module8/practice/structs/01_task_struct.py b/Module8/practice/structs/01_task_struct.py new file mode 100644 index 000000000..950b15aec --- /dev/null +++ b/Module8/practice/structs/01_task_struct.py @@ -0,0 +1,3 @@ +# Бегун проводил ежедневные тренировки и записывал расстояния которые пробел за занятия в метрах: +distances = [600, 755, 321.6, 1234, 231, 456.6, 4561, 1200, 456] +# Переведите все значения в футы (получить и вывести новый список) diff --git a/Module8/practice/structs/02_task_struct.py b/Module8/practice/structs/02_task_struct.py new file mode 100644 index 000000000..4eeeafb34 --- /dev/null +++ b/Module8/practice/structs/02_task_struct.py @@ -0,0 +1,7 @@ +# Дан список, заполненный произвольными целыми числами. +# Примечание: для генерации списка используйте функцию написанную на одном из прошлых занятий. +# Получите новый список, элементами которого будут: +# 1. неповторяющиеся(уникальные) элементы исходного списка: +# например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 2, 4, 5, 6] +# 2. элементы исходного списка, которые не имеют повторений(встречаются только один раз): +# например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6] diff --git a/Module8/practice/structs/03_task_struct.py b/Module8/practice/structs/03_task_struct.py new file mode 100644 index 000000000..928ade23b --- /dev/null +++ b/Module8/practice/structs/03_task_struct.py @@ -0,0 +1,6 @@ +# Дан список, заполненный произвольными целыми числами. +# Примечание: для генерации списка используйте функцию. +# Найдите: +# 1. Количество элементов списка не превышающие 10 +# 2. Сумму всех положительных элементов списка +# 3. Среднее арифметическое всех четных элементов diff --git a/Module8/practice/structs/04_task_struct.py b/Module8/practice/structs/04_task_struct.py new file mode 100644 index 000000000..d1ca75147 --- /dev/null +++ b/Module8/practice/structs/04_task_struct.py @@ -0,0 +1,4 @@ +# Даны два словаря: +dictionary_1 = {'a': 300, 'b': 400} +dictionary_2 = {'c': 500, 'd': 600} +# Объедините их в один diff --git a/Module8/practice/structs/05_task_struct.py b/Module8/practice/structs/05_task_struct.py new file mode 100644 index 000000000..02dcb2e91 --- /dev/null +++ b/Module8/practice/structs/05_task_struct.py @@ -0,0 +1,7 @@ +# Создайте словарь из строки следующим образом: +# в качестве ключей возьмите буквы строки, +# а значениями пусть будут числа, соответствующие количеству вхождений данной буквы в строку. + +# Пример: для строки 'pythonist' +# Получим словарь: {'p': 1, 'y': 1, 't': 2, 'h': 1, 'o': 1, 'n': 1, 's': 1, 'i': 1} +# Примечание: т.к. ключи неупорядочены, порядок следования ключей может быть произвольным diff --git a/Module8/practice/structs/06_task_struct.py b/Module8/practice/structs/06_task_struct.py new file mode 100644 index 000000000..0c99708e9 --- /dev/null +++ b/Module8/practice/structs/06_task_struct.py @@ -0,0 +1,10 @@ +# Вы написали программу для работы с сотрудниками и вам ее необходимо протестировать. +# Для теста нужны большие списки сотрудников (100+). +# Вбивать вручную столько данных займет очень много времени. +# Напишите программу, генерирующую списки сотрудников со следующими параметрами: +# 1. Имя +# 2. Фамилия +# 3. Возраст +# 4. Профессия +# 5. Зарплата +# Примечание: Данные сгенерированных сотрудников могут повторяться diff --git a/Module8/practice/structs/07_task_struct.py b/Module8/practice/structs/07_task_struct.py new file mode 100644 index 000000000..631a3395c --- /dev/null +++ b/Module8/practice/structs/07_task_struct.py @@ -0,0 +1,2 @@ +# Доработайте предыдущую программу так, чтобы каждый сгенерированный сотрудник +# был уникальным(не должны повторяться комбинации Имя + Фамилия). diff --git a/Modulr9/practice/tasks.md b/Modulr9/practice/tasks.md new file mode 100644 index 000000000..60f3e6cac --- /dev/null +++ b/Modulr9/practice/tasks.md @@ -0,0 +1,3 @@ +Задания сюда еще не доехали и + +находятся пока тут: https://docs.google.com/document/d/1j8tY9QMHD_isSABoK0Ldb34aentFtuQHjJBOGTQ9q40/edit?usp=sharing \ No newline at end of file From 79d08438e23e55c3ded6868e5cc5ff1f62f3655e Mon Sep 17 00:00:00 2001 From: boo-learn Date: Thu, 17 Dec 2020 22:00:01 +0300 Subject: [PATCH 12/38] fix add module-7 --- Module7/examples/4_exceptions_tree.py | 99 +++++++++++++++++++ .../practice/exceptions/01_task_except.py | 0 .../practice/exceptions/02_task_except.py | 0 .../practice/exceptions/03_task_except.py | 0 .../practice/exceptions/04_task_except.py | 0 5 files changed, 99 insertions(+) create mode 100644 Module7/examples/4_exceptions_tree.py rename Module7/{examples => }/practice/exceptions/01_task_except.py (100%) rename Module7/{examples => }/practice/exceptions/02_task_except.py (100%) rename Module7/{examples => }/practice/exceptions/03_task_except.py (100%) rename Module7/{examples => }/practice/exceptions/04_task_except.py (100%) diff --git a/Module7/examples/4_exceptions_tree.py b/Module7/examples/4_exceptions_tree.py new file mode 100644 index 000000000..c36bee126 --- /dev/null +++ b/Module7/examples/4_exceptions_tree.py @@ -0,0 +1,99 @@ +import inspect +# our treeClass function +def treeClass(cls, ind=0): + # print name of the class + print('-' * ind, cls.__name__) + + # iterating through subclasses + for i in cls.__subclasses__(): + treeClass(i, ind + 3) + + +print("Hierarchy for Built-in exceptions is : ") + +# inspect.getmro() Return a tuple +# of class cls’s base classes. + +# building a tree hierarchy +inspect.getclasstree(inspect.getmro(BaseException)) + +# function call +treeClass(BaseException) + +# BaseException +# --- Exception +# ------ TypeError +# ------ StopAsyncIteration +# ------ StopIteration +# ------ ImportError +# --------- ModuleNotFoundError +# --------- ZipImportError +# ------ OSError +# --------- ConnectionError +# ------------ BrokenPipeError +# ------------ ConnectionAbortedError +# ------------ ConnectionRefusedError +# ------------ ConnectionResetError +# --------- BlockingIOError +# --------- ChildProcessError +# --------- FileExistsError +# --------- FileNotFoundError +# --------- IsADirectoryError +# --------- NotADirectoryError +# --------- InterruptedError +# --------- PermissionError +# --------- ProcessLookupError +# --------- TimeoutError +# --------- UnsupportedOperation +# ------ EOFError +# ------ RuntimeError +# --------- RecursionError +# --------- NotImplementedError +# --------- _DeadlockError +# ------ NameError +# --------- UnboundLocalError +# ------ AttributeError +# ------ SyntaxError +# --------- IndentationError +# ------------ TabError +# ------ LookupError +# --------- IndexError +# --------- KeyError +# --------- CodecRegistryError +# ------ ValueError +# --------- UnicodeError +# ------------ UnicodeEncodeError +# ------------ UnicodeDecodeError +# ------------ UnicodeTranslateError +# --------- UnsupportedOperation +# ------ AssertionError +# ------ ArithmeticError +# --------- FloatingPointError +# --------- OverflowError +# --------- ZeroDivisionError +# ------ SystemError +# --------- CodecRegistryError +# ------ ReferenceError +# ------ MemoryError +# ------ BufferError +# ------ Warning +# --------- UserWarning +# --------- DeprecationWarning +# --------- PendingDeprecationWarning +# --------- SyntaxWarning +# --------- RuntimeWarning +# --------- FutureWarning +# --------- ImportWarning +# --------- UnicodeWarning +# --------- BytesWarning +# --------- ResourceWarning +# ------ _OptionError +# ------ error +# ------ Verbose +# ------ Error +# ------ TokenError +# ------ StopTokenizing +# ------ EndOfBlock +# --- GeneratorExit +# --- SystemExit +# --- KeyboardInterrupt diff --git a/Module7/examples/practice/exceptions/01_task_except.py b/Module7/practice/exceptions/01_task_except.py similarity index 100% rename from Module7/examples/practice/exceptions/01_task_except.py rename to Module7/practice/exceptions/01_task_except.py diff --git a/Module7/examples/practice/exceptions/02_task_except.py b/Module7/practice/exceptions/02_task_except.py similarity index 100% rename from Module7/examples/practice/exceptions/02_task_except.py rename to Module7/practice/exceptions/02_task_except.py diff --git a/Module7/examples/practice/exceptions/03_task_except.py b/Module7/practice/exceptions/03_task_except.py similarity index 100% rename from Module7/examples/practice/exceptions/03_task_except.py rename to Module7/practice/exceptions/03_task_except.py diff --git a/Module7/examples/practice/exceptions/04_task_except.py b/Module7/practice/exceptions/04_task_except.py similarity index 100% rename from Module7/examples/practice/exceptions/04_task_except.py rename to Module7/practice/exceptions/04_task_except.py From b8c25d926916abb24e22e0ce35170cb74814fc26 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Fri, 25 Dec 2020 14:47:58 +0300 Subject: [PATCH 13/38] add tasks for Module-6 --- Module6/home_work/01_hw_file.py | 8 +++ Module6/home_work/02_hw_file.py | 6 +++ Module6/home_work/03_hw_file.py | 5 ++ Module6/home_work/data/info.txt | 13 +++++ Module6/home_work/data/limericks.txt | 77 ++++++++++++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 Module6/home_work/01_hw_file.py create mode 100644 Module6/home_work/02_hw_file.py create mode 100644 Module6/home_work/03_hw_file.py create mode 100644 Module6/home_work/data/info.txt create mode 100644 Module6/home_work/data/limericks.txt diff --git a/Module6/home_work/01_hw_file.py b/Module6/home_work/01_hw_file.py new file mode 100644 index 000000000..ccae73148 --- /dev/null +++ b/Module6/home_work/01_hw_file.py @@ -0,0 +1,8 @@ +# Напишите функцию log() принимающую в качестве аргумента строку и дописывающую это строку в конец файла + +def log(text, file="log.txt"): + pass + + +log("hello world") # дописывает "hello world" в конец файла log.txt +log("message", "log01.txt") # дописывает "message" в конец файла log01.txt diff --git a/Module6/home_work/02_hw_file.py b/Module6/home_work/02_hw_file.py new file mode 100644 index 000000000..b4d611a0c --- /dev/null +++ b/Module6/home_work/02_hw_file.py @@ -0,0 +1,6 @@ +# Дан файл data/limericks.txt с лимериками(короткими стихотворениями) + +# 1. Выведите содержимое файла в консоль +# 2. Узнайте количество непробельный символов в данном файле +# 3. Узнайте количество стихотворений, если известно, +# что каждое стихотворение отделяется пустой строкой от предыдущего diff --git a/Module6/home_work/03_hw_file.py b/Module6/home_work/03_hw_file.py new file mode 100644 index 000000000..c29e6471d --- /dev/null +++ b/Module6/home_work/03_hw_file.py @@ -0,0 +1,5 @@ +# Дан файл data/info.txt, в каждой строке которого содержится строка или целое число +# Найдите сумму всех чисел, пропуская все строки содержащие не числовые значения + +with open("data/info.txt", "r") as f: + pass diff --git a/Module6/home_work/data/info.txt b/Module6/home_work/data/info.txt new file mode 100644 index 000000000..3e78cc5c5 --- /dev/null +++ b/Module6/home_work/data/info.txt @@ -0,0 +1,13 @@ +hey +12 +34 +-45 +hello +37 +and +67? +--94 +15 +or +48 +by \ No newline at end of file diff --git a/Module6/home_work/data/limericks.txt b/Module6/home_work/data/limericks.txt new file mode 100644 index 000000000..510267bb0 --- /dev/null +++ b/Module6/home_work/data/limericks.txt @@ -0,0 +1,77 @@ +Жил на свете старик в бороде. +Говорил он: «Я знал: быть беде. +Две совы, три чижа +И четыре стрижа +Свили гнезда в моей бороде». + +Миловидная леди из гавани +Сшила шляпку по моде недавней. +Но размер и расцветка +Этой шляпы нередко +Удручали красотку из гавани. + +Худощавая мисс из Афин +Была дверью расплющена в блин. +Но вскричала спокойно: +«Это вовсе не больно!» +Та отважная мисс из Афин. + +Симпатичная леди с Атлантики, +Завязавши ботинки на бантики, +Знай гуляла по пристани +Со щенками пятнистыми +И порочила климат Атлантики. + +Длинноносый старик из Литвы +Говорил: «Если скажете вы, +Что мой нос длинноват, +В чем же я виноват — +Ведь не я так считаю, а вы!» + +Старый джентльмен на склоне холма +Был подвижен и прыток весьма: +Он, не знаясь со знатью, +Бегал в тещином платье +От подножья к вершине холма. + +К привлекательной леди из Капуи +Часто птицы садились на шляпу, и +Говорила с любовью: +«Пусть сидят на здоровье!» +Та приятная леди из Капуи. + +Непослушную внучку из Йены +Бабка сжечь собралась как полено. +Но заметила тонко: +«А не сжечь ли котенка?» +Невозможная внучка из Йены. + +Безрассудный старик из Остравы +Вел себя неумно и нездраво: +Даже будучи сытым, +Груши ел с аппетитом +Тот унылый старик из Остравы. + +Музыкальный старик на Меконге +Без конца упражнялся на гонге. +Все кричат: «Где закон, +Чтоб такие, как он, +День и ночь не играли на гонге?» + +Экспансивная леди из Ланса +Не сумела прервать реверанса +И, как штопор, крутилась, +Пока в пол не ввинтилась, +Опечалив всех жителей Ланса. + +Старика, что сидел на осине, +Муха мучила невыносимо, +И жужжала та муха +Прямо в самое ухо +Старику, что сидел на осине. + +К удалому флейтисту из Конго +Раз в сапог заползла анаконда. +Но настолько отвратно +Он играл, что обратно +Через час уползла анаконда. \ No newline at end of file From e9bfd6ffa96036048e6c2e09759b595581d1b8f7 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Tue, 19 Jan 2021 16:28:07 +0300 Subject: [PATCH 14/38] add tasks for Module-2 --- Module2/practice/if_else/01_task_if_else.py | 6 ++++++ Module2/practice/if_else/02_task_if_else.py | 5 +++++ Module2/practice/if_else/03_task_if_else.py | 5 +++++ Module2/practice/if_else/04_task_if_else.py | 7 +++++++ Module2/practice/if_else/05_task_if_else.py | 6 ++++++ Module2/practice/if_else/06_task_if_else.py | 10 ++++++++++ Module2/practice/while/01_task_while.py | 5 +++++ Module2/practice/while/02_task_while.py | 5 +++++ Module2/practice/while/03_task_while.py | 12 ++++++++++++ Module2/practice/while/04_task_while.py | 9 +++++++++ Module2/practice/while/05_task_while.py | 20 ++++++++++++++++++++ Module2/practice/while/06_task_while.py | 19 +++++++++++++++++++ 12 files changed, 109 insertions(+) create mode 100644 Module2/practice/if_else/01_task_if_else.py create mode 100644 Module2/practice/if_else/02_task_if_else.py create mode 100644 Module2/practice/if_else/03_task_if_else.py create mode 100644 Module2/practice/if_else/04_task_if_else.py create mode 100644 Module2/practice/if_else/05_task_if_else.py create mode 100644 Module2/practice/if_else/06_task_if_else.py create mode 100644 Module2/practice/while/01_task_while.py create mode 100644 Module2/practice/while/02_task_while.py create mode 100644 Module2/practice/while/03_task_while.py create mode 100644 Module2/practice/while/04_task_while.py create mode 100644 Module2/practice/while/05_task_while.py create mode 100644 Module2/practice/while/06_task_while.py diff --git a/Module2/practice/if_else/01_task_if_else.py b/Module2/practice/if_else/01_task_if_else.py new file mode 100644 index 000000000..77c5a0a9b --- /dev/null +++ b/Module2/practice/if_else/01_task_if_else.py @@ -0,0 +1,6 @@ +# Дано вещественное число x. Проверьте, является ли оно положительным или отрицательным. +# Формат входных данных: дано одно вещественное число number. Гарантируется, что number ≠ 0. +# Формат выходных данных: Требуется вывести тип числа текстом + +number = float(input()) # Считываем вещественное число +# TODO: your code here diff --git a/Module2/practice/if_else/02_task_if_else.py b/Module2/practice/if_else/02_task_if_else.py new file mode 100644 index 000000000..33c5ac798 --- /dev/null +++ b/Module2/practice/if_else/02_task_if_else.py @@ -0,0 +1,5 @@ +# Дано целое число. Определить, заканчивается ли оно число цифрой 5? +# Формат входных данных: Целое положительно число +# Формат выходных данных: Если число оканчивается цифрой 5, вывести «YES», в противном случае — вывести «NO». + +# TODO: your code here diff --git a/Module2/practice/if_else/03_task_if_else.py b/Module2/practice/if_else/03_task_if_else.py new file mode 100644 index 000000000..6fd7713f1 --- /dev/null +++ b/Module2/practice/if_else/03_task_if_else.py @@ -0,0 +1,5 @@ +# Дан треугольник со сторонами a, b и c. Определите, является ли он равнобедренным. +# Формат входных данных: дано три натуральных числа. Гарантируется, что отрезки с данными длинами образуют треугольник. +# Формат выходных данных: Выведите «YES», если треугольник равнобедренный, и «NO» в противном случае. + +# TODO: your code here diff --git a/Module2/practice/if_else/04_task_if_else.py b/Module2/practice/if_else/04_task_if_else.py new file mode 100644 index 000000000..36ee6da5c --- /dev/null +++ b/Module2/practice/if_else/04_task_if_else.py @@ -0,0 +1,7 @@ +# Дано целое число. +# Если оно делится на 3 без остатка - вывести ”Foo”, +# если делится на 5 - вывести “Bar”, +# а если делится на 3 и на 5 - вывести “Foobar”. +# Для всех остальных случаев не выводить ничего. + +# TODO: your code here diff --git a/Module2/practice/if_else/05_task_if_else.py b/Module2/practice/if_else/05_task_if_else.py new file mode 100644 index 000000000..96a730387 --- /dev/null +++ b/Module2/practice/if_else/05_task_if_else.py @@ -0,0 +1,6 @@ +# Дано целое число m, задающее номер месяца года. +# Выведите строку — название времени года, соответствующего данному месяцу. +# Формат входных данных: дано целое число m (1 ≤ m ≤ 12). +# Формат выходных данных: требуется вывести название времени года + +# TODO: your code here diff --git a/Module2/practice/if_else/06_task_if_else.py b/Module2/practice/if_else/06_task_if_else.py new file mode 100644 index 000000000..333f195ce --- /dev/null +++ b/Module2/practice/if_else/06_task_if_else.py @@ -0,0 +1,10 @@ +# Дан номер года. Требуется определить количество дней в этом году, учитывая, +# что обычный год насчитывает 365 дней, а високосный –— 366 дней.# +# Високосным считается год, делящийся на 4, но не делящийся на 100, +# либо делящиеся на 400 (например, годы 700, 1400 и 1800 не являются високосными, а 1600 и 2000 –— являются). +# Формат входных данных: Вводится неотрицательное целое число— номер года. +# Формат выходных данных: Выведите количество дней в данном году. + +year = int(input("Год: ")) + +# TODO: your code here diff --git a/Module2/practice/while/01_task_while.py b/Module2/practice/while/01_task_while.py new file mode 100644 index 000000000..cb98773cf --- /dev/null +++ b/Module2/practice/while/01_task_while.py @@ -0,0 +1,5 @@ +# Даны два целые числа a и b. Выведите на экран все целые четные числа от a до b включительно. +# Формат входных данных: Дано два целых числа a и b. Гарантируется, что a < b +# Формат выходных данных: Выведите все числа, требуемые по условию задачи. + +# TODO: your code here diff --git a/Module2/practice/while/02_task_while.py b/Module2/practice/while/02_task_while.py new file mode 100644 index 000000000..98f32f5eb --- /dev/null +++ b/Module2/practice/while/02_task_while.py @@ -0,0 +1,5 @@ +# Напишите программу, которая запрашивает строку до тех пор, пока пользователь не введет “хватит”. +# Т.е. программа запрашивает ввод, если вводится любое значение отличное от слова “хватит”, +# то программа запрашивает ввод снова. + +# TODO: your code here diff --git a/Module2/practice/while/03_task_while.py b/Module2/practice/while/03_task_while.py new file mode 100644 index 000000000..3db93b73e --- /dev/null +++ b/Module2/practice/while/03_task_while.py @@ -0,0 +1,12 @@ +# По данному натуральному n выведите лесенку из n ступенек, i-я ступень состоит из чисел от 1 до i без пробелов. +# Формат входных данных: Вводится натуральное число n. +# Формат выходных данных: Выведите ответ на задачу. +# Пример: +# Для n = 4 +# Нужно вывести: +# 1 +# 12 +# 123 +# 1234 + +# TODO: your code here diff --git a/Module2/practice/while/04_task_while.py b/Module2/practice/while/04_task_while.py new file mode 100644 index 000000000..347ec986e --- /dev/null +++ b/Module2/practice/while/04_task_while.py @@ -0,0 +1,9 @@ +# Из остатков кирпичей Сергей сложил пирамиду. +# На вершине пирамиды лежит один кирпич, на втором сверху ряду два кирпича, +# на третьем - три, и т.д., в нижнем ряду пирамиды количество кирпичей равно количеству уровней пирамиды. +# После этого он написал на каждом кирпиче по числу, равному количеству кирпичей на этом уровне, +# т.е. на верхнем уровне 1, на втором уровне 2, и т.д. Определите сумму чисел написанных на кирпичах. +# Формат входных данных: Программе даётся целое число — количество уровней в пирамиде +# Формат выходных данных: Необходимо вывести сумму чисел написанных на кирпичах. + +# TODO: your code here diff --git a/Module2/practice/while/05_task_while.py b/Module2/practice/while/05_task_while.py new file mode 100644 index 000000000..c2a224541 --- /dev/null +++ b/Module2/practice/while/05_task_while.py @@ -0,0 +1,20 @@ +# Вывод символов по диагоналям +# Даны сторона квадрата. Вывести его диагонали символами #. +# Формат входных данных: На вход программе одно целое число a (2 Date: Tue, 19 Jan 2021 20:35:02 +0300 Subject: [PATCH 15/38] Update 01_task_if_else.py --- Module2/practice/if_else/01_task_if_else.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Module2/practice/if_else/01_task_if_else.py b/Module2/practice/if_else/01_task_if_else.py index 77c5a0a9b..ee7a938f8 100644 --- a/Module2/practice/if_else/01_task_if_else.py +++ b/Module2/practice/if_else/01_task_if_else.py @@ -3,4 +3,7 @@ # Формат выходных данных: Требуется вывести тип числа текстом number = float(input()) # Считываем вещественное число -# TODO: your code here +if number > 0: + print("Положительное") +else: + print("Отрицательное") From 83a3b138372f7df75ff54534e0bf53444b2ad3cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Tue, 19 Jan 2021 20:36:41 +0300 Subject: [PATCH 16/38] Update 01_task_if_else.py --- Module2/practice/if_else/01_task_if_else.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Module2/practice/if_else/01_task_if_else.py b/Module2/practice/if_else/01_task_if_else.py index ee7a938f8..c18111b4c 100644 --- a/Module2/practice/if_else/01_task_if_else.py +++ b/Module2/practice/if_else/01_task_if_else.py @@ -3,7 +3,4 @@ # Формат выходных данных: Требуется вывести тип числа текстом number = float(input()) # Считываем вещественное число -if number > 0: - print("Положительное") -else: - print("Отрицательное") + From d4275039eea0dfbba59d7a55524622dff86d0bdd Mon Sep 17 00:00:00 2001 From: vlasove Date: Tue, 19 Jan 2021 21:44:07 +0300 Subject: [PATCH 17/38] Add hw for Module-2 --- Module2/home_work/01_hw.py | 8 ++++++++ Module2/home_work/02_hw.py | 10 ++++++++++ Module2/home_work/03_hw.py | 31 +++++++++++++++++++++++++++++++ Module2/home_work/04_hw.py | 16 ++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 Module2/home_work/01_hw.py create mode 100644 Module2/home_work/02_hw.py create mode 100644 Module2/home_work/03_hw.py create mode 100644 Module2/home_work/04_hw.py diff --git a/Module2/home_work/01_hw.py b/Module2/home_work/01_hw.py new file mode 100644 index 000000000..2e876f454 --- /dev/null +++ b/Module2/home_work/01_hw.py @@ -0,0 +1,8 @@ +# Требуется определить, можно ли от шоколадки размером n × m долек отломить k долек, +# если разрешается сделать один разлом по прямой между дольками (то есть разломить шоколадку на два прямоугольника). +# Формат входных данных +# Вводятся 3 натуральных числа n, m и k. Точно известно, что k ≠ n ⋅ m. +# Формат выходных данных +# Выведите «YES», если можно отломить от шоколадки ровно k долек, и «NO» иначе. + +# TODO: your code here diff --git a/Module2/home_work/02_hw.py b/Module2/home_work/02_hw.py new file mode 100644 index 000000000..24ec97636 --- /dev/null +++ b/Module2/home_work/02_hw.py @@ -0,0 +1,10 @@ +# По данному числу n закончите фразу «На лугу пасется...» одним из возможных продолжений: +# «n коров», «n корова», «n коровы», правильно склоняя слово «корова». +# Формат входных данных +# Дано целое положительное число n +# Формат выходных данных +# Программа должна вывести введенное число n и одно из слов (на латинице): +# коров, корова или коровы +# Например, 1 корова, 2 коровы, 5 коров, 125 коров. + +# TODO: your code here diff --git a/Module2/home_work/03_hw.py b/Module2/home_work/03_hw.py new file mode 100644 index 000000000..2ad639cd7 --- /dev/null +++ b/Module2/home_work/03_hw.py @@ -0,0 +1,31 @@ +# Задача 3. Таблица стоимости +# Одна единица некоторого товара стоит x рублей. Напечатайте таблицу стоимости 2, 3, ..., 20 единиц этого товара. +# Формат входных данных +# Вводится одно положительное вещественное число x, которое не превосходит 105 и задано с двумя знаками после запятой. + +# пример: +# Входные данные +# 9.99 +# Выходные данные +# 1 9.99 Rub. +# 2 19.98 Rub. +# 3 29.97 Rub. +# 4 39.96 Rub. +# 5 49.95 Rub. +# 6 59.94 Rub. +# 7 69.93 Rub. +# 8 79.92 Rub. +# 9 89.91 Rub. +# 10 99.90 Rub. +# 11 109.89 Rub. +# 12 119.88 Rub. +# 13 129.87 Rub. +# 14 139.86 Rub. +# 15 149.85 Rub. +# 16 159.84 Rub. +# 17 169.83 Rub. +# 18 179.82 Rub. +# 19 189.81 Rub. +# 20 199.80 Rub. + +# TODO: your code here diff --git a/Module2/home_work/04_hw.py b/Module2/home_work/04_hw.py new file mode 100644 index 000000000..d7c60142c --- /dev/null +++ b/Module2/home_work/04_hw.py @@ -0,0 +1,16 @@ +# Дан размер стороны квадрата. Вывести его стороны символами #. +# Формат входных данных +# На вход программе одно целое число a (2 Date: Wed, 20 Jan 2021 19:49:01 +0300 Subject: [PATCH 18/38] Update 01_task_string.py --- Module3/practice/string/01_task_string.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Module3/practice/string/01_task_string.py b/Module3/practice/string/01_task_string.py index a5750c5bb..eac93bf2c 100644 --- a/Module3/practice/string/01_task_string.py +++ b/Module3/practice/string/01_task_string.py @@ -6,7 +6,5 @@ name = input("Имя: ") surname = input("Фамилия: ") -name = name.capitalize() -surname = surname.capitalize() print(name, surname) From 0769ec7bd942cc510257eed28bf0dd2e6971573d Mon Sep 17 00:00:00 2001 From: boo-learn Date: Thu, 21 Jan 2021 14:36:11 +0300 Subject: [PATCH 19/38] add new task for dict --- Module3/practice/dict/02_task_dict.py | 52 ++++----------------------- Module3/practice/dict/03_task_dict.py | 48 +++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 45 deletions(-) create mode 100644 Module3/practice/dict/03_task_dict.py diff --git a/Module3/practice/dict/02_task_dict.py b/Module3/practice/dict/02_task_dict.py index 82ba7084b..75fa1fad6 100644 --- a/Module3/practice/dict/02_task_dict.py +++ b/Module3/practice/dict/02_task_dict.py @@ -1,48 +1,10 @@ -# Данные о сотрудниках в программе хранятся в словаре -staff = [ - { - 'name': 'Алексей', - 'surname': 'Петров', - 'salary': 124300 - }, - { - 'name': 'Николай', - 'surname': 'Петров', - 'salary': 120000 - }, - { - 'name': 'Иван', - 'surname': 'Павлов', - 'salary': 34500 - }, - { - 'name': 'Василий', - 'surname': 'Кукушкин', - 'salary': 162500 - }, - { - 'name': 'Василий', - 'surname': 'Павлов', - 'salary': 47800 - }, -] -# Вычислите: -print("Имя и Фамилию сотрудника с самой высокой зарплатой:") +# Даны два списка одинаковой длины. Необходимо создать из них словарь таким образом, +# чтобы элементы первого списка были ключами, а элементы второго — соответственно значениями нашего словаря. -# TODO: your code here - -print("Имя и Фамилию сотрудника с самой низкой зарплатой:") - -# TODO: your code here - -print("Среднеарифметическую зарплату всех сотрудников") - -# TODO: your code here - -print("Количество однофамильцев в организации") - -# TODO: your code here - -print("*Список всех сотрудников(Имя и Фамилию) в порядке возрастания их зарплаты") +keys = ['name', 'surname', 'age', 'rate'] +values = ['Петр', 'Первый', 42, 1300] # TODO: your code here +print(dict(zip(keys, values))) +# Нужно получить словарь: +# {'name': 'Петр', 'surname': 'Первый', 'age': 42, 'rate': 1300} diff --git a/Module3/practice/dict/03_task_dict.py b/Module3/practice/dict/03_task_dict.py new file mode 100644 index 000000000..82ba7084b --- /dev/null +++ b/Module3/practice/dict/03_task_dict.py @@ -0,0 +1,48 @@ +# Данные о сотрудниках в программе хранятся в словаре +staff = [ + { + 'name': 'Алексей', + 'surname': 'Петров', + 'salary': 124300 + }, + { + 'name': 'Николай', + 'surname': 'Петров', + 'salary': 120000 + }, + { + 'name': 'Иван', + 'surname': 'Павлов', + 'salary': 34500 + }, + { + 'name': 'Василий', + 'surname': 'Кукушкин', + 'salary': 162500 + }, + { + 'name': 'Василий', + 'surname': 'Павлов', + 'salary': 47800 + }, +] +# Вычислите: +print("Имя и Фамилию сотрудника с самой высокой зарплатой:") + +# TODO: your code here + +print("Имя и Фамилию сотрудника с самой низкой зарплатой:") + +# TODO: your code here + +print("Среднеарифметическую зарплату всех сотрудников") + +# TODO: your code here + +print("Количество однофамильцев в организации") + +# TODO: your code here + +print("*Список всех сотрудников(Имя и Фамилию) в порядке возрастания их зарплаты") + +# TODO: your code here From 15b19311296af7b119c4bc87400b87886edc89bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Thu, 21 Jan 2021 19:13:56 +0300 Subject: [PATCH 20/38] Update 02_task_dict.py --- Module3/practice/dict/02_task_dict.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Module3/practice/dict/02_task_dict.py b/Module3/practice/dict/02_task_dict.py index 75fa1fad6..510833b19 100644 --- a/Module3/practice/dict/02_task_dict.py +++ b/Module3/practice/dict/02_task_dict.py @@ -5,6 +5,5 @@ values = ['Петр', 'Первый', 42, 1300] # TODO: your code here -print(dict(zip(keys, values))) # Нужно получить словарь: # {'name': 'Петр', 'surname': 'Первый', 'age': 42, 'rate': 1300} From e6e3fcad1f2c351a01b08ecb96a80ba7a07ae9b2 Mon Sep 17 00:00:00 2001 From: vlasove Date: Mon, 25 Jan 2021 17:53:21 +0300 Subject: [PATCH 21/38] mod Module-6 tasks --- .../{5_with_args.py => x_with_args.py} | 0 .../3_os_.py => Module6/examples/1_os_.py | 1 + Module6/examples/{1_file.py => 2_file.py} | 0 .../{2_file_pickle.py => 4_file_pickle.py} | 0 Module6/home_work/02_hw_file.py | 9 ++++----- Module6/home_work/03_hw_file.py | 5 ----- Module6/practice/files/01_task_file.py | 12 ++++++------ Module6/practice/files/02_task_file.py | 12 +++++------- Module6/practice/files/03_task_file.py | 19 ++++++++----------- Module6/practice/files/04_task_file.py | 16 +++++++++++----- Module6/practice/files/05_task_file.py | 5 +++++ .../files}/data/limericks.txt | 0 12 files changed, 40 insertions(+), 39 deletions(-) rename Module5/examples/{5_with_args.py => x_with_args.py} (100%) rename Module5/examples/3_os_.py => Module6/examples/1_os_.py (92%) rename Module6/examples/{1_file.py => 2_file.py} (100%) rename Module6/examples/{2_file_pickle.py => 4_file_pickle.py} (100%) delete mode 100644 Module6/home_work/03_hw_file.py create mode 100644 Module6/practice/files/05_task_file.py rename Module6/{home_work => practice/files}/data/limericks.txt (100%) diff --git a/Module5/examples/5_with_args.py b/Module5/examples/x_with_args.py similarity index 100% rename from Module5/examples/5_with_args.py rename to Module5/examples/x_with_args.py diff --git a/Module5/examples/3_os_.py b/Module6/examples/1_os_.py similarity index 92% rename from Module5/examples/3_os_.py rename to Module6/examples/1_os_.py index f69c0561f..a6288040a 100644 --- a/Module5/examples/3_os_.py +++ b/Module6/examples/1_os_.py @@ -7,6 +7,7 @@ print(files) print("current dir = ", os.path.dirname(__file__)) +print("current dir = ", os.getcwd()) # Создаем новую директорию dir_path = os.path.join(os.getcwd(), 'NewDir') diff --git a/Module6/examples/1_file.py b/Module6/examples/2_file.py similarity index 100% rename from Module6/examples/1_file.py rename to Module6/examples/2_file.py diff --git a/Module6/examples/2_file_pickle.py b/Module6/examples/4_file_pickle.py similarity index 100% rename from Module6/examples/2_file_pickle.py rename to Module6/examples/4_file_pickle.py diff --git a/Module6/home_work/02_hw_file.py b/Module6/home_work/02_hw_file.py index b4d611a0c..c29e6471d 100644 --- a/Module6/home_work/02_hw_file.py +++ b/Module6/home_work/02_hw_file.py @@ -1,6 +1,5 @@ -# Дан файл data/limericks.txt с лимериками(короткими стихотворениями) +# Дан файл data/info.txt, в каждой строке которого содержится строка или целое число +# Найдите сумму всех чисел, пропуская все строки содержащие не числовые значения -# 1. Выведите содержимое файла в консоль -# 2. Узнайте количество непробельный символов в данном файле -# 3. Узнайте количество стихотворений, если известно, -# что каждое стихотворение отделяется пустой строкой от предыдущего +with open("data/info.txt", "r") as f: + pass diff --git a/Module6/home_work/03_hw_file.py b/Module6/home_work/03_hw_file.py deleted file mode 100644 index c29e6471d..000000000 --- a/Module6/home_work/03_hw_file.py +++ /dev/null @@ -1,5 +0,0 @@ -# Дан файл data/info.txt, в каждой строке которого содержится строка или целое число -# Найдите сумму всех чисел, пропуская все строки содержащие не числовые значения - -with open("data/info.txt", "r") as f: - pass diff --git a/Module6/practice/files/01_task_file.py b/Module6/practice/files/01_task_file.py index 33971019f..b4d611a0c 100644 --- a/Module6/practice/files/01_task_file.py +++ b/Module6/practice/files/01_task_file.py @@ -1,6 +1,6 @@ -# Кассовый аппарат пишет цены всех проданных товаров в текстовый файл, наименование проданных товаров не имеет значение. -# По окончанию рабочего дня имеем файл data/sold.txt. -# Узнайте: -# 1. На какую сумму было продано товаров -# 2. Цену самого дорогого товара -# 3. Цену самого дешевого товара +# Дан файл data/limericks.txt с лимериками(короткими стихотворениями) + +# 1. Выведите содержимое файла в консоль +# 2. Узнайте количество непробельный символов в данном файле +# 3. Узнайте количество стихотворений, если известно, +# что каждое стихотворение отделяется пустой строкой от предыдущего diff --git a/Module6/practice/files/02_task_file.py b/Module6/practice/files/02_task_file.py index 97b4859e4..33971019f 100644 --- a/Module6/practice/files/02_task_file.py +++ b/Module6/practice/files/02_task_file.py @@ -1,8 +1,6 @@ -# Кассовый аппарат был доработан, теперь он пишет не только цены, но и тип проданных товаров. -# Файл data/items_sold.txt - продажи всех товаров за день. -# Каждая строка файла - покупка одного покупателя. +# Кассовый аппарат пишет цены всех проданных товаров в текстовый файл, наименование проданных товаров не имеет значение. +# По окончанию рабочего дня имеем файл data/sold.txt. # Узнайте: -# 1. Какова общая выручка магазина -# 2. Какова выручка магазина по каждому типу товаров -# 3. Какой тип товара был продан на самую большую сумму -# 4. Сколько различных типов товаров было продано за день +# 1. На какую сумму было продано товаров +# 2. Цену самого дорогого товара +# 3. Цену самого дешевого товара diff --git a/Module6/practice/files/03_task_file.py b/Module6/practice/files/03_task_file.py index 5b7116edf..97b4859e4 100644 --- a/Module6/practice/files/03_task_file.py +++ b/Module6/practice/files/03_task_file.py @@ -1,11 +1,8 @@ -# Дан файл ("data/fruits.txt") со списком фруктов. -# Записать в новые файлы все фрукты, начинающиеся с определенной буквы. -# Т.е. в одном файле будут все фрукты на букву “А”, во втором на “Б” и т.д. -# Файлы назвать соответственно. -# Пример имен файлов: fruits_А.txt, fruits_Б.txt, fruits_В.txt …. -# Важно! Обратите внимание, что нет фруктов, начинающихся с некоторых букв. -# Напишите универсальный код, который будет работать с любым списком фруктов и -# распределять по файлам в зависимости от первых букв, имеющихся в списке фруктов. -# Подсказка: -# Чтобы получить список больших букв русского алфавита: -# print(list(map(chr, range(ord('А'), ord('Я')+1)))) +# Кассовый аппарат был доработан, теперь он пишет не только цены, но и тип проданных товаров. +# Файл data/items_sold.txt - продажи всех товаров за день. +# Каждая строка файла - покупка одного покупателя. +# Узнайте: +# 1. Какова общая выручка магазина +# 2. Какова выручка магазина по каждому типу товаров +# 3. Какой тип товара был продан на самую большую сумму +# 4. Сколько различных типов товаров было продано за день diff --git a/Module6/practice/files/04_task_file.py b/Module6/practice/files/04_task_file.py index 3d2748719..5b7116edf 100644 --- a/Module6/practice/files/04_task_file.py +++ b/Module6/practice/files/04_task_file.py @@ -1,5 +1,11 @@ -# Дана ведомость расчета заработной платы (файл "data/workers"). -# Рассчитайте зарплату всех работников, зная что они получат полный оклад, -# если отработают норму часов. Если же они отработали меньше нормы, то их ЗП уменьшается пропорционально, -# а за каждый час переработки они получают удвоенную ЗП, пропорциональную норме. -# Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" +# Дан файл ("data/fruits.txt") со списком фруктов. +# Записать в новые файлы все фрукты, начинающиеся с определенной буквы. +# Т.е. в одном файле будут все фрукты на букву “А”, во втором на “Б” и т.д. +# Файлы назвать соответственно. +# Пример имен файлов: fruits_А.txt, fruits_Б.txt, fruits_В.txt …. +# Важно! Обратите внимание, что нет фруктов, начинающихся с некоторых букв. +# Напишите универсальный код, который будет работать с любым списком фруктов и +# распределять по файлам в зависимости от первых букв, имеющихся в списке фруктов. +# Подсказка: +# Чтобы получить список больших букв русского алфавита: +# print(list(map(chr, range(ord('А'), ord('Я')+1)))) diff --git a/Module6/practice/files/05_task_file.py b/Module6/practice/files/05_task_file.py new file mode 100644 index 000000000..3d2748719 --- /dev/null +++ b/Module6/practice/files/05_task_file.py @@ -0,0 +1,5 @@ +# Дана ведомость расчета заработной платы (файл "data/workers"). +# Рассчитайте зарплату всех работников, зная что они получат полный оклад, +# если отработают норму часов. Если же они отработали меньше нормы, то их ЗП уменьшается пропорционально, +# а за каждый час переработки они получают удвоенную ЗП, пропорциональную норме. +# Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" diff --git a/Module6/home_work/data/limericks.txt b/Module6/practice/files/data/limericks.txt similarity index 100% rename from Module6/home_work/data/limericks.txt rename to Module6/practice/files/data/limericks.txt From a180c7f9bd2eac34603f660a725773c402b17383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Tue, 26 Jan 2021 12:54:47 +0300 Subject: [PATCH 22/38] Update 05_task_list.py --- Module3/practice/list_and_tuple/05_task_list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Module3/practice/list_and_tuple/05_task_list.py b/Module3/practice/list_and_tuple/05_task_list.py index 1481e123d..d93502aa9 100644 --- a/Module3/practice/list_and_tuple/05_task_list.py +++ b/Module3/practice/list_and_tuple/05_task_list.py @@ -10,7 +10,7 @@ # Пример вывода: # 1. яблоко # 2. банан -# 3. киви +# 3. киви # 4. арбуз # Важно! Ваше решение должно работать с любыми корректными "исходными данными" From 31b0049d834d471f7f4287214ad76d331c051f34 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Thu, 28 Jan 2021 18:20:55 +0300 Subject: [PATCH 23/38] Add Module10 --- .../practice/training/01_task_training.py | 7 +++++ .../practice/training/02_task_training.py | 8 ++++++ .../practice/training/03_task_training.py | 4 +++ .../practice/training/04_task_training.py | 4 +++ .../practice/training/05_task_training.py | 27 +++++++++++++++++++ .../practice/training/06_task_training.py | 7 +++++ .../practice/training/07_task_training.py | 1 + .../practice/training/08_task_training.py | 4 +++ .../practice/training/09_task_training.py | 3 +++ .../practice/training/10_task_training.py | 5 ++++ {Modulr9 => Module9}/examples/1_rstring.py | 0 {Modulr9 => Module9}/examples/2_regexp.py | 0 {Modulr9 => Module9}/practice/tasks.md | 0 13 files changed, 70 insertions(+) create mode 100644 Module10/practice/training/01_task_training.py create mode 100644 Module10/practice/training/02_task_training.py create mode 100644 Module10/practice/training/03_task_training.py create mode 100644 Module10/practice/training/04_task_training.py create mode 100644 Module10/practice/training/05_task_training.py create mode 100644 Module10/practice/training/06_task_training.py create mode 100644 Module10/practice/training/07_task_training.py create mode 100644 Module10/practice/training/08_task_training.py create mode 100644 Module10/practice/training/09_task_training.py create mode 100644 Module10/practice/training/10_task_training.py rename {Modulr9 => Module9}/examples/1_rstring.py (100%) rename {Modulr9 => Module9}/examples/2_regexp.py (100%) rename {Modulr9 => Module9}/practice/tasks.md (100%) diff --git a/Module10/practice/training/01_task_training.py b/Module10/practice/training/01_task_training.py new file mode 100644 index 000000000..54dc82a78 --- /dev/null +++ b/Module10/practice/training/01_task_training.py @@ -0,0 +1,7 @@ +# Напишите программу, вычисляющую площадь всех граней и объем прямоугольного параллелепипеда. + +# Важно! +# Оформите решение так, что работа с вашей программой была удобна пользователю. +# Пользователь должен понимать, что его просят ввести и что именно делает программа. + + diff --git a/Module10/practice/training/02_task_training.py b/Module10/practice/training/02_task_training.py new file mode 100644 index 000000000..d673c0780 --- /dev/null +++ b/Module10/practice/training/02_task_training.py @@ -0,0 +1,8 @@ +# На числовой прямой расположены точки A, B, C и D. +# Напишите программу, которая выведет, во сколько раз отрезок AB больше, чем отрезок CD. +# Формат входных данных: +# На вход программе подается четыре целых числа A, B, C и D. +# Расположение точек относительно друг друга на координатной прямой произвольное. +# Формат выходных данных: +# Выведите, во сколько раз отрезок AB больше, чем отрезок CD. Ответ введите с точностью до 6-ти знаков после запятой. + diff --git a/Module10/practice/training/03_task_training.py b/Module10/practice/training/03_task_training.py new file mode 100644 index 000000000..d003ac7e0 --- /dev/null +++ b/Module10/practice/training/03_task_training.py @@ -0,0 +1,4 @@ +# С некоторого момента прошло некоторое количество дней. Сколько полных недель прошло с этого же момента? +# Формат входных данных: Вводится целое положительное число — количество прошедших дней. +# Формат выходных данных: Выведите целое число недель. + diff --git a/Module10/practice/training/04_task_training.py b/Module10/practice/training/04_task_training.py new file mode 100644 index 000000000..dffa16902 --- /dev/null +++ b/Module10/practice/training/04_task_training.py @@ -0,0 +1,4 @@ +# Одноклеточная амеба каждые 3 часа делится на 2 такие же амёбы. +# Необходимо определить, сколько будет амеб через n часов, если первоначально была только одна амёба. +# Формат входных данных: Вводится целое число n (3≤n≤90). +# Формат выходных данных: Требуется одно число — конечное число амеб. diff --git a/Module10/practice/training/05_task_training.py b/Module10/practice/training/05_task_training.py new file mode 100644 index 000000000..05a329b9d --- /dev/null +++ b/Module10/practice/training/05_task_training.py @@ -0,0 +1,27 @@ +# Чтобы поднять холодильник на N-й этаж M-этажного дома, Коля вызвал бригаду грузчиков. +# За подъем холодильника на один этаж требуется заплатить 200 рублей, за спуск на один этаж — 100 рублей. +# За подъем и спуск на лифте плата не взимается. +# Несмотря на то, что в Колином доме есть лифт, ему возможно все же придется заплатить грузчикам, +# поскольку лифт останавливается только на каждом K-м этаже, начиная с первого +# (то есть на этажах с номерами 1, K+1, 2K+1, 3K+1, …). +# Требуется вычислить, за какую минимальную сумму грузчики доставят холодильник с первого этажа на этаж Коли. + +# Формат входных данных +# Даны три числа, h - высота дома, f - этаж Коли и k - через сколько этажей останавливается лифт. +# M (2≤h≤100), N (2≤f≤M) и K (2≤k≤h–1). +# Формат выходных данных +# Выведите одно целое число - минимальную стоимость подъема + +# Примеры для самопроверки: +# Входные данные-1: +# 20 +# 7 +# 4 +# Выходные данные-1: +# 200 +# Входные данные-2: +# 20 +# 7 +# 2 +# Выходные данные-2: +# 0 diff --git a/Module10/practice/training/06_task_training.py b/Module10/practice/training/06_task_training.py new file mode 100644 index 000000000..b18617053 --- /dev/null +++ b/Module10/practice/training/06_task_training.py @@ -0,0 +1,7 @@ +# Во время проведения олимпиады каждый из участников получил свой идентификационный номер. +# Необходимо отсортировать список участников олимпиады по количеству набранных ими баллов. +# Формат входных данных: +# Для каждого участника олимпиады дается пара чисел: id-участника и количество набранных баллов. +# Формат выходных данных: +# Выведите исходный список в порядке убывания баллов. Если у некоторых участников одинаковые баллы, +# то их между собой нужно упорядочить в порядке возрастания идентификационного номера diff --git a/Module10/practice/training/07_task_training.py b/Module10/practice/training/07_task_training.py new file mode 100644 index 000000000..0d2e32bee --- /dev/null +++ b/Module10/practice/training/07_task_training.py @@ -0,0 +1 @@ +# Напишите программу генерирующую и записывающую в файле произвольное 20000-значное целое число. diff --git a/Module10/practice/training/08_task_training.py b/Module10/practice/training/08_task_training.py new file mode 100644 index 000000000..58ce2258c --- /dev/null +++ b/Module10/practice/training/08_task_training.py @@ -0,0 +1,4 @@ +# Прочитав число из файла задачи 7, определите: +# Какие цифры встречаются в числе чаще всего? +# Если несколько цифр встречаются одинаковое максимальное кол-во раз - найди любые. +# Является ли данное число(20000-значное) четным? diff --git a/Module10/practice/training/09_task_training.py b/Module10/practice/training/09_task_training.py new file mode 100644 index 000000000..a46ad150e --- /dev/null +++ b/Module10/practice/training/09_task_training.py @@ -0,0 +1,3 @@ +# Напишите функцию принимающую на вход целое числом n. И возвращающую список из n элементов. +# заполненный случайными целыми числами в диапазоне от a до b. +# Примечание: для генерации случайного числа используйте import random diff --git a/Module10/practice/training/10_task_training.py b/Module10/practice/training/10_task_training.py new file mode 100644 index 000000000..c960bd208 --- /dev/null +++ b/Module10/practice/training/10_task_training.py @@ -0,0 +1,5 @@ +# Напишите функцию принимающую на вход целое числом n. И возвращающую список из n элементов. +# заполненный случайными целыми числами в диапазоне от a до b. +# Примечание: все элементы списка должны быть гарантировано уникальными(неповторяющимися) +# Если создать список с заданными параметрами невозможно - функция должна выбросить ислючение + diff --git a/Modulr9/examples/1_rstring.py b/Module9/examples/1_rstring.py similarity index 100% rename from Modulr9/examples/1_rstring.py rename to Module9/examples/1_rstring.py diff --git a/Modulr9/examples/2_regexp.py b/Module9/examples/2_regexp.py similarity index 100% rename from Modulr9/examples/2_regexp.py rename to Module9/examples/2_regexp.py diff --git a/Modulr9/practice/tasks.md b/Module9/practice/tasks.md similarity index 100% rename from Modulr9/practice/tasks.md rename to Module9/practice/tasks.md From 58f9452abc65fc78e9beaa80931190c25c370935 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Fri, 29 Jan 2021 17:34:55 +0300 Subject: [PATCH 24/38] Add algo-tasks to Module-10 --- Module10/practice/algo/01_task_algo.py | 6 ++++++ Module10/practice/algo/02_task_algo.py | 9 +++++++++ Module10/practice/algo/03_task_algo.py | 10 ++++++++++ Module10/practice/algo/04_task_algo.py | 22 ++++++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 Module10/practice/algo/01_task_algo.py create mode 100644 Module10/practice/algo/02_task_algo.py create mode 100644 Module10/practice/algo/03_task_algo.py create mode 100644 Module10/practice/algo/04_task_algo.py diff --git a/Module10/practice/algo/01_task_algo.py b/Module10/practice/algo/01_task_algo.py new file mode 100644 index 000000000..4263ae6ed --- /dev/null +++ b/Module10/practice/algo/01_task_algo.py @@ -0,0 +1,6 @@ +# "Карточки" +# Для настольной игры используются карточки с номерами от 1 до N. Одна карточка потерялась. +# Найдите ее, зная номера оставшихся карточек. +# Вводится число N, далее еще N − 1 чисел: номера оставшихся карточек (различные числа от 1 до N). +# Программа должна вывести номер потерянной карточки. + diff --git a/Module10/practice/algo/02_task_algo.py b/Module10/practice/algo/02_task_algo.py new file mode 100644 index 000000000..342061b51 --- /dev/null +++ b/Module10/practice/algo/02_task_algo.py @@ -0,0 +1,9 @@ +# Игра “Компьютер угадывает число” +# Пользователь загадывает число между 1 и 100 (включительно). +# Компьютер может спросить у него “Твое число равно, меньше или больше чем число N?”, +# где N - число, которое хочет проверить компьютер. +# Пользователь отвечает одним из трех чисел: 1 - равно, 2 - больше, 3 - меньше +# Напишите программу, которая с помощью цепочки таких вопросов и ответов пользователя угадывает число + +# Дополнительно: сделайте так, чтобы можно было гарантированно угадать число за 7 попыток. + diff --git a/Module10/practice/algo/03_task_algo.py b/Module10/practice/algo/03_task_algo.py new file mode 100644 index 000000000..1f9aafd8d --- /dev/null +++ b/Module10/practice/algo/03_task_algo.py @@ -0,0 +1,10 @@ +# "Кинотеатр" +# X мальчиков и Y девочек пошли в кинотеатр и купили билеты на подряд идущие места в одном ряду. +# Напишите программу, которая выдаст, как нужно сесть мальчикам и девочкам, чтобы рядом с каждым мальчиком +# сидела хотя бы одна девочка, а рядом с каждой девочкой — хотя бы один мальчик. +# +# На вход подаются два числа - кол-во мальчиков X и кол-во девочек Y. +# В ответе выведите какую-нибудь строку, в которой будет ровно X символов “B” (обозначающих мальчиков) +# и Y символов “G” (обозначающих девочек), удовлетворяющую условию задачи. Пробелы между символами выводить не нужно. +# Если рассадить мальчиков и девочек согласно условию задачи невозможно, выведите строку “Нет решения”. + diff --git a/Module10/practice/algo/04_task_algo.py b/Module10/practice/algo/04_task_algo.py new file mode 100644 index 000000000..bfd2845a1 --- /dev/null +++ b/Module10/practice/algo/04_task_algo.py @@ -0,0 +1,22 @@ +# "Шифровка" +# Секретное агентство «Super-Secret-no» решило +# для шифрования переписки своих сотрудников использовать «метод бутерброда». +# Сначала буквы слова нумеруются в таком порядке: +# первая буква получает номер 1, +# последняя буква - номер 2, +# вторая – номер 3, +# предпоследняя – номер 4, потом третья … и так для всех букв (см. рисунок). +# Затем все буквы записываются в шифр в порядке своих номеров. +# +# Например, слово «sandwich» зашифруется в «shacnidw». +# +# К сожалению, программист «Super-Secret-no», написал только программу шифрования и уволился. +# И теперь агенты не могут понять, что же они написали друг другу. Помогите им. +# +# Пример: +# Введите зашифрованное сообщение: shacnidw +# Расшифрованное сообщение: sandwich +# 1 3 5 7 8 6 4 2 +# Слово: | s | a | n | d | w | i | c | h | +# +# Шифр: | s | h | a | c | n | i | d | w | From 6626615cee554f246c802b8829edd4959ea4138c Mon Sep 17 00:00:00 2001 From: boo-learn Date: Fri, 29 Jan 2021 17:39:22 +0300 Subject: [PATCH 25/38] Add func-tasks to Module-10 --- Module10/practice/funcs/01_task_funcfib.py | 6 ++++++ Module10/practice/funcs/02_task_funcfact.py | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100644 Module10/practice/funcs/01_task_funcfib.py create mode 100644 Module10/practice/funcs/02_task_funcfact.py diff --git a/Module10/practice/funcs/01_task_funcfib.py b/Module10/practice/funcs/01_task_funcfib.py new file mode 100644 index 000000000..86f49d7d8 --- /dev/null +++ b/Module10/practice/funcs/01_task_funcfib.py @@ -0,0 +1,6 @@ +# Напишите функцию нахождения n-ого числа Фибоначчи +# Пример ряда чисел Фибоначчи: 0 1 1 2 3 5 8 13 ... +# (сумма элемента равна сумме двух предыдущих) + +def fib(n): + pass \ No newline at end of file diff --git a/Module10/practice/funcs/02_task_funcfact.py b/Module10/practice/funcs/02_task_funcfact.py new file mode 100644 index 000000000..999cf7a44 --- /dev/null +++ b/Module10/practice/funcs/02_task_funcfact.py @@ -0,0 +1,7 @@ +# Напишите функцию нахождения факториала числа n +# Примеры нахождения факториала: +# 5! = 1*2*3*4*5 +# 7! = 1*2*3*4*5*6*7 + +def factorial(n): + pass \ No newline at end of file From 9957d87eaa7c2c9a1581dd6c93b760cd1bb98c5b Mon Sep 17 00:00:00 2001 From: boo-learn Date: Fri, 29 Jan 2021 17:54:02 +0300 Subject: [PATCH 26/38] Add @clock to Module-10 --- Module10/practice/funcs/decor_clock.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Module10/practice/funcs/decor_clock.py diff --git a/Module10/practice/funcs/decor_clock.py b/Module10/practice/funcs/decor_clock.py new file mode 100644 index 000000000..21e46ff8d --- /dev/null +++ b/Module10/practice/funcs/decor_clock.py @@ -0,0 +1,19 @@ +def clock(func): + def clocked(*args, **kwargs): + import time + t0 = time.time() + + result = func(*args, **kwargs) # вызов декорированной функции + + elapsed = time.time() - t0 + name = func.__name__ + arg_1st = [] + if args: + arg_1st.append(', '.join(repr(arg) for arg in args)) + if kwargs: + pairs = ['%s=%r' % (k, w) for k, w in sorted(kwargs.items())] + arg_1st.append(', '.join(pairs)) + arg_str = ', '.join(arg_1st) + print('[%0.8fs] %s(%s) -> %r' % (elapsed, name, arg_str, result)) + return result + return clocked \ No newline at end of file From c5a5eefed9f7bdc9924feeddfaa1f0deb1e96f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Thu, 18 Mar 2021 12:02:23 +0300 Subject: [PATCH 27/38] Update 08_task_tuple.py --- Module3/practice/list_and_tuple/08_task_tuple.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Module3/practice/list_and_tuple/08_task_tuple.py b/Module3/practice/list_and_tuple/08_task_tuple.py index 666a76e3b..fff512227 100644 --- a/Module3/practice/list_and_tuple/08_task_tuple.py +++ b/Module3/practice/list_and_tuple/08_task_tuple.py @@ -1,5 +1,5 @@ -# Даны примеры создания кортежев. -# Выясните, какие из них являются корретными. +# Даны примеры создания кортежей. +# Выясните, какие из них являются корректными. # Все некорректные объявления и создающие не котрежи закомментируйте (#) tup1 = (2, 4, -6) tup2 = (2, "Василия", -6) @@ -12,4 +12,4 @@ tup9 = tuple() tup10 = tuple("hello") tup11 = () -tup12 = 2 and 4 \ No newline at end of file +tup12 = 2 and 4 From e2c31bf66035dfc459b29b7c0cca73dcf9f3f7bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Fri, 16 Apr 2021 15:02:14 +0300 Subject: [PATCH 28/38] Update 05_task_training.py --- Module10/practice/training/05_task_training.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Module10/practice/training/05_task_training.py b/Module10/practice/training/05_task_training.py index 05a329b9d..b6d0d4091 100644 --- a/Module10/practice/training/05_task_training.py +++ b/Module10/practice/training/05_task_training.py @@ -1,4 +1,4 @@ -# Чтобы поднять холодильник на N-й этаж M-этажного дома, Коля вызвал бригаду грузчиков. +# Чтобы поднять холодильник на n-й этаж H-этажного дома, Коля вызвал бригаду грузчиков. # За подъем холодильника на один этаж требуется заплатить 200 рублей, за спуск на один этаж — 100 рублей. # За подъем и спуск на лифте плата не взимается. # Несмотря на то, что в Колином доме есть лифт, ему возможно все же придется заплатить грузчикам, @@ -7,8 +7,8 @@ # Требуется вычислить, за какую минимальную сумму грузчики доставят холодильник с первого этажа на этаж Коли. # Формат входных данных -# Даны три числа, h - высота дома, f - этаж Коли и k - через сколько этажей останавливается лифт. -# M (2≤h≤100), N (2≤f≤M) и K (2≤k≤h–1). +# Даны три числа, H - высота дома, N - этаж Коли и k - через сколько этажей останавливается лифт. +# H (2≤h≤100), n (2≤n≤H) и K (2≤k≤H–1). # Формат выходных данных # Выведите одно целое число - минимальную стоимость подъема From 16aaa9286573c45dfa60c0f75d7acf05018a4a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Fri, 16 Apr 2021 15:03:10 +0300 Subject: [PATCH 29/38] Update 05_task_training.py --- Module10/practice/training/05_task_training.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Module10/practice/training/05_task_training.py b/Module10/practice/training/05_task_training.py index b6d0d4091..4352e1023 100644 --- a/Module10/practice/training/05_task_training.py +++ b/Module10/practice/training/05_task_training.py @@ -8,7 +8,7 @@ # Формат входных данных # Даны три числа, H - высота дома, N - этаж Коли и k - через сколько этажей останавливается лифт. -# H (2≤h≤100), n (2≤n≤H) и K (2≤k≤H–1). +# H (2≤H≤100), n (2≤n≤H) и K (2≤k≤H–1). # Формат выходных данных # Выведите одно целое число - минимальную стоимость подъема From 0825c3c47540fc8f51cfdcc7021cc21439f5c7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Thu, 6 May 2021 06:08:25 -0700 Subject: [PATCH 30/38] README.md updated from https://stackedit.io/ --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5bb0aae4f..5f6bdc37d 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ ### Модуль 8: Продвинутые инструменты 1. Оператор is -1. Функциции как аргументы. Функции - объекты первого порядка +1. Функции как аргументы. Функции - объекты первого порядка 1. Декораторы 1. Генераторы списков и словарей @@ -60,3 +60,6 @@ 1. Понятие о регулярном выражении 1. Синтаксис регулярных выражений 1. Применение регулярных выражений + \ No newline at end of file From d54e5bc17b51659b37cbdf52050da8c4dedf3ec6 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Tue, 13 Jul 2021 15:43:25 +0300 Subject: [PATCH 31/38] improved Module-6 --- .gitignore | 4 +++ Module6/examples/1_os_.py | 18 ----------- Module6/examples/1_read_file.py | 27 ++++++++++++++++ Module6/examples/2_file.py | 30 ------------------ Module6/examples/2_write_file.py | 19 +++++++++++ Module6/examples/3_with_file.py | 13 ++++++++ .../{3_file_json.py => 4_file_json.py} | 9 +++--- .../{4_file_pickle.py => 5_file_pickle.py} | 0 Module6/examples/files/{data => data.txt} | 0 Module6/examples/files/data_bin | Bin 17 -> 0 bytes Module6/examples/files/data_write | 1 - Module6/examples/files/data_write.txt | 5 +++ Module6/examples/files/numbers.txt | 7 ++++ Module6/examples/files/save_json_data | 1 - Module6/examples/files/save_json_data.json | 1 - Module6/examples/files/text.txt | 9 ------ Module6/practice/files/01_task_file.py | 17 ++++++++-- Module6/practice/files/02_task_file.py | 9 ++++++ Module6/practice/files/03_task_file.py | 12 +++---- Module6/practice/files/04_task_file.py | 6 ++-- Module6/practice/files/05_task_file.py | 13 +++++--- Module6/practice/files/06_task_file(hard).py | 5 +++ Module6/practice/files/data/salaries.txt | 9 ++++++ Module6/practice/files/data/sold.txt | 4 +-- 24 files changed, 136 insertions(+), 83 deletions(-) delete mode 100644 Module6/examples/1_os_.py create mode 100644 Module6/examples/1_read_file.py delete mode 100644 Module6/examples/2_file.py create mode 100644 Module6/examples/2_write_file.py create mode 100644 Module6/examples/3_with_file.py rename Module6/examples/{3_file_json.py => 4_file_json.py} (81%) rename Module6/examples/{4_file_pickle.py => 5_file_pickle.py} (100%) rename Module6/examples/files/{data => data.txt} (100%) delete mode 100644 Module6/examples/files/data_bin delete mode 100644 Module6/examples/files/data_write create mode 100644 Module6/examples/files/data_write.txt create mode 100644 Module6/examples/files/numbers.txt delete mode 100644 Module6/examples/files/save_json_data delete mode 100644 Module6/examples/files/save_json_data.json delete mode 100644 Module6/examples/files/text.txt create mode 100644 Module6/practice/files/06_task_file(hard).py create mode 100644 Module6/practice/files/data/salaries.txt diff --git a/.gitignore b/.gitignore index 6d13ccc88..10253d0b3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,12 @@ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 +# создаваемы файлы в задачах: +save_json_data.json + # User-specific stuff .idea +tmp/ # CMake cmake-build-*/ diff --git a/Module6/examples/1_os_.py b/Module6/examples/1_os_.py deleted file mode 100644 index a6288040a..000000000 --- a/Module6/examples/1_os_.py +++ /dev/null @@ -1,18 +0,0 @@ -import os -print('os.name = ', os.name) -print('os.environ = ', os.environ) -print('os.getcwd() = ', os.getcwd()) - -files = os.listdir(path=os.getcwd()) -print(files) - -print("current dir = ", os.path.dirname(__file__)) -print("current dir = ", os.getcwd()) - -# Создаем новую директорию -dir_path = os.path.join(os.getcwd(), 'NewDir') -print(dir_path) -try: - os.mkdir(dir_path) -except FileExistsError: - print('Такая директория уже существует') diff --git a/Module6/examples/1_read_file.py b/Module6/examples/1_read_file.py new file mode 100644 index 000000000..06cc7b43d --- /dev/null +++ b/Module6/examples/1_read_file.py @@ -0,0 +1,27 @@ +# Открываем файл на чтение. "r" - read(чтение) +# encoding - кодировка файла +# files - имя директории(данная директория должна находиться в той же директории, что и текущий файл) +# data.txt - имя файла +f = open("files/data.txt", "r", encoding="UTF-8") + +# Через переменную f выполняем операции с файлом +# .readline() - считывает одну строку из файла +line = f.readline() +print("first line in file:", line) + +# По файлу можно итерировать, считывая строку за строкой, пока файл не закончится +# Перед выводом строку(line) оборачиваем в функцию repr() чтобы увидеть нечитаемые символы. Видим наличия /n в строке +print("Выводим содержимое файла без первой строки, т.к. первую строку мы считали ранее методом readline():") +for line in f: + print("next line:", repr(line)) + +# Перемещаем указатель на чтение в начало файла, чтобы снова прочитать содержимое файла +f.seek(0) + +# Повторно читаем файл построчно. Метод rstrip() удаляет пробельные символы справа у строки. +print("\nВыводим содержимое файла, удалив символы переноса строки:") +for line in f: + print("next line:", line.rstrip()) + +# По окончании работы с файлом - закрываем его. +f.close() diff --git a/Module6/examples/2_file.py b/Module6/examples/2_file.py deleted file mode 100644 index c0e3a0499..000000000 --- a/Module6/examples/2_file.py +++ /dev/null @@ -1,30 +0,0 @@ -# ================================= -# Работа с файлами -# ================================= -import os - -path = 'files/text.txt' # не самый хороший способ задания пути -path = os.path.join('files', 'text.txt') # хороший кроссплатформенный метод указания пути - -f = open(path, 'r', encoding='UTF-8') -print(f.readlines()) # Считываем всю информацию из файла в виде списка строк -f.close() - -# Наиболее правильный способ работы с файлами -# По окончанию инструкции with файл гарантированно будет закрыт, даже если произойдет ошибка -with open(path, 'r', encoding='UTF-8') as f: - print(f.readlines()) - -DIR = 'files' - -wanted_symbol = "@" -# wanted_symbol = "+" # раскомментируйте, чтобы посмотреть как работает, если не найдено то, что искали -with open(os.path.join(DIR, 'data'), 'r', encoding='UTF-8') as f: - for line in f: # считываем файл построчно - if wanted_symbol in line: # пока не найдем нужную информацию - print(line) - break # как нашли, заканчиваем чтение файла - else: - print("Искомая информация в файле '%s' не найдена" % f.name) - # Файл будет автоматически закрыт по окончанию инструкции with - diff --git a/Module6/examples/2_write_file.py b/Module6/examples/2_write_file.py new file mode 100644 index 000000000..73caa2d52 --- /dev/null +++ b/Module6/examples/2_write_file.py @@ -0,0 +1,19 @@ +# Открываем файл на запись. "w" - write(запись) +# encoding - кодировка файла +f = open("files/data_write.txt", "w", encoding="UTF-8") +# Важно: открытие несуществующего файла на запист - создает его, а существующего - очищает его содержимое + +# Через переменную f выполняем операции с файлом +# .readline() - считывает одну строку из файла +f.write("Строка такста!\n") # символ переноса строки(\n) нужно записывать явно + +# Если нужно записать, например числа из списка в файл: +items_cost = [123.5, 1242.45, 362, 4562.0] + +for cost in items_cost: + # Преобразовываем значения списка к строке + cost_str = str(cost) + '\n' + # Записываем в файл + f.write(cost_str) +# По окончании работы с файлом - закрываем его. +f.close() diff --git a/Module6/examples/3_with_file.py b/Module6/examples/3_with_file.py new file mode 100644 index 000000000..ed2489d78 --- /dev/null +++ b/Module6/examples/3_with_file.py @@ -0,0 +1,13 @@ +import os + +path = 'files/numbers.txt' # не самый хороший способ задания пути +path = os.path.join('files', 'numbers.txt') # хороший кроссплатформенный метод указания пути + +# Наиболее правильный способ работы с файлами - использовать контекстный менеджер with +# По окончанию инструкции with файл гарантированно будет закрыт, даже если произойдет ошибка +with open(path, 'r', encoding='UTF-8') as f: + # Находим сумму всех числе в файле + s = 0 + for line in f: + s += int(line) +print(s) diff --git a/Module6/examples/3_file_json.py b/Module6/examples/4_file_json.py similarity index 81% rename from Module6/examples/3_file_json.py rename to Module6/examples/4_file_json.py index 305a9ac8c..2cb12e909 100644 --- a/Module6/examples/3_file_json.py +++ b/Module6/examples/4_file_json.py @@ -5,16 +5,17 @@ python_data = [{"name": 'Петр', 'age': 10}, {"name": 'Александр', 'age': 8}] # Записываем объект Python в файл в виде JSON -with open(os.path.join(DIR, 'save_json_data.json'), 'w', encoding='UTF-8', ) as f: +path = os.path.join(DIR, 'save_json_data.json') +with open(path, 'w', encoding='UTF-8', ) as f: json.dump(python_data, f, ensure_ascii=False) # ensure_ascii=False - чтобы некирилические символы не были преобразованы к unicode-последовательности # Читаем JSON из файла и преобразуем к типу Python -with open(os.path.join(DIR, 'save_json_data.json'), 'r', encoding='UTF-8') as f: +with open(path, 'r', encoding='UTF-8') as f: read_data = json.load(f) -print(read_data) -print(read_data[0]) +print("type = ", type(read_data)) +print("data = ", read_data) # Плюсы: Легко читаемая и редактируемая информация в файле # JSON можно передавать различным программам на других языках diff --git a/Module6/examples/4_file_pickle.py b/Module6/examples/5_file_pickle.py similarity index 100% rename from Module6/examples/4_file_pickle.py rename to Module6/examples/5_file_pickle.py diff --git a/Module6/examples/files/data b/Module6/examples/files/data.txt similarity index 100% rename from Module6/examples/files/data rename to Module6/examples/files/data.txt diff --git a/Module6/examples/files/data_bin b/Module6/examples/files/data_bin deleted file mode 100644 index 7d9d51e8368f4b9dbc240fe084053da8a8f4fccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 YcmZo*jxA)+@Kx~h6;StmpqHu#04LN0rvLx| diff --git a/Module6/examples/files/data_write b/Module6/examples/files/data_write deleted file mode 100644 index 7346fb196..000000000 --- a/Module6/examples/files/data_write +++ /dev/null @@ -1 +0,0 @@ -[20000, 10000, 12000] \ No newline at end of file diff --git a/Module6/examples/files/data_write.txt b/Module6/examples/files/data_write.txt new file mode 100644 index 000000000..e6a333be7 --- /dev/null +++ b/Module6/examples/files/data_write.txt @@ -0,0 +1,5 @@ +Строка такста! +123.5 +1242.45 +362 +4562.0 diff --git a/Module6/examples/files/numbers.txt b/Module6/examples/files/numbers.txt new file mode 100644 index 000000000..69999633a --- /dev/null +++ b/Module6/examples/files/numbers.txt @@ -0,0 +1,7 @@ +12 +45 +53 +22 +-52 +35 +-12 \ No newline at end of file diff --git a/Module6/examples/files/save_json_data b/Module6/examples/files/save_json_data deleted file mode 100644 index d83fbbf9d..000000000 --- a/Module6/examples/files/save_json_data +++ /dev/null @@ -1 +0,0 @@ -[{"name": "Петр", "age": \ No newline at end of file diff --git a/Module6/examples/files/save_json_data.json b/Module6/examples/files/save_json_data.json deleted file mode 100644 index 675c47cfd..000000000 --- a/Module6/examples/files/save_json_data.json +++ /dev/null @@ -1 +0,0 @@ -[{"name": "Петр", "age": 10}, {"name": "Александр", "age": 8}] \ No newline at end of file diff --git a/Module6/examples/files/text.txt b/Module6/examples/files/text.txt deleted file mode 100644 index faf81cfe8..000000000 --- a/Module6/examples/files/text.txt +++ /dev/null @@ -1,9 +0,0 @@ -Творческая работа - -Тема: «Поэтический параллакс в XXI веке» - -Представляется логичным, что газопылевое облако не критично. Первое полустишие, несмотря на внешние воздействия, растягивает годовой параллакс в полном соответствии с законом Дарси. Маятник Фуко неограничен сверху. Не факт, что журавчик теоретически возможен. Все известные астероиды имеют прямое движение, при этом механизм сочленений изящно представляет собой глубокий эксикатор, а оценить проницательную способность вашего телескопа поможет следующая формула: Mпр.= 2,5lg Dмм + 2,5lg Гкрат + 4. - -Интеграл от функции комплексной переменной просветляет апогей, при этом, вместо 13 можно взять любую другую константу. Глей прочно колеблет капилляр – у таких объектов рукава столь фрагментарны и обрывочны, что их уже нельзя назвать спиральными. Очевидно проверяется, что аффилиация категорически отражает бур, хотя по данному примеру нельзя судить об авторских оценках. Критерий интегрируемости слабопроницаем. Растрескивание пространственно растворяет пирогенный параметр, хотя по данному примеру нельзя судить об авторских оценках. - -В первом приближении магнитное поле поразительно. Теорема оценивает центральный денситомер, причём сам Тредиаковский свои стихи мыслил как “стихотворное дополнение” к книге Тальмана. Холодный цинизм, по определению проецирует хорей, хотя это явно видно на фотогpафической пластинке, полученной с помощью 1.2-метpового телескопа. Познание текста привлекает интеграл Фурье, об этом свидетельствуют краткость и завершенность формы, бессюжетность, своеобразие тематического развертывания. Скелетана методологически нейтрализует космический разрез, первым образцом которого принято считать книгу А.Бертрана "Гаспар из тьмы". Многие кометы имеют два хвоста, однако женщина-космонавт изоморфна. \ No newline at end of file diff --git a/Module6/practice/files/01_task_file.py b/Module6/practice/files/01_task_file.py index b4d611a0c..bba63c43c 100644 --- a/Module6/practice/files/01_task_file.py +++ b/Module6/practice/files/01_task_file.py @@ -1,6 +1,19 @@ # Дан файл data/limericks.txt с лимериками(короткими стихотворениями) # 1. Выведите содержимое файла в консоль -# 2. Узнайте количество непробельный символов в данном файле +# 2. Узнайте количество непробельный символов в данном файле. +# Пробельные символы: " " - пробел, "\n" - перенос строки, "\t" - табуляция # 3. Узнайте количество стихотворений, если известно, -# что каждое стихотворение отделяется пустой строкой от предыдущего +# что каждое стихотворение отделяется ровно одной пустой строкой от предыдущего и после последнего нет пустой строки + +path = "dir/limericks.txt" # вместо dir подставь название папки с файлом. +# Или удалите dir, если limericks.txt в тойже папке что и текущий файл + +# Открываем файл на чтение +f = open(path, "r") +# В переменную line считываем строку за стройкой из файла(f) +for line in f: + ... + +# Подсказка: пустые строки выглядят так "\n". Помните? Строка считывается вместе с символом переноса! +# Применение метода "\n".rstrip() --> "" вернет вам пустую строку, строку из НУЛЯ символов. diff --git a/Module6/practice/files/02_task_file.py b/Module6/practice/files/02_task_file.py index 33971019f..80c853fa8 100644 --- a/Module6/practice/files/02_task_file.py +++ b/Module6/practice/files/02_task_file.py @@ -1,6 +1,15 @@ # Кассовый аппарат пишет цены всех проданных товаров в текстовый файл, наименование проданных товаров не имеет значение. # По окончанию рабочего дня имеем файл data/sold.txt. +# Формат файла: Цены товаров представлены целыми или вещественными числами. +# Цены разделены одним или более пробельными символами. # Узнайте: # 1. На какую сумму было продано товаров # 2. Цену самого дорогого товара # 3. Цену самого дешевого товара + +# Совет: сначала считайте все цены из файла, сохраните в список, +# преобразовав каждую цену к числу(цены в файле хранятся в виде строк) +# А затем, работам с привычным списком, выполните задания +prices = [] + +# Подсказка: для преобразования строки в список вспомните про метод строки .split() diff --git a/Module6/practice/files/03_task_file.py b/Module6/practice/files/03_task_file.py index 97b4859e4..6253872e5 100644 --- a/Module6/practice/files/03_task_file.py +++ b/Module6/practice/files/03_task_file.py @@ -1,8 +1,4 @@ -# Кассовый аппарат был доработан, теперь он пишет не только цены, но и тип проданных товаров. -# Файл data/items_sold.txt - продажи всех товаров за день. -# Каждая строка файла - покупка одного покупателя. -# Узнайте: -# 1. Какова общая выручка магазина -# 2. Какова выручка магазина по каждому типу товаров -# 3. Какой тип товара был продан на самую большую сумму -# 4. Сколько различных типов товаров было продано за день +# В файлк salaries.txt даны зарплаты сотрудников + +# Задача: выведите всех сотрудников в файл highly_paid.txt, зарплаты которых превышают 60000 +# Сотружников вывести в формате: Фамилия И.О. ,например: Иванов И.П. (зарплаты в файл не записывать) diff --git a/Module6/practice/files/04_task_file.py b/Module6/practice/files/04_task_file.py index 5b7116edf..8f4f41707 100644 --- a/Module6/practice/files/04_task_file.py +++ b/Module6/practice/files/04_task_file.py @@ -3,9 +3,11 @@ # Т.е. в одном файле будут все фрукты на букву “А”, во втором на “Б” и т.д. # Файлы назвать соответственно. # Пример имен файлов: fruits_А.txt, fruits_Б.txt, fruits_В.txt …. -# Важно! Обратите внимание, что нет фруктов, начинающихся с некоторых букв. +# Важно! Обратите внимание, что нет фруктов, начинающихся с некоторых букв, +# а также есть пустые строки, которые нужно пропустить. # Напишите универсальный код, который будет работать с любым списком фруктов и # распределять по файлам в зависимости от первых букв, имеющихся в списке фруктов. -# Подсказка: + +# Возможно пригодится: # Чтобы получить список больших букв русского алфавита: # print(list(map(chr, range(ord('А'), ord('Я')+1)))) diff --git a/Module6/practice/files/05_task_file.py b/Module6/practice/files/05_task_file.py index 3d2748719..97b4859e4 100644 --- a/Module6/practice/files/05_task_file.py +++ b/Module6/practice/files/05_task_file.py @@ -1,5 +1,8 @@ -# Дана ведомость расчета заработной платы (файл "data/workers"). -# Рассчитайте зарплату всех работников, зная что они получат полный оклад, -# если отработают норму часов. Если же они отработали меньше нормы, то их ЗП уменьшается пропорционально, -# а за каждый час переработки они получают удвоенную ЗП, пропорциональную норме. -# Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" +# Кассовый аппарат был доработан, теперь он пишет не только цены, но и тип проданных товаров. +# Файл data/items_sold.txt - продажи всех товаров за день. +# Каждая строка файла - покупка одного покупателя. +# Узнайте: +# 1. Какова общая выручка магазина +# 2. Какова выручка магазина по каждому типу товаров +# 3. Какой тип товара был продан на самую большую сумму +# 4. Сколько различных типов товаров было продано за день diff --git a/Module6/practice/files/06_task_file(hard).py b/Module6/practice/files/06_task_file(hard).py new file mode 100644 index 000000000..3d2748719 --- /dev/null +++ b/Module6/practice/files/06_task_file(hard).py @@ -0,0 +1,5 @@ +# Дана ведомость расчета заработной платы (файл "data/workers"). +# Рассчитайте зарплату всех работников, зная что они получат полный оклад, +# если отработают норму часов. Если же они отработали меньше нормы, то их ЗП уменьшается пропорционально, +# а за каждый час переработки они получают удвоенную ЗП, пропорциональную норме. +# Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" diff --git a/Module6/practice/files/data/salaries.txt b/Module6/practice/files/data/salaries.txt new file mode 100644 index 000000000..b1241249e --- /dev/null +++ b/Module6/practice/files/data/salaries.txt @@ -0,0 +1,9 @@ +Фамилия Имя Отчество Зарплата +Иванов Иван Петрович 45600 +Дмитриев Николай Алексеевич 64500 +Смирнова Ольга Ивановна 57000 +Керченских Виктор Олегович 125700 +Котов Дмитрий Юрьевич 26300 +Бирюкова Нина Алексеевна 89470 +Данилов Петр Никифорович 123500 +Олегова Ксения Петровна 89400 \ No newline at end of file diff --git a/Module6/practice/files/data/sold.txt b/Module6/practice/files/data/sold.txt index 5b9274aae..426aefb0b 100644 --- a/Module6/practice/files/data/sold.txt +++ b/Module6/practice/files/data/sold.txt @@ -1,2 +1,2 @@ -23.45 123 17.45 200 221.10 265.0 -78.4 167 24.98 764.14 100 \ No newline at end of file +23.45 123 17.45 200 221.10 265.0 +78.4 167 24.98 764.14 100 \ No newline at end of file From 81bf88f03882aa262ecd5001a9db7935da0ba8b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Thu, 15 Jul 2021 19:07:38 +0300 Subject: [PATCH 32/38] Update 01_task_struct.py --- Module8/practice/structs/01_task_struct.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Module8/practice/structs/01_task_struct.py b/Module8/practice/structs/01_task_struct.py index 950b15aec..e2d407d67 100644 --- a/Module8/practice/structs/01_task_struct.py +++ b/Module8/practice/structs/01_task_struct.py @@ -1,3 +1,3 @@ -# Бегун проводил ежедневные тренировки и записывал расстояния которые пробел за занятия в метрах: +# Бегун проводил ежедневные тренировки и записывал расстояния которые пробегал за занятия в метрах: distances = [600, 755, 321.6, 1234, 231, 456.6, 4561, 1200, 456] # Переведите все значения в футы (получить и вывести новый список) From 734333128922c495fc8560f61cffc577b7028edf Mon Sep 17 00:00:00 2001 From: boo-learn Date: Fri, 16 Jul 2021 16:10:25 +0300 Subject: [PATCH 33/38] Mod Module-9 Fix Module-10 --- .../01_task_result.py} | 2 + .../02_task_result.py} | 2 +- .../03_task_result.py} | 2 + .../04_task_result.py} | 2 +- .../05_task_result.py} | 0 .../06_task_result.py} | 0 .../07_task_result.py} | 0 .../08_task_result.py} | 2 +- .../09_task_result.py} | 0 .../10_task_result.py} | 2 +- Module9/practice/regexp/01_task_regexp.py | 9 ++++ Module9/practice/regexp/02_task_regexp.py | 10 ++++ Module9/practice/regexp/03_task_regexp.py | 7 +++ Module9/practice/regexp/04_task_regexp.py | 4 ++ Module9/practice/tasks.md | 3 -- Module9/practice/trening/00_tasks.md | 50 +++++++++++++++++++ 16 files changed, 88 insertions(+), 7 deletions(-) rename Module10/practice/{training/01_task_training.py => result/01_task_result.py} (63%) rename Module10/practice/{training/02_task_training.py => result/02_task_result.py} (86%) rename Module10/practice/{training/03_task_training.py => result/03_task_result.py} (79%) rename Module10/practice/{training/04_task_training.py => result/04_task_result.py} (90%) rename Module10/practice/{training/05_task_training.py => result/05_task_result.py} (100%) rename Module10/practice/{training/06_task_training.py => result/06_task_result.py} (100%) rename Module10/practice/{training/07_task_training.py => result/07_task_result.py} (100%) rename Module10/practice/{training/08_task_training.py => result/08_task_result.py} (93%) rename Module10/practice/{training/09_task_training.py => result/09_task_result.py} (100%) rename Module10/practice/{training/10_task_training.py => result/10_task_result.py} (90%) create mode 100644 Module9/practice/regexp/01_task_regexp.py create mode 100644 Module9/practice/regexp/02_task_regexp.py create mode 100644 Module9/practice/regexp/03_task_regexp.py create mode 100644 Module9/practice/regexp/04_task_regexp.py delete mode 100644 Module9/practice/tasks.md create mode 100644 Module9/practice/trening/00_tasks.md diff --git a/Module10/practice/training/01_task_training.py b/Module10/practice/result/01_task_result.py similarity index 63% rename from Module10/practice/training/01_task_training.py rename to Module10/practice/result/01_task_result.py index 54dc82a78..932a3c3aa 100644 --- a/Module10/practice/training/01_task_training.py +++ b/Module10/practice/result/01_task_result.py @@ -1,4 +1,6 @@ # Напишите программу, вычисляющую площадь всех граней и объем прямоугольного параллелепипеда. +# Формат входных данных: даны три целые числа - ширина, высота и длина параллелепипеда. +# Формат выходных данных: вывести площадь всех граней и объем фигуры # Важно! # Оформите решение так, что работа с вашей программой была удобна пользователю. diff --git a/Module10/practice/training/02_task_training.py b/Module10/practice/result/02_task_result.py similarity index 86% rename from Module10/practice/training/02_task_training.py rename to Module10/practice/result/02_task_result.py index d673c0780..7e554211f 100644 --- a/Module10/practice/training/02_task_training.py +++ b/Module10/practice/result/02_task_result.py @@ -1,5 +1,5 @@ # На числовой прямой расположены точки A, B, C и D. -# Напишите программу, которая выведет, во сколько раз отрезок AB больше, чем отрезок CD. +# Напишите программу, которая выведет, во сколько раз отрезок AB больше или меньше, чем отрезок CD. # Формат входных данных: # На вход программе подается четыре целых числа A, B, C и D. # Расположение точек относительно друг друга на координатной прямой произвольное. diff --git a/Module10/practice/training/03_task_training.py b/Module10/practice/result/03_task_result.py similarity index 79% rename from Module10/practice/training/03_task_training.py rename to Module10/practice/result/03_task_result.py index d003ac7e0..1b4688a75 100644 --- a/Module10/practice/training/03_task_training.py +++ b/Module10/practice/result/03_task_result.py @@ -1,4 +1,6 @@ # С некоторого момента прошло некоторое количество дней. Сколько полных недель прошло с этого же момента? # Формат входных данных: Вводится целое положительное число — количество прошедших дней. # Формат выходных данных: Выведите целое число недель. +# Уточнение: каждые 7 прошедших дней равны одной полной неделе. + diff --git a/Module10/practice/training/04_task_training.py b/Module10/practice/result/04_task_result.py similarity index 90% rename from Module10/practice/training/04_task_training.py rename to Module10/practice/result/04_task_result.py index dffa16902..295626a24 100644 --- a/Module10/practice/training/04_task_training.py +++ b/Module10/practice/result/04_task_result.py @@ -1,4 +1,4 @@ # Одноклеточная амеба каждые 3 часа делится на 2 такие же амёбы. # Необходимо определить, сколько будет амеб через n часов, если первоначально была только одна амёба. -# Формат входных данных: Вводится целое число n (3≤n≤90). +# Формат входных данных: Вводится целое положительное число n. # Формат выходных данных: Требуется одно число — конечное число амеб. diff --git a/Module10/practice/training/05_task_training.py b/Module10/practice/result/05_task_result.py similarity index 100% rename from Module10/practice/training/05_task_training.py rename to Module10/practice/result/05_task_result.py diff --git a/Module10/practice/training/06_task_training.py b/Module10/practice/result/06_task_result.py similarity index 100% rename from Module10/practice/training/06_task_training.py rename to Module10/practice/result/06_task_result.py diff --git a/Module10/practice/training/07_task_training.py b/Module10/practice/result/07_task_result.py similarity index 100% rename from Module10/practice/training/07_task_training.py rename to Module10/practice/result/07_task_result.py diff --git a/Module10/practice/training/08_task_training.py b/Module10/practice/result/08_task_result.py similarity index 93% rename from Module10/practice/training/08_task_training.py rename to Module10/practice/result/08_task_result.py index 58ce2258c..ddb4ee89a 100644 --- a/Module10/practice/training/08_task_training.py +++ b/Module10/practice/result/08_task_result.py @@ -1,4 +1,4 @@ # Прочитав число из файла задачи 7, определите: # Какие цифры встречаются в числе чаще всего? -# Если несколько цифр встречаются одинаковое максимальное кол-во раз - найди любые. +# Если несколько цифр встречаются одинаковое максимальное кол-во раз - найдите любые. # Является ли данное число(20000-значное) четным? diff --git a/Module10/practice/training/09_task_training.py b/Module10/practice/result/09_task_result.py similarity index 100% rename from Module10/practice/training/09_task_training.py rename to Module10/practice/result/09_task_result.py diff --git a/Module10/practice/training/10_task_training.py b/Module10/practice/result/10_task_result.py similarity index 90% rename from Module10/practice/training/10_task_training.py rename to Module10/practice/result/10_task_result.py index c960bd208..e46f568a4 100644 --- a/Module10/practice/training/10_task_training.py +++ b/Module10/practice/result/10_task_result.py @@ -1,5 +1,5 @@ # Напишите функцию принимающую на вход целое числом n. И возвращающую список из n элементов. # заполненный случайными целыми числами в диапазоне от a до b. # Примечание: все элементы списка должны быть гарантировано уникальными(неповторяющимися) -# Если создать список с заданными параметрами невозможно - функция должна выбросить ислючение +# Если создать список с заданными параметрами невозможно - функция должна выбросить исключение(любое) diff --git a/Module9/practice/regexp/01_task_regexp.py b/Module9/practice/regexp/01_task_regexp.py new file mode 100644 index 000000000..1ca440844 --- /dev/null +++ b/Module9/practice/regexp/01_task_regexp.py @@ -0,0 +1,9 @@ +# Дано произвольное предложение. Слова разделены пробелами. Предложение содержит знаки препинания. +# Найдите: +# 1) первое слово из строки +# 2) первые два символа каждого слова +# 3) все слова начинающиеся на гласную букву +# 4) все слова начинающиеся на согласную букву +# 5) все уникальные(без дубликатов) знаки препинания + +text = ... \ No newline at end of file diff --git a/Module9/practice/regexp/02_task_regexp.py b/Module9/practice/regexp/02_task_regexp.py new file mode 100644 index 000000000..2991f2d7c --- /dev/null +++ b/Module9/practice/regexp/02_task_regexp.py @@ -0,0 +1,10 @@ +# Дан текст в котором упоминаются IP-адреса. +# Пример текста: +text = """ +Все публичные сервера и сайты в сети Интернет используют "белые" IP-адреса (например, сайт google.com — 172.217.22.14, +DNS-сервер Google — 8.8.8.8, сайт yandex.ru — 213.180.204.11, DNS-сервер Яндекс.DNS — 77.88.8.8). +Все публичные IP-адреса в сети Интернет уникальны и не могут повторяться +""" +# Найдите все упоминаемые IP. +# Точно известно, что все IP-адреса в тексте являются корректными, т.е. не будут встречаться адреса вида 900.400.18.56 + diff --git a/Module9/practice/regexp/03_task_regexp.py b/Module9/practice/regexp/03_task_regexp.py new file mode 100644 index 000000000..5f39a5478 --- /dev/null +++ b/Module9/practice/regexp/03_task_regexp.py @@ -0,0 +1,7 @@ +# Проверить, является ли заданная строка доменным именем для протоколов http или https, с необязательным слешем в конце. +# Специальные символы не используются. +# Примеры: +# http://example.com/ — Да(является) +# example.com — Нет +# https://кремль.рф — Да + diff --git a/Module9/practice/regexp/04_task_regexp.py b/Module9/practice/regexp/04_task_regexp.py new file mode 100644 index 000000000..0e7e1f594 --- /dev/null +++ b/Module9/practice/regexp/04_task_regexp.py @@ -0,0 +1,4 @@ +# Дан текст: +text = "World War II began on Sep 1939 and ended on Sep 1945. Victory Day has been celebrated since 1945." +# Найдите и выведите все года, которым предшествует месяц. +# Уточнение: вывести ТОЛЬКО года, но те, ПЕРЕД которыми стоит месяц! diff --git a/Module9/practice/tasks.md b/Module9/practice/tasks.md deleted file mode 100644 index 60f3e6cac..000000000 --- a/Module9/practice/tasks.md +++ /dev/null @@ -1,3 +0,0 @@ -Задания сюда еще не доехали и - -находятся пока тут: https://docs.google.com/document/d/1j8tY9QMHD_isSABoK0Ldb34aentFtuQHjJBOGTQ9q40/edit?usp=sharing \ No newline at end of file diff --git a/Module9/practice/trening/00_tasks.md b/Module9/practice/trening/00_tasks.md new file mode 100644 index 000000000..f18529a83 --- /dev/null +++ b/Module9/practice/trening/00_tasks.md @@ -0,0 +1,50 @@ +## Практические задания на regExp + +Ресурс для проверки регулярок: [тут](https://regex101.com/). + +### Задание-0 “Разминка” + +####Часть-1: + +Даны строки: **cats. 8967. ?=+!. abcd1** + +Напишите шаблон, который будет соответствовать первым трем строкам, но не соответствовать последней. + +Соответствовать: cats. + +Соответствовать: 8967. + +Соответствовать: ?=+!. + +Пропустить: abcd1 + +####Часть-2: +Даны строки: **can man fan dan** + +Напишите шаблон, который будет соответствовать первым трем строкам, но не соответствовать трем последним.\ + +Соответствовать can + +Соответствовать man + +Соответствовать fan + +Пропустить dan + +Пропустить ran + +Пропустить pan + +####Часть-3: + +Для строк ниже напишите выражение, которое будет соответствовать как полной дате, так и только годам. + +Точно известно: название месяца начинается с большой буквы и состоит из трех букв. \ +А год состоит из четырех цифр. + +| Дано | Извлечь-1 | Извлечь-2 | +| ----------------- | ----------- |----------- | +| Date Jan 1987 | Jan 1987 |1987 +| In May 1969 | May 1969 |1969 +| The war ended on 8 May 1945 | May 1945 |1945 + From 276d35ca7b555a14ebdbb6e45ccd55b9b3a8c157 Mon Sep 17 00:00:00 2001 From: boo-learn Date: Wed, 22 Sep 2021 13:15:24 +0300 Subject: [PATCH 34/38] fix task module-2 --- Module2/home_work/03_hw.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Module2/home_work/03_hw.py b/Module2/home_work/03_hw.py index 2ad639cd7..ed6529384 100644 --- a/Module2/home_work/03_hw.py +++ b/Module2/home_work/03_hw.py @@ -1,7 +1,9 @@ # Задача 3. Таблица стоимости # Одна единица некоторого товара стоит x рублей. Напечатайте таблицу стоимости 2, 3, ..., 20 единиц этого товара. # Формат входных данных -# Вводится одно положительное вещественное число x, которое не превосходит 105 и задано с двумя знаками после запятой. +# Дано одно положительное вещественное число x - цена единицы товара +# Формат выходных данных +# Выведите таблицу стоимости. Цены вывести с точностью до двух знаков # пример: # Входные данные @@ -16,7 +18,7 @@ # 7 69.93 Rub. # 8 79.92 Rub. # 9 89.91 Rub. -# 10 99.90 Rub. +# 10 99.9 Rub. # 11 109.89 Rub. # 12 119.88 Rub. # 13 129.87 Rub. @@ -26,6 +28,6 @@ # 17 169.83 Rub. # 18 179.82 Rub. # 19 189.81 Rub. -# 20 199.80 Rub. +# 20 199.8 Rub. # TODO: your code here From b6cd7afd16dba4e0b23dda90699a4e4159045336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Sun, 17 Oct 2021 15:31:29 +0300 Subject: [PATCH 35/38] Update 00_tasks.md --- Module9/practice/trening/00_tasks.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Module9/practice/trening/00_tasks.md b/Module9/practice/trening/00_tasks.md index f18529a83..c7d760c29 100644 --- a/Module9/practice/trening/00_tasks.md +++ b/Module9/practice/trening/00_tasks.md @@ -4,7 +4,7 @@ ### Задание-0 “Разминка” -####Часть-1: +#### Часть-1: Даны строки: **cats. 8967. ?=+!. abcd1** @@ -18,7 +18,7 @@ Пропустить: abcd1 -####Часть-2: +#### Часть-2: Даны строки: **can man fan dan** Напишите шаблон, который будет соответствовать первым трем строкам, но не соответствовать трем последним.\ @@ -35,7 +35,7 @@ Пропустить pan -####Часть-3: +#### Часть-3: Для строк ниже напишите выражение, которое будет соответствовать как полной дате, так и только годам. From 8a8dd738a59a788d5ee88b48691aa8ebffe023d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Tue, 21 Dec 2021 12:23:01 +0300 Subject: [PATCH 36/38] Update 04_task_if_else.py --- Module2/practice/if_else/04_task_if_else.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Module2/practice/if_else/04_task_if_else.py b/Module2/practice/if_else/04_task_if_else.py index 36ee6da5c..f5102b91a 100644 --- a/Module2/practice/if_else/04_task_if_else.py +++ b/Module2/practice/if_else/04_task_if_else.py @@ -1,7 +1,7 @@ # Дано целое число. -# Если оно делится на 3 без остатка - вывести ”Foo”, -# если делится на 5 - вывести “Bar”, -# а если делится на 3 и на 5 - вывести “Foobar”. +# Если оно делится на 3 без остатка - вывести "Foo", +# если делится на 5 - вывести "Bar", +# а если делится на 3 и на 5 - вывести "Foobar". # Для всех остальных случаев не выводить ничего. # TODO: your code here From 9802766647e65ec63560dc3ce90752add7bcb2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=95=D0=B2?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <71762690+boo-learn@users.noreply.github.com> Date: Fri, 24 Dec 2021 12:15:21 +0300 Subject: [PATCH 37/38] Update 01_task_file.py --- Module6/practice/files/01_task_file.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Module6/practice/files/01_task_file.py b/Module6/practice/files/01_task_file.py index bba63c43c..ada6fde64 100644 --- a/Module6/practice/files/01_task_file.py +++ b/Module6/practice/files/01_task_file.py @@ -7,7 +7,7 @@ # что каждое стихотворение отделяется ровно одной пустой строкой от предыдущего и после последнего нет пустой строки path = "dir/limericks.txt" # вместо dir подставь название папки с файлом. -# Или удалите dir, если limericks.txt в тойже папке что и текущий файл +# Или удалите dir, если limericks.txt в той же папке, что и текущий файл # Открываем файл на чтение f = open(path, "r") From 2d35195b2239590de3aac4afd7a276dcdf828d35 Mon Sep 17 00:00:00 2001 From: Zen Date: Sat, 26 Feb 2022 15:57:37 +0300 Subject: [PATCH 38/38] Update 01_task_if_else.py --- Module2/practice/if_else/01_task_if_else.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Module2/practice/if_else/01_task_if_else.py b/Module2/practice/if_else/01_task_if_else.py index c18111b4c..772f0ad09 100644 --- a/Module2/practice/if_else/01_task_if_else.py +++ b/Module2/practice/if_else/01_task_if_else.py @@ -2,5 +2,9 @@ # Формат входных данных: дано одно вещественное число number. Гарантируется, что number ≠ 0. # Формат выходных данных: Требуется вывести тип числа текстом -number = float(input()) # Считываем вещественное число +number = float(input("number: ")) # Считываем вещественное число +if number > 0: + print("Положительное") +else: + print("Отрицательным")