From 3d8fdf70240493d77cb170d90ec43ba1557e2365 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 28 Sep 2019 21:10:06 +0300 Subject: [PATCH 01/11] =?UTF-8?q?=D0=9F=D0=BE=D1=87=D1=82=D0=B8=20=D0=B2?= =?UTF-8?q?=D1=81=D0=B5=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=B5=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson02/home_work/hw02_easy.py | 26 ++++++++++++++++++ lesson02/home_work/hw02_hard.py | 27 ++++++++++++++----- lesson02/home_work/hw02_normal.py | 45 +++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 6 deletions(-) diff --git a/lesson02/home_work/hw02_easy.py b/lesson02/home_work/hw02_easy.py index ed4447e50..40ac8d310 100644 --- a/lesson02/home_work/hw02_easy.py +++ b/lesson02/home_work/hw02_easy.py @@ -1,3 +1,5 @@ +__author__ = 'Насонов Алексей Сергеевич' + # Задача-1: # Дан список фруктов. # Напишите программу, выводящую фрукты в виде нумерованного списка, @@ -13,13 +15,37 @@ # Подсказка: воспользоваться методом .format() +print("Задача-1:") +NumList = ["яблоко", "банан", "киви", "арбуз"] +for Item in NumList: + print('{:}. {:>6}'.format(str(NumList.index(Item)+1), Item)) + + + # Задача-2: # Даны два произвольные списка. # Удалите из первого списка элементы, присутствующие во втором списке. +print("Задача-2:") +NumList1 = ["яблоко", "банан", "киви", "арбуз"] +NumList2 = ["банан", "киви"] +for Item in NumList2: + if Item in NumList1: + NumList1.remove(Item) +print(NumList1) # Задача-3: # Дан произвольный список из целых чисел. # Получите НОВЫЙ список из элементов исходного, выполнив следующие условия: # если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два. + +print("Задача-3:") +NumList1 = [1, 2, 3, 4, 5] +NumList2 = [] +for Num in NumList1: + if Num % 2 == 0: + NumList2.append(Num/4) + else: + NumList2.append(Num*2) +print(NumList2) diff --git a/lesson02/home_work/hw02_hard.py b/lesson02/home_work/hw02_hard.py index c96843184..a0b54d4f9 100644 --- a/lesson02/home_work/hw02_hard.py +++ b/lesson02/home_work/hw02_hard.py @@ -1,10 +1,18 @@ +__author__ = 'Насонов Алексей Сергеевич' + # Задание-1: уравнение прямой вида y = kx + b задано в виде строки. # Определить координату y точки с заданной координатой x. -equation = 'y = -12x + 11111140.2121' -x = 2.5 +#equation = 'y = -12x + 11111140.2121' +#x = 2.5 # вычислите и выведите y +print("Задача-1:") +x = 2.5 +y = -12*x + 11111140.2121 +print("Координата точки: x = {0}, y = {1}".format(x,y)) + + # Задание-2: Дата задана в виде строки формата 'dd.mm.yyyy'. # Проверить, корректно ли введена дата. @@ -17,12 +25,19 @@ # (т.е. 2 символа для дня, 2 - для месяца, 4 - для года) # Пример корректной даты -date = '01.11.1985' +#date = '01.11.1985' # Примеры некорректных дат -date = '01.22.1001' -date = '1.12.1001' -date = '-2.10.3001' +#date = '01.22.1001' +#date = '1.12.1001' +#date = '-2.10.3001' + +DaysInToMonth = [30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] +date_text = '01.11.1985' +# Проверяем день +# Проверяем месяц +# Проверяем год + # Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня) diff --git a/lesson02/home_work/hw02_normal.py b/lesson02/home_work/hw02_normal.py index 3acfaabb6..70a7c4c66 100644 --- a/lesson02/home_work/hw02_normal.py +++ b/lesson02/home_work/hw02_normal.py @@ -1,3 +1,5 @@ +__author__ = 'Насонов Алексей Сергеевич' + # Задача-1: # Дан список, заполненный произвольными целыми числами, получите новый список, # элементами которого будут квадратные корни элементов исходного списка, @@ -5,17 +7,37 @@ # если такой корень вообще можно извлечь # Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2] +# print("Задача-1:") +# NumList1 = [1, 2, 3, 4, 5, -10, 25] +# NumList2 = [] +# import math +# for Num in NumList1: +# if Num >= 0: +# Res = math.sqrt(Num) +# if (float(Res) % 1) == 0: +# NumList2.append(int(Res)) +# print(NumList2) # Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013. # Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года. # Склонением пренебречь (2000 года, 2010 года) +print("Задача-2:") +date = "26.11.2013" + # Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами # в диапазоне от -100 до 100. В списке должно быть n - элементов. # Подсказка: # для получения случайного числа используйте функцию randint() модуля random +# print("Задача-3") +# import random +# NumList = [] +# n = int(input("Введите количество элементов списка случайных значений")) +# for item in range(n): +# NumList.append(random.randint(-100, 100)) +# print(NumList) # Задача-4: Дан список, заполненный произвольными целыми числами. # Получите новый список, элементами которого будут: @@ -23,3 +45,26 @@ # например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 2, 4, 5, 6] # б) элементы исходного списка, которые не имеют повторений: # например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6] + +print("Задача-4") +NumList1 = [1, 2, 4, 5, 6, 2, 5, 2] +NumList_a = [] +NumList_b = [] +NumList_temp = NumList1.copy() +while NumList_temp: + Num = NumList_temp[0] + NumList_temp.remove(Num) + if Num in NumList_temp: + NumList_a.append(Num) + while Num in NumList_temp: + NumList_temp.remove(Num) + else: + NumList_a.append(Num) + NumList_b.append(Num) + +print("Исходный список:") +print(NumList1) +print("Список с уникальными элементами:") +print(NumList_a) +print("Список без повторяющихся элементов:") +print(NumList_b) From 1ccbf583fc94ad1e65e0fa994ecb9dcdc5c5a36d Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 28 Sep 2019 21:24:37 +0300 Subject: [PATCH 02/11] =?UTF-8?q?=D0=92=D0=BE=D1=81=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB=20=D1=81=D1=82=D0=B5=D1=80=D1=82?= =?UTF-8?q?=D0=BE=D0=B5=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B9=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=20=D0=B4=D0=B0=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson02/home_work/hw02_normal.py | 50 ++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/lesson02/home_work/hw02_normal.py b/lesson02/home_work/hw02_normal.py index 70a7c4c66..752e86e18 100644 --- a/lesson02/home_work/hw02_normal.py +++ b/lesson02/home_work/hw02_normal.py @@ -23,7 +23,55 @@ # Склонением пренебречь (2000 года, 2010 года) print("Задача-2:") -date = "26.11.2013" +days = ["первое", + "второе", + "третье", + "четвертое", + "пятое", + "шестое", + "седьмое", + "восьмое", + "девятое", + "десятое", + "одиннадцатое", + "двенадцатое", + "тринадцатое", + "четырнадцатое", + "пятнадцатое", + "шестнадцатое", + "семьнадцатое", + "восемнадцатое", + "девятнадцатое", + "двадцатое", + "двадцать первое", + "двадцать второе", + "двадцать третье", + "двадцать четвертое", + "двадцать пятое", + "двадцать шестое", + "двадцать седьмое", + "двадцать восьмое", + "двадцать девятое", + "тридцатое", + "тридцать первое"] +month = ["января", + "февраля", + "марта", + "апреля", + "мая", + "июня", + "июля", + "августа", + "сентября", + "октября", + "ноября", + "декабря"] +date = "26.02.1975" +D = int((date.split("."))[0]) +M = int((date.split("."))[1]) +Y = (date.split("."))[2] +print(date) +print("Дата: {0} {1} {2} года".format(days[D-1],month[M-1],Y)) # Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами From 336f26c6c322801190841abe32361e32d55f03e3 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 28 Sep 2019 23:10:53 +0300 Subject: [PATCH 03/11] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D1=81=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson02/home_work/hw02_hard.py | 66 ++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/lesson02/home_work/hw02_hard.py b/lesson02/home_work/hw02_hard.py index a0b54d4f9..20c060590 100644 --- a/lesson02/home_work/hw02_hard.py +++ b/lesson02/home_work/hw02_hard.py @@ -7,10 +7,10 @@ #x = 2.5 # вычислите и выведите y -print("Задача-1:") -x = 2.5 -y = -12*x + 11111140.2121 -print("Координата точки: x = {0}, y = {1}".format(x,y)) +# print("Задача-1:") +# x = 2.5 +# y = -12*x + 11111140.2121 +# print("Координата точки: x = {0}, y = {1}".format(x,y)) @@ -32,11 +32,33 @@ #date = '1.12.1001' #date = '-2.10.3001' -DaysInToMonth = [30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] -date_text = '01.11.1985' -# Проверяем день -# Проверяем месяц -# Проверяем год +# print("Задача-1:") +# DaysInToMonth = [30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] +# date = '21.11.1985' +# List = date.split(".") +# # Проверка по формату +# if len(List[0]) != 2 or len(List[1]) != 2 or len(List[2]) != 4: +# print("Формат не соответсвует dd.mm.yyyy") +# quit() +# +# D = int(List[0]) +# M = int(List[1]) +# Y = int(List[2]) +# +# # Проверяем месяц +# if M not in list(range(1, 13)): +# print("Некоректно определен месяц") +# quit() +# # Проверяем день +# elif D not in list(range(1, DaysInToMonth[M-1]+1)): +# print("Некоректно определен день") +# quit() +# # Проверяем год +# elif Y not in list(range(1, 10000)): +# print("Некоректно определен год") +# quit() +# +# print("Дата {} введена корректно".format(date)) @@ -68,4 +90,28 @@ # Выход: 6 2 # # Вход: 11 -# Выход: 5 3 \ No newline at end of file +# Выход: 5 3 + + +print("Задача-3:") +# Определяем в каком квадрате находится комната (сумму квадратов n натуральных чисел) +Num = 50000000 +for n in range(1, 2000): + MaxKvart = n * (n + 1) * (2 * n + 1) / 6 + if MaxKvart >= Num: + break + +print("Номер квадрата:", n) +print("Номер последней квартиры(в правом верхнем углу):",MaxKvart) +# Определяем верхний этаж этого квадрата (сумму n натуральных чисел) +MaxEtag = n * (n + 1) / 2 + +print("Этаж самой верхней квартиры в квадрате", MaxEtag) +# Определяем искомый этаж и смещение слева на право на этаже у искомой квартиры +DeltaEtag = (MaxKvart - Num) // n +RightOffset = (MaxKvart - Num) % n +print("Дельта этаж",DeltaEtag) +print("Смещение квартиры справа",RightOffset) + +print("Искомый этаж", (MaxEtag-DeltaEtag)) +print("Смещение квартиры справа", (n-RightOffset)) From 9c5e9bc3116544101e71564366d48ae5d25a2ee1 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 29 Sep 2019 11:23:54 +0300 Subject: [PATCH 04/11] =?UTF-8?q?=D0=A4=D0=B8=D0=BD=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson02/home_work/hw02_hard.py | 83 ++++++++++++++++--------------- lesson02/home_work/hw02_normal.py | 40 ++++++++------- 2 files changed, 67 insertions(+), 56 deletions(-) diff --git a/lesson02/home_work/hw02_hard.py b/lesson02/home_work/hw02_hard.py index 20c060590..5f50c6361 100644 --- a/lesson02/home_work/hw02_hard.py +++ b/lesson02/home_work/hw02_hard.py @@ -7,10 +7,10 @@ #x = 2.5 # вычислите и выведите y -# print("Задача-1:") -# x = 2.5 -# y = -12*x + 11111140.2121 -# print("Координата точки: x = {0}, y = {1}".format(x,y)) +print("Задача-1:") +x = 2.5 +y = -12*x + 11111140.2121 +print("Координата точки: x = {0}, y = {1}".format(x,y)) @@ -32,33 +32,33 @@ #date = '1.12.1001' #date = '-2.10.3001' -# print("Задача-1:") -# DaysInToMonth = [30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] -# date = '21.11.1985' -# List = date.split(".") -# # Проверка по формату -# if len(List[0]) != 2 or len(List[1]) != 2 or len(List[2]) != 4: -# print("Формат не соответсвует dd.mm.yyyy") -# quit() -# -# D = int(List[0]) -# M = int(List[1]) -# Y = int(List[2]) -# -# # Проверяем месяц -# if M not in list(range(1, 13)): -# print("Некоректно определен месяц") -# quit() -# # Проверяем день -# elif D not in list(range(1, DaysInToMonth[M-1]+1)): -# print("Некоректно определен день") -# quit() -# # Проверяем год -# elif Y not in list(range(1, 10000)): -# print("Некоректно определен год") -# quit() -# -# print("Дата {} введена корректно".format(date)) +print("Задача-2:") +DaysInToMonth = [30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] +date = '21.11.1985' +List = date.split(".") +# Проверка по формату +if len(List[0]) != 2 or len(List[1]) != 2 or len(List[2]) != 4: + print("Формат не соответсвует dd.mm.yyyy") + quit() + +D = int(List[0]) +M = int(List[1]) +Y = int(List[2]) + +# Проверяем месяц +if M not in list(range(1, 13)): + print("Некоректно определен месяц") + quit() +# Проверяем день +elif D not in list(range(1, DaysInToMonth[M-1]+1)): + print("Некоректно определен день") + quit() +# Проверяем год +elif Y not in list(range(1, 10000)): + print("Некоректно определен год") + quit() + +print("Дата {} введена корректно".format(date)) @@ -94,24 +94,29 @@ print("Задача-3:") -# Определяем в каком квадрате находится комната (сумму квадратов n натуральных чисел) -Num = 50000000 +# Задаем номер квартиры +Num = 11 + +# Определяем в каком квадрате находится квартира (сумму квадратов n натуральных чисел) +# Правильнее бы было найти обратную функцию, но как-то не получилось. Поэтому ищем решение по исходной функции for n in range(1, 2000): MaxKvart = n * (n + 1) * (2 * n + 1) / 6 if MaxKvart >= Num: break +print("Номер исходной квартиры:", Num) print("Номер квадрата:", n) -print("Номер последней квартиры(в правом верхнем углу):",MaxKvart) +print("Номер последней квартиры(в правом верхнем углу):", int(MaxKvart)) # Определяем верхний этаж этого квадрата (сумму n натуральных чисел) MaxEtag = n * (n + 1) / 2 -print("Этаж самой верхней квартиры в квадрате", MaxEtag) +print("Этаж самой последней квартиры в этом квадрате", int(MaxEtag)) # Определяем искомый этаж и смещение слева на право на этаже у искомой квартиры DeltaEtag = (MaxKvart - Num) // n RightOffset = (MaxKvart - Num) % n -print("Дельта этаж",DeltaEtag) -print("Смещение квартиры справа",RightOffset) +print("Дельта этаж", int(DeltaEtag)) +print("Смещение квартиры справа", int(RightOffset)) -print("Искомый этаж", (MaxEtag-DeltaEtag)) -print("Смещение квартиры справа", (n-RightOffset)) +print("\nРЕШЕНИЕ:") +print("Искомый этаж:", int(MaxEtag-DeltaEtag)) +print("Номер квартиры на этаже слева:", int(n-RightOffset)) diff --git a/lesson02/home_work/hw02_normal.py b/lesson02/home_work/hw02_normal.py index 752e86e18..82e5c7ffb 100644 --- a/lesson02/home_work/hw02_normal.py +++ b/lesson02/home_work/hw02_normal.py @@ -7,16 +7,16 @@ # если такой корень вообще можно извлечь # Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2] -# print("Задача-1:") -# NumList1 = [1, 2, 3, 4, 5, -10, 25] -# NumList2 = [] -# import math -# for Num in NumList1: -# if Num >= 0: -# Res = math.sqrt(Num) -# if (float(Res) % 1) == 0: -# NumList2.append(int(Res)) -# print(NumList2) +print("Задача-1:") +NumList1 = [1, 2, 3, 4, 5, -10, 25] +NumList2 = [] +import math +for Num in NumList1: + if Num >= 0: + Res = math.sqrt(Num) + if (float(Res) % 1) == 0: + NumList2.append(int(Res)) +print(NumList2) # Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013. # Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года. @@ -79,13 +79,14 @@ # Подсказка: # для получения случайного числа используйте функцию randint() модуля random -# print("Задача-3") -# import random -# NumList = [] -# n = int(input("Введите количество элементов списка случайных значений")) -# for item in range(n): -# NumList.append(random.randint(-100, 100)) -# print(NumList) +print("Задача-3") +import random +NumList = [] +# Задаем количество элементов списка случайных значений +n = 10 +for item in range(n): + NumList.append(random.randint(-100, 100)) +print(NumList) # Задача-4: Дан список, заполненный произвольными целыми числами. # Получите новый список, элементами которого будут: @@ -99,6 +100,11 @@ NumList_a = [] NumList_b = [] NumList_temp = NumList1.copy() +# Выполняем проверку первого элемента и удаляем его, +# если элемент встречается в исходном списке несколько раз, +# то заносим его только в новый список NumList_a +# если элемент встречается в исходном списке только один раз, +# то добавляем его в списки NumList_a, NumList_b while NumList_temp: Num = NumList_temp[0] NumList_temp.remove(Num) From bf6b2320ec91c9ada06590c2b4df25dd9955239e Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 29 Sep 2019 11:26:48 +0300 Subject: [PATCH 05/11] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D0=B2=D1=8B=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson02/home_work/hw02_easy.py | 1 + lesson02/home_work/hw02_hard.py | 1 + lesson02/home_work/hw02_normal.py | 1 + 3 files changed, 3 insertions(+) diff --git a/lesson02/home_work/hw02_easy.py b/lesson02/home_work/hw02_easy.py index 40ac8d310..a08a511c2 100644 --- a/lesson02/home_work/hw02_easy.py +++ b/lesson02/home_work/hw02_easy.py @@ -49,3 +49,4 @@ else: NumList2.append(Num*2) print(NumList2) + diff --git a/lesson02/home_work/hw02_hard.py b/lesson02/home_work/hw02_hard.py index 5f50c6361..f1faf7012 100644 --- a/lesson02/home_work/hw02_hard.py +++ b/lesson02/home_work/hw02_hard.py @@ -120,3 +120,4 @@ print("\nРЕШЕНИЕ:") print("Искомый этаж:", int(MaxEtag-DeltaEtag)) print("Номер квартиры на этаже слева:", int(n-RightOffset)) + diff --git a/lesson02/home_work/hw02_normal.py b/lesson02/home_work/hw02_normal.py index 82e5c7ffb..3d677dc38 100644 --- a/lesson02/home_work/hw02_normal.py +++ b/lesson02/home_work/hw02_normal.py @@ -122,3 +122,4 @@ print(NumList_a) print("Список без повторяющихся элементов:") print(NumList_b) + From c6b42b4c024c5024ab3cefc90af487d4b7a9c6c9 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 30 Sep 2019 11:45:32 +0300 Subject: [PATCH 06/11] test branch lesson03 --- lesson03/home_work/hw03_easy.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson03/home_work/hw03_easy.py b/lesson03/home_work/hw03_easy.py index 63d13f646..534dd43e1 100644 --- a/lesson03/home_work/hw03_easy.py +++ b/lesson03/home_work/hw03_easy.py @@ -12,6 +12,7 @@ def my_round(number, ndigits): print(my_round(2.1999967, 5)) print(my_round(2.9999967, 5)) +test branch # Задание-2: # Дан шестизначный номер билета. Определить, является ли билет счастливым. From 37f5a14a0ecf2db7e2894a02cfb3b4514c5cf407 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 1 Oct 2019 23:50:05 +0300 Subject: [PATCH 07/11] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=20=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson03/home_work/hw03_easy.py | 37 ++++++++++++++++++++++++++++--- lesson03/home_work/hw03_normal.py | 15 ++++++++++--- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/lesson03/home_work/hw03_easy.py b/lesson03/home_work/hw03_easy.py index 534dd43e1..22d9b5dcb 100644 --- a/lesson03/home_work/hw03_easy.py +++ b/lesson03/home_work/hw03_easy.py @@ -5,14 +5,19 @@ # Для решения задачи не используйте встроенные функции и функции из модуля math. def my_round(number, ndigits): - pass + if number*10**ndigits % 1 >= 0.5: + res = (int((number*10**ndigits)) +1) / 10**ndigits + else: + res = int((number*10**ndigits)) / 10**ndigits + return res + print(my_round(2.1234567, 5)) print(my_round(2.1999967, 5)) print(my_round(2.9999967, 5)) -test branch +#test branch # Задание-2: # Дан шестизначный номер билета. Определить, является ли билет счастливым. @@ -20,10 +25,36 @@ def my_round(number, ndigits): # Билет считается счастливым, если сумма его первых и последних цифр равны. # !!!P.S.: функция не должна НИЧЕГО print'ить +# Функция суммирования чисел в строке +def sum_number_str(number_str): + sum = 0 + for num in list(number_str): + sum += int(num) + return sum def lucky_ticket(ticket_number): - pass + StartFirst = 0 + if len(str(ticket_number)) / 2 % 1 == 0: + # Если четное количество цифр, то количетсво цифр делим пополам + StopFirst = int(len(str(ticket_number)) / 2) + StartSecond = StopFirst + else: + # Если нечетное, то среднюю цифру не считаем ни первой не последней + StopFirst = int(len(str(ticket_number)) / 2) + StartSecond = StopFirst + 1 + StopSecond = StartSecond+StopFirst + #print(StartFirst,StopFirst,StartSecond,StopSecond) + ticket_number_S = str(ticket_number) + First = ticket_number_S[StartFirst:StopFirst] + Second = ticket_number_S[StartSecond:StopSecond] + if sum_number_str(list(First)) == sum_number_str(list(Second)): + Res = "lucky" + else: + Res = "Unlucky" + return Res + print(lucky_ticket(123006)) print(lucky_ticket(12321)) print(lucky_ticket(436751)) +print(lucky_ticket(436752)) diff --git a/lesson03/home_work/hw03_normal.py b/lesson03/home_work/hw03_normal.py index 38ac1fcc1..3c9685312 100644 --- a/lesson03/home_work/hw03_normal.py +++ b/lesson03/home_work/hw03_normal.py @@ -12,9 +12,18 @@ def fibonacci(n, m): def sort_to_max(origin_list): - pass - -sort_to_max([2, 10, -12, 2.5, 20, -11, 4, 4, 0]) + for i in range(len(origin_list)): + for j in range(i+1,len(origin_list)): + if origin_list[i] > origin_list[j]: + temp_= origin_list[i] + origin_list[i] = origin_list[j] + origin_list[j] = temp_ + return origin_list + #print(i,j) + # print(origin_list[i]) + + +print(sort_to_max([2, 10, -12, 2.5, 20, -11, 4, 4, 0])) # Задача-3: # Напишите собственную реализацию стандартной функции filter. From 50c74ed6f000c0f23206c41a7201d932283db909 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 2 Oct 2019 18:22:42 +0300 Subject: [PATCH 08/11] =?UTF-8?q?=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson03/home_work/hw03_normal.py | 54 ++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/lesson03/home_work/hw03_normal.py b/lesson03/home_work/hw03_normal.py index 3c9685312..067b0f1ed 100644 --- a/lesson03/home_work/hw03_normal.py +++ b/lesson03/home_work/hw03_normal.py @@ -2,8 +2,19 @@ # Напишите функцию, возвращающую ряд Фибоначчи с n-элемента до m-элемента. # Первыми элементами ряда считать цифры 1 1 +def fib(n): + if n < 2: + return n + else: + return fib(n - 1) + fib(n - 2) + def fibonacci(n, m): - pass + R = [] + for i in range(n,m): + R.append(fib(i)) + return R + +print(fibonacci(0, 11)) # Задача-2: # Напишите функцию, сортирующую принимаемый список по возрастанию. @@ -29,8 +40,49 @@ def sort_to_max(origin_list): # Напишите собственную реализацию стандартной функции filter. # Разумеется, внутри нельзя использовать саму функцию filter. +def my_filter(fun,l): + R = [] + for Item in l: + if fun(Item): + R.append(Item) + return R + +#пределяем исходный список и лямбда функцию +l = [5, 9, 5, 3, 2, 8, 10] +fun = lambda x: x > 6 + +print(my_filter(fun, l)) # Задача-4: # Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4). # Определить, будут ли они вершинами параллелограмма. +P1 = {"x":1,"y":1} +P2 = {"x":2,"y":4} +P3 = {"x":6,"y":4} +P4 = {"x":5,"y":1} + +def Vetify_Parallel(Para1,Para2): + if (Para1[1].get("x") != Para1[0].get("x")): + A1= (Para1[1].get("y")-Para1[0].get("y"))/(Para1[1].get("x")-Para1[0].get("x")) + else: + A1 = 0 + if (Para2[1].get("x") != Para2[0].get("x")): + A2= (Para2[1].get("y")-Para2[0].get("y"))/(Para2[1].get("x")-Para2[0].get("x")) + else: + A2 = 0 + if A1 == A2: + return True + else: + return False + +#Выясняем параллельны ли противоположные стороны у четырехугольника +Para1 = (P1,P2) +Para2 = (P3,P4) +if not Vetify_Parallel(Para1,Para2): + Para1 = (P2,P3) + Para2 = (P1,P4) + if not Vetify_Parallel(Para1,Para2): + print("У четырехугольника стороны не параллельны - это не параллограмм") + exit() +print("Это параллелограмм") \ No newline at end of file From 5a1205e1693f96bee20e42eeae9b9ac28dbf9e32 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 2 Oct 2019 19:53:00 +0300 Subject: [PATCH 09/11] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=201?= =?UTF-8?q?=D0=B7=20=D1=85=D0=B0=D1=80=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson03/home_work/hw03_hard.py | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index a8c7f668a..edfe0d190 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -10,6 +10,52 @@ # Вывод: 1 1/3 + +def parsing_num(num): + #Проверяем на отрицательность + Otric = False + if num[0] == '-': + Otric = True + num = num[1:] + l = num.split() + R = 0 + for item in l: + if len(item.split("/")) >1: + chislit = item.split("/")[0] + znamen = item.split("/")[1] + item = int(chislit)/int(znamen) + R += float(item) + if Otric == True: + R = -R + #print(R) + return R + + +#Тело программы*********************************************** +Operations = ["+", "-"] +formula = "-2 5/6 - -4 4/7" +for Operation in Operations: + Operands = formula.split(" {} ".format(Operation)) + if len(Operands) > 1: + break + +else: + print("Строка не соответсвует формату") + exit() +Res = 0 +for i,Operand in enumerate(Operands): + if i == 0: + Res = parsing_num(Operand) + else: + if Operation == "+": + Res += parsing_num(Operand) + elif Operation == "-": + Res -= parsing_num(Operand) + print("Операнд {}:".format(i+1),round(parsing_num(Operand), 3)) + +print("Результат:",round(Res, 3)) + + # Задание-2: # Дана ведомость расчета заработной платы (файл "data/workers"). # Рассчитайте зарплату всех работников, зная что они получат полный оклад, From c84289177de1f871d889826f5f21405fd750176d Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 3 Oct 2019 13:31:50 +0300 Subject: [PATCH 10/11] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D0=B2=D1=8B=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "lesson03/home_work/data/fruits_\320\220" | 26 +++++++ "lesson03/home_work/data/fruits_\320\221" | 17 +++++ "lesson03/home_work/data/fruits_\320\222" | 6 ++ "lesson03/home_work/data/fruits_\320\223" | 20 ++++++ "lesson03/home_work/data/fruits_\320\224" | 12 ++++ "lesson03/home_work/data/fruits_\320\227" | 7 ++ "lesson03/home_work/data/fruits_\320\230" | 5 ++ "lesson03/home_work/data/fruits_\320\232" | 27 ++++++++ "lesson03/home_work/data/fruits_\320\233" | 16 +++++ "lesson03/home_work/data/fruits_\320\234" | 34 ++++++++++ "lesson03/home_work/data/fruits_\320\235" | 2 + "lesson03/home_work/data/fruits_\320\236" | 4 ++ "lesson03/home_work/data/fruits_\320\237" | 30 +++++++++ "lesson03/home_work/data/fruits_\320\240" | 6 ++ "lesson03/home_work/data/fruits_\320\241" | 24 +++++++ "lesson03/home_work/data/fruits_\320\242" | 16 +++++ "lesson03/home_work/data/fruits_\320\244" | 8 +++ "lesson03/home_work/data/fruits_\320\245" | 3 + "lesson03/home_work/data/fruits_\320\246" | 3 + "lesson03/home_work/data/fruits_\320\247" | 11 +++ "lesson03/home_work/data/fruits_\320\250" | 1 + "lesson03/home_work/data/fruits_\320\257" | 5 ++ lesson03/home_work/data/hours_of | 2 +- lesson03/home_work/hw03_hard.py | 82 ++++++++++++++++++++++- 24 files changed, 365 insertions(+), 2 deletions(-) create mode 100644 "lesson03/home_work/data/fruits_\320\220" create mode 100644 "lesson03/home_work/data/fruits_\320\221" create mode 100644 "lesson03/home_work/data/fruits_\320\222" create mode 100644 "lesson03/home_work/data/fruits_\320\223" create mode 100644 "lesson03/home_work/data/fruits_\320\224" create mode 100644 "lesson03/home_work/data/fruits_\320\227" create mode 100644 "lesson03/home_work/data/fruits_\320\230" create mode 100644 "lesson03/home_work/data/fruits_\320\232" create mode 100644 "lesson03/home_work/data/fruits_\320\233" create mode 100644 "lesson03/home_work/data/fruits_\320\234" create mode 100644 "lesson03/home_work/data/fruits_\320\235" create mode 100644 "lesson03/home_work/data/fruits_\320\236" create mode 100644 "lesson03/home_work/data/fruits_\320\237" create mode 100644 "lesson03/home_work/data/fruits_\320\240" create mode 100644 "lesson03/home_work/data/fruits_\320\241" create mode 100644 "lesson03/home_work/data/fruits_\320\242" create mode 100644 "lesson03/home_work/data/fruits_\320\244" create mode 100644 "lesson03/home_work/data/fruits_\320\245" create mode 100644 "lesson03/home_work/data/fruits_\320\246" create mode 100644 "lesson03/home_work/data/fruits_\320\247" create mode 100644 "lesson03/home_work/data/fruits_\320\250" create mode 100644 "lesson03/home_work/data/fruits_\320\257" diff --git "a/lesson03/home_work/data/fruits_\320\220" "b/lesson03/home_work/data/fruits_\320\220" new file mode 100644 index 000000000..a2bd6d341 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\220" @@ -0,0 +1,26 @@ +Абиу +Абрикос +Авокадо +Айва +Аки +Алиберция +Алыча +Амбарелла +Американский абрикос +Американский орех +Ананас +Аннона горная +Аннона колючая +Аннона сетчатая +Аннона черимола +Аннона чешуйчатая +Антильский крыжовник +Апельсин +Арабика +Араза +Арахис +Арбуз обыкновенный +Астрокариум колючий +Атимойя +Африканский колючий огурец +Африканский тамаринд diff --git "a/lesson03/home_work/data/fruits_\320\221" "b/lesson03/home_work/data/fruits_\320\221" new file mode 100644 index 000000000..5714fd625 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\221" @@ -0,0 +1,17 @@ +Бакау +Баклажан +Балия +Бананы +Баобаб +Барбадин (Большая гранадилла) +Барбадосская вишня +Бархатное яблоко +Баэль +Белая сапота +Бергамот +Билимби +Бирсонима +Блигия вкусная +Большой змеиный фрукт +Бразильский орех +Бычье сердце diff --git "a/lesson03/home_work/data/fruits_\320\222" "b/lesson03/home_work/data/fruits_\320\222" new file mode 100644 index 000000000..ddbd5f968 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\222" @@ -0,0 +1,6 @@ +Вампи +Вангерия +Ваниль +Виноград +Воаванга +Водяное(восковое) яблоко diff --git "a/lesson03/home_work/data/fruits_\320\223" "b/lesson03/home_work/data/fruits_\320\223" new file mode 100644 index 000000000..6c770b7b6 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\223" @@ -0,0 +1,20 @@ +Гандария +Генипа +Гибискус съедобный +Гнетум гнемон +Голубиная слива +Голубой квандонг +Горлянка +Горький огурец +Гранадилла (Маракуйа) +Гранадилла большая (Барбадин) +Гранадилла сладкая +Гранат +Грейпфрут +Грумичама +Груша +Гуайява земляничная +Гуайява коста-риканская +Гуайява красная +Гуайява обыкновенная +Гуарана diff --git "a/lesson03/home_work/data/fruits_\320\224" "b/lesson03/home_work/data/fruits_\320\224" new file mode 100644 index 000000000..9dd92aab7 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\224" @@ -0,0 +1,12 @@ +Давидсония +Дамские пальчики +Деревянное яблоко +Десертный квандонг +Джекфрут +Древесная калебаса +Дуку +Дуриан +Дуриан цибетиновый +Дынная груша +Дынное дерево +Дыня обыкновенная diff --git "a/lesson03/home_work/data/fruits_\320\227" "b/lesson03/home_work/data/fruits_\320\227" new file mode 100644 index 000000000..35ced8dc3 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\227" @@ -0,0 +1,7 @@ +Звездчатое яблоко +Земляничная груша +Земляничный томат +Земляной орех +Зизифус мавританский +Золотая слива +Золотистый апельсин diff --git "a/lesson03/home_work/data/fruits_\320\230" "b/lesson03/home_work/data/fruits_\320\230" new file mode 100644 index 000000000..e71f72ce0 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\230" @@ -0,0 +1,5 @@ +Индийские бобы +Индийский инжир +Индийский миндаль +Индийское розовое яблоко +Инжир diff --git "a/lesson03/home_work/data/fruits_\320\232" "b/lesson03/home_work/data/fruits_\320\232" new file mode 100644 index 000000000..de6462ceb --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\232" @@ -0,0 +1,27 @@ +Кабачки +Каинито +Какао +Кактус инжировый +Каламондин +Калебаса +Канариум яйцевидный +Капский крыжовник +Карамбола +Кас +Квини +Квислендский орех +Кепель +Кетамбилла +Кивано +Киви +Китайская калебаса +Клементин +Кокколоба ягодоносная +Кокос +Корилла +Кофейные деревья +Кранжи +Кумкват овальный +Купуасу +Курбарил +Кустовой горошек diff --git "a/lesson03/home_work/data/fruits_\320\233" "b/lesson03/home_work/data/fruits_\320\233" new file mode 100644 index 000000000..3d11dae9a --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\233" @@ -0,0 +1,16 @@ +Лайм настоящий +Лангсат +Лансиум домашний +Леуцена светлоголовчатая +Либерика +Ликания +Лимон грубокожистый +Лимон обыкновенный +Лимон Мейера +Лимонная осина +Личи +Лобия +Ложный мангустан +Лукума +Луло +Люффа остроребристая diff --git "a/lesson03/home_work/data/fruits_\320\234" "b/lesson03/home_work/data/fruits_\320\234" new file mode 100644 index 000000000..419bf3c87 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\234" @@ -0,0 +1,34 @@ +Маболо +Мадагаскарская слива +Макадамия цельнолистная +Малабарская тыква +Малабарский апельсин +Малайское яблоко +Малуко +Мальпигия гранатолистная +Маммея американская +Мамончилло (Лайм испанский) +Манго благоухающее +Манго великолепное +Манго индийское +Манго резко пахнущее +Мангостан +Мангустан +Мандарин +Манилкара +Маракуйя +Мармеладный плод +Марула +Мауриция извилистая +Маш +Мексиканская земляная вишня +Мексиканский огурец +Мелинжо +Моква +Момбин желтый +Момбин красный +Момордика +Моринда +Мунду +Мускатный орех +Мушмула японская diff --git "a/lesson03/home_work/data/fruits_\320\235" "b/lesson03/home_work/data/fruits_\320\235" new file mode 100644 index 000000000..3e8e7eb67 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\235" @@ -0,0 +1,2 @@ +Наранхилла +Ням-ням diff --git "a/lesson03/home_work/data/fruits_\320\236" "b/lesson03/home_work/data/fruits_\320\236" new file mode 100644 index 000000000..574ba20f2 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\236" @@ -0,0 +1,4 @@ +Обезьяний хлеб +Огурец +Огуречное дерево +Орех кешью diff --git "a/lesson03/home_work/data/fruits_\320\237" "b/lesson03/home_work/data/fruits_\320\237" new file mode 100644 index 000000000..907231a9a --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\237" @@ -0,0 +1,30 @@ +Пальма катеху +Пальма кокосовая +Пальма масличная африканская +Пальма персиковая +Пальчиковый лайм +Папайя +Папайя горная +Папеда +Паприка +Пара-гуайява +Паркия красивая +Пассифлора съедобная +Пекуи +Пепино +Перец +Перец кайенский +Перец стручковый +Персик +Перуанская вишня +Питайя +Питомба +Пиши +Помело +Померанец +Помидор +Помпельмус +Понцирус (несъедобный плод) +Приморский виноград +Путерия +Пуласан diff --git "a/lesson03/home_work/data/fruits_\320\240" "b/lesson03/home_work/data/fruits_\320\240" new file mode 100644 index 000000000..2fb98ed51 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\240" @@ -0,0 +1,6 @@ +Ракум-салакка +Рамбай +Рамбутан +Робуста +Розовое яблоко +Роллиния слизистая diff --git "a/lesson03/home_work/data/fruits_\320\241" "b/lesson03/home_work/data/fruits_\320\241" new file mode 100644 index 000000000..97fc27e8b --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\241" @@ -0,0 +1,24 @@ +Салакка +Салакка скученная +Саламандровое дерево +Сантол +Саподилла +Сатсума +Сахарное яблоко +Сахарный горошек +Свечное дерево +Свити +Сизигиум аквеум +Сизигиум малаккский +Сизигиум ямбоза +Сингапурский миндаль +Слива +Слива какаду +Слоновье яблоко +Сметанное яблоко +Сонсоя +Соя +Спаржевая фасоль +Страстоцвет +Суринамская вишня +Съедобный таитянский орех diff --git "a/lesson03/home_work/data/fruits_\320\242" "b/lesson03/home_work/data/fruits_\320\242" new file mode 100644 index 000000000..27637e3b0 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\242" @@ -0,0 +1,16 @@ +Таитянское яблоко +Такако +Тамарилло +Тамаринд +Танжерин +Терминалия катаппа +Томат настоящий +Томатное дерево +Тукума +Тупа +Тыква бутылочная +Тыква восковая +Тыква мускатная +Тыква обыкновенная +Тыква фиголистная +Тыквенное дерево diff --git "a/lesson03/home_work/data/fruits_\320\244" "b/lesson03/home_work/data/fruits_\320\244" new file mode 100644 index 000000000..f5e84da9b --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\244" @@ -0,0 +1,8 @@ +Фейхоа +Ферония лимонная +Ферония слоновая +Физалис земляничный +Филиппинское розовое яблоко +Филлантус кислый +Финик +Флакурция diff --git "a/lesson03/home_work/data/fruits_\320\245" "b/lesson03/home_work/data/fruits_\320\245" new file mode 100644 index 000000000..6e1a798cc --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\245" @@ -0,0 +1,3 @@ +Хлебное дерево +Хлебные бобы +Хурма восточная (японская) diff --git "a/lesson03/home_work/data/fruits_\320\246" "b/lesson03/home_work/data/fruits_\320\246" new file mode 100644 index 000000000..976d5df10 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\246" @@ -0,0 +1,3 @@ +Цейлонский крыжовник +Циклантера +Цуккини diff --git "a/lesson03/home_work/data/fruits_\320\247" "b/lesson03/home_work/data/fruits_\320\247" new file mode 100644 index 000000000..f83770079 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\247" @@ -0,0 +1,11 @@ +Чайот +Чампедак +Черешня +Черимойя +Черная гуайява +Черная сапота +Черная хурма +Черный тамаринд +Чили +Чилибуха колючая +Чупа diff --git "a/lesson03/home_work/data/fruits_\320\250" "b/lesson03/home_work/data/fruits_\320\250" new file mode 100644 index 000000000..c5c7a3160 --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\250" @@ -0,0 +1 @@ +Шоколадное дерево diff --git "a/lesson03/home_work/data/fruits_\320\257" "b/lesson03/home_work/data/fruits_\320\257" new file mode 100644 index 000000000..ab14ccd5b --- /dev/null +++ "b/lesson03/home_work/data/fruits_\320\257" @@ -0,0 +1,5 @@ +Яблоко +Яблоко-кажу +Яботикаба +Ямайская вишня +Ятоба diff --git a/lesson03/home_work/data/hours_of b/lesson03/home_work/data/hours_of index 7e3c12c36..227d52838 100644 --- a/lesson03/home_work/data/hours_of +++ b/lesson03/home_work/data/hours_of @@ -1,4 +1,4 @@ -Имя Фамилия Отработано часов +Имя Фамилия Отработано_часов Петр Алексеев 120 Матвей Бурин 160 Василий Сидоров 122 diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index edfe0d190..6c0049e72 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -9,7 +9,7 @@ # Ввод: -2/3 - -2 # Вывод: 1 1/3 - +print("\nЗадание-1") def parsing_num(num): #Проверяем на отрицательность @@ -64,6 +64,60 @@ def parsing_num(num): # они получают удвоенную ЗП, пропорциональную норме. # Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" +print("\nЗадание-2") + +import os +def Search_HourseOf(Worker): + for item in ListHourseOf: + if (item["Имя"] == Worker["Имя"] and item["Фамилия"] == Worker["Фамилия"]): + return item +def Calculate_ZP(Stavka, Norma, Otrabotano): + StoimostChasa = Stavka / Norma + if Otrabotano > Norma: + Pererabotka = Otrabotano - Norma + return(Stavka+Pererabotka*2*StoimostChasa) + elif Otrabotano < Norma: + Nedorabotka = Norma - Otrabotano + return(Stavka-Nedorabotka*StoimostChasa) + else: + return(Stavka) + + +def Parcing_file(DIR, FileName): + List_Data = [] + with open(os.path.join(DIR, FileName), 'r', encoding='UTF-8') as f: + for i, line in enumerate(f): # считываем файл построчно + #Первую строку парсим как заголовок + if i == 0: + header = line.split() + else: + #Все остальные строки парсим с данными + d ={} + data_line = line.split() + for j, item in enumerate(header): + if j < len(data_line): + d[item] = data_line[j] + else: + d[item] = "" + List_Data.append(d) + return List_Data + + + +DIR = "data" +FileName_Workers = "workers" +FileName_HourseOf = "hours_of" +ListWorkers = Parcing_file(DIR,FileName_Workers) +# print(ListWorkers) +ListHourseOf = Parcing_file(DIR,FileName_HourseOf) +# print(ListHourseOf) +print("Начислено ЗП:") +for Worker in ListWorkers: + Otrabotano = float(Search_HourseOf(Worker)["Отработано_часов"]) + Norma = float(Worker["Норма_часов"]) + Stavka = float(Worker["Зарплата"]) + print(Worker["Фамилия"], Worker["Имя"], round(Calculate_ZP(Stavka, Norma, Otrabotano),2)) + # Задание-3: # Дан файл ("data/fruits") со списком фруктов. @@ -77,3 +131,29 @@ def parsing_num(num): # Подсказка: # Чтобы получить список больших букв русского алфавита: # print(list(map(chr, range(ord('А'), ord('Я')+1)))) + +print("\nЗадание-3") + +def Parcing_file(DIR, FileName): + List_Data = [] + with open(os.path.join(DIR, FileName), 'r', encoding='UTF-8') as f: + for line in f: # считываем файл построчно + if line != "\n": + List_Data.append(line.replace("\n","")) + return List_Data + +def WriteFile(NameFruit): + FileName = "fruits_"+NameFruit[0] + with open(os.path.join(DIR, FileName), 'a', encoding='UTF-8') as f: + f.writelines(NameFruit+"\n") + + +DIR = "data" +FileName_fruits = "fruits.txt" +Listfruits = Parcing_file(DIR, FileName_fruits) +for fruit in Listfruits: + WriteFile(fruit) +print("Выполнено") + + + From 319ff9e97875147446c04e9f8782a89489f655bb Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 6 Oct 2019 16:27:28 +0300 Subject: [PATCH 11/11] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson04/home_work/data/DataRandom.txt | 1 + lesson04/home_work/hw04_easy.py | 14 +++++ lesson04/home_work/hw04_hard.py | 73 +++++++++++++++++++++++ lesson04/home_work/hw04_normal.py | 81 ++++++++++++++++++++++++++ 4 files changed, 169 insertions(+) create mode 100644 lesson04/home_work/data/DataRandom.txt diff --git a/lesson04/home_work/data/DataRandom.txt b/lesson04/home_work/data/DataRandom.txt new file mode 100644 index 000000000..ba0ff2c48 --- /dev/null +++ b/lesson04/home_work/data/DataRandom.txt @@ -0,0 +1 @@ +9014115852322424981321873129559716622405169979639765051376476807198476201511294341485503881427506711885620608803821062711526393584914426478075230048861389281241372019490445239973198825176024978137546453789253888590824435867055369207572669973468299393680554348696572224180835727460391277572852386286590854380387610893483793938716582911465847020087606202550870042219428862117203822828658157739889672849559326263859540007232938634819438378084601938120549889151623155816174410492917274728284817353374121275993508816063098574949397794795727568224002648472900794166038740068575764062132966999598238593242460382979378888555491634802262914253374685352302962447823409938529490193893502722866870742266357957941207516627304489793551280747163540964980132268540188694425894107619099439097335375688525421599109665658285144217305796206964253081118350250062855456276371373656490480927206432529608500807345526265860508101059124092502121322924596989866546534721401775972774056584600440455953753507365181190919342084514671780173577685098566866154654100002617127030991801390467250725782256989887958323249017486394974614166160891564508785094176884108758318620623369865177883003402895348765279220203355757562619472843965883267394928659565597055614582323021473172462422741765772812291052994565777942139450932929902255322505008792945236714568942230937330473167038754349697804614755440670830786407534417238753444807931142948990847655376724846343344886796988263427527785099428857237852304270361208384038083019912152560004451770309277633202519483205417589449950193064346106724955996617784133917108961627839596475759774461818849425395229539922211311207514749836653636878840296860221632416213189219914836886814595532964922955018585173878571760836435340538136909743881444063060036294832123089095227967093187437247516004573875863810595451441981696786450413338694970369217481279306833559529991075922027928429774061013530000809577874298057730271184501949656484852927911999703821931906825302564887790568159342041258571904791179913502298965443982020056686355742123226520761954479450950909850056264458316993924540227887130035783889624303128456733484004851051654475625537684003746605575012794418058047157631242575159560538360940325619700674569501820014565954720417432161684370714636330649039271948174157699971678912666360450493066493946838618748062983351300497541723732431430703043375302362733206142250173115659365063578255591432639460966715082573432080948034180891343451711428113722864760140455763901740656741466852678531589583160912836 \ No newline at end of file diff --git a/lesson04/home_work/hw04_easy.py b/lesson04/home_work/hw04_easy.py index 85035ea8b..9eb6e7da4 100644 --- a/lesson04/home_work/hw04_easy.py +++ b/lesson04/home_work/hw04_easy.py @@ -6,13 +6,27 @@ # квадратами элементов исходного списка # [1, 2, 4, 0] --> [1, 4, 16, 0] +print("\nЗадание-1") +print([item**2 for item in [1, 2, 4, 0]]) + # Задание-2: # Даны два списка фруктов. # Получить список фруктов, присутствующих в обоих исходных списках. +print("\nЗадание-2") +List_fruits1 = ['яблоко','груша','слива','апельсин','мандарин'] +List_fruits2 = ['груша','ананас','персик','слива','абрикос'] +fruits1 = set(List_fruits1) +fruits2 = set(List_fruits2) +print(list(fruits1.intersection(fruits2))) + # Задание-3: # Дан список, заполненный произвольными числами. # Получить список из элементов исходного, удовлетворяющих следующим условиям: # + Элемент кратен 3 # + Элемент положительный # + Элемент не кратен 4 + +print("\nЗадание-3") +SourceList = [123,3456,234,12,576,423,43,2,21,-45,67] +print([item for item in SourceList if item % 3 == 0 and item > 0 and item % 4 != 0]) diff --git a/lesson04/home_work/hw04_hard.py b/lesson04/home_work/hw04_hard.py index 3b12dc315..63919d0d7 100644 --- a/lesson04/home_work/hw04_hard.py +++ b/lesson04/home_work/hw04_hard.py @@ -13,6 +13,10 @@ # Суть сложности hard: Решите задачу в одну строку +print("\nЗадание-1") + +print("rotate_matrix = ", list(map(list, zip(*matrix)))) + # Задание-2: # Найдите наибольшее произведение пяти последовательных цифр в 1000-значном числе. # Выведите произведение и индекс смещения первого числа последовательных 5-ти цифр. @@ -39,6 +43,26 @@ 05886116467109405077541002256983155200055935729725 71636269561882670428252483600823257530420752963450""" +print("\nЗадание-2") + +def MultipleNum(Num): + Mult = 1 + for Item in Num: + Mult = Mult * int(Item) + return Mult + +number = number.replace("\n","") +l = [number[i+1:i+6] for i in range(len(number)-5)] +Max = 0 +for inx,Item in enumerate(l): + Num = MultipleNum(Item) + if Num > Max: + Max = Num + Index = inx + Sequence = Item + +print("MaxMult=",Max,"Index=",Index,"Sequence=",Sequence) +print(len(l)) # Задание-3 (Ферзи): # Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били @@ -47,3 +71,52 @@ # Программа получает на вход восемь пар чисел, # каждое число от 1 до 8 — координаты 8 ферзей. # Если ферзи не бьют друг друга, выведите слово NO, иначе выведите YES. + + +print("\nЗадание-3") + + +#Ферзи будут бить друг друга если находятся на одной горизонтальной, вертикальной линии +#или на одной диагонали. +#Соответсвенно если есть одинаковые значения координаты X или координаты Y +#или если |X2-X1|/|Y2-Y1|=1 (т.е. угловой коэффициент равен 1 или 45градусов) + +#Инициируем исходные данные +#a7, b4, c2, d8, e6, f1, g3, h5:(87) +List = [ + {"X": 1, + "Y": 7}, + {"X": 2, + "Y": 4}, + {"X": 3, + "Y": 2}, + {"X": 4, + "Y": 8}, + {"X": 5, + "Y": 6}, + {"X": 6, + "Y": 1}, + {"X": 7, + "Y": 3}, + {"X": 8, + "Y": 5}, +] +#Функция проверки на пересечения двух ферзей +def ver(F1, F2): + if F1["X"] == F2["X"]: + return True + elif F1["Y"] == F2["Y"]: + return True + elif abs(F1["X"] - F2["X"]) == abs(F1["Y"] - F2["Y"]): + return True + else: + return False + +#Проверяем координаты на вышеописанные условия каждый с каждым +for i,item1 in enumerate(List): + for j,item2 in enumerate(List[i+1:len(List)]): + if ver(item1, item2): + print(i,item1,j,item2) + print("YES") + exit() +print("NO") diff --git a/lesson04/home_work/hw04_normal.py b/lesson04/home_work/hw04_normal.py index 739dd33f8..02b96ca92 100644 --- a/lesson04/home_work/hw04_normal.py +++ b/lesson04/home_work/hw04_normal.py @@ -21,6 +21,34 @@ 'zTYwZAiRwycdlHfyHNGmkNqSwXUrxGc' +print("Задание-1") +print("Решение с помощью re") +import re +print(re.findall("[A-Z]*([a-z]+)[A-Z]*", line)) + +print("Решение без re") +ResList = [] +SubStr = "" +Flag = False +for item in line: + if item.islower(): + if Flag: + ResList.append(SubStr) + SubStr = "" + Flag = False + SubStr += item + continue + elif item.isupper(): + Flag = True + continue + else: + SubStr = "" +ResList.append(SubStr) +print(ResList) + + + + # Задание-2: # Вывести символы в верхнем регистре, слева от которых находятся # два символа в нижнем регистре, а справа - два символа в верхнем регистре. @@ -45,9 +73,62 @@ 'JFaXiUWgsKQrDOeZoNlZNRvHnLgCmysUeKnVJXPFIzvdDyleXylnKBfLCjLHntltignbQ'\ 'oiQzTYwZAiRwycdlHfyHNGmkNqSwXUrxGC' + +print("\nЗадание-2") +import re +print(re.findall("[a-z]{2}([A-Z]+)[A-Z]{2}", line_2)) + + # Задание-3: # Напишите скрипт, заполняющий указанный файл (самостоятельно задайте имя файла) # произвольными целыми цифрами, в результате в файле должно быть # 2500-значное произвольное число. # Найдите и выведите самую длинную последовательность одинаковых цифр # в вышезаполненном файле. + +print("\nЗадание-3") + + +def InitFileData(): + 'Функция инициирования файла с данными' + def WriteFile(Data, DIR, FileName_DataRandom): + with open(os.path.join(DIR, FileName_DataRandom), 'w', encoding='UTF-8') as f: + f.writelines(Data) + + import random + import os + #print(10**2500) + InitData = [str(random.randint(0, 9)) for _ in range(2500)] + InitData = "".join(InitData) + WriteFile(InitData, DIR, FileName_DataRandom) + #print("".join(InitData)) + +def LoadFileData(): + 'Функция загрузки данных из файла' + import os + Data = "" + with open(os.path.join(DIR, FileName_DataRandom), 'r', encoding='UTF-8') as f: + for line in f: # считываем файл построчно + Data += line + return Data + + +import re +DIR = "data" +FileName_DataRandom = "DataRandom.txt" +InitFileData() +Data = LoadFileData() +print(Data) +#Находим все последовательности из повторяющихся символов +List = re.findall("[0]{2,}|[1]{2,}|[2]{2,}|[3]{2,}|[4]{2,}|[5]{2,}|[6]{2,}|[7]{2,}|[8]{2,}|[9]{2,}",Data) +#Считаем количество символов в кадой последовательности +CountList = [len(Item) for Item in List] +#Находим максимальное значение повторений +IndexMaxLen = CountList.index(max(CountList)) +print("Самая длинная последовательность:",List[IndexMaxLen]) + + + + + +