From 5e4a8417a4810d1d3efb440eef6a781e5304bd24 Mon Sep 17 00:00:00 2001 From: inf0rcer Date: Tue, 24 Sep 2019 19:10:57 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20easy=20=D0=B8=20normal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson01/home_work/hw01_easy.py | 20 +++++++++++++++++- lesson01/home_work/hw01_normal.py | 34 ++++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/lesson01/home_work/hw01_easy.py b/lesson01/home_work/hw01_easy.py index f927b0b06..4b043a145 100644 --- a/lesson01/home_work/hw01_easy.py +++ b/lesson01/home_work/hw01_easy.py @@ -1,5 +1,5 @@ -__author__ = 'Ваши Ф.И.О.' +__author__ = 'Горяев Никита Андреевич' # Задача-1: Дано произвольное целое число (число заранее неизвестно). # Вывести поочередно цифры исходного числа (порядок вывода цифр неважен). @@ -9,6 +9,11 @@ # код пишем тут... +number_units = input('Введите число ') +i = 0 +while i < len(number_units): + print(number_units[i]) + i += 1 # Задача-2: Исходные значения двух переменных запросить у пользователя. # Поменять значения переменных местами. Вывести новые значения на экран. @@ -18,7 +23,20 @@ # Не нужно решать задачу так: # print("a = ", b, "b = ", a) - это неправильное решение! +unit1 = input("Введите первое число") +unit2 = input("Введите второе число") +fake = unit1 +unit1 = unit2 +unit2 = fake +print(unit1,"теперь равен", unit2) +print(unit2,"теперь равен", unit1) # Задача-3: Запросите у пользователя его возраст. # Если ему есть 18 лет, выведите: "Доступ разрешен", # иначе "Извините, пользование данным ресурсом только с 18 лет" + +age = int(input("Введите ваш возраст")) +if age >= 18: + print("Доступ разрешен") +else: + print("Извините, пользование данным ресурсом только с 18 лет") \ No newline at end of file diff --git a/lesson01/home_work/hw01_normal.py b/lesson01/home_work/hw01_normal.py index 991724e9a..c9e08631e 100644 --- a/lesson01/home_work/hw01_normal.py +++ b/lesson01/home_work/hw01_normal.py @@ -1,5 +1,5 @@ -__author__ = 'Ваши Ф.И.О.' +__author__ = 'Горяев Никита Андреевич' # Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа. # Например, дается x = 58375. @@ -10,6 +10,16 @@ # * постарайтесь решить задачу с применением арифметики и цикла while; # * при желании и понимании решите задачу с применением цикла for. +#!/usr/bin/env python3 + +user_number = int(input("Введите число")) +compare_number = -1 +while user_number > 10: + division_number = user_number % 10 + user_number //= 10 + if division_number > compare_number: + compare_number = division_number +print("Наибольшая цифра -",compare_number) # Задача-2: Исходные значения двух переменных запросить у пользователя. # Поменять значения переменных местами. Вывести новые значения на экран. @@ -18,6 +28,11 @@ # * постарайтесь сделать решение через действия над числами; # * при желании и понимании воспользуйтесь синтаксисом кортежей Python. +unit1 = input("Введите первое число") +unit2 = input("Введите второе число") +unit1,unit2 = unit2,unit1 +print("Первое число теперь",unit1) +print("Второе число теперь",unit2) # Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида # ax² + bx + c = 0. @@ -25,3 +40,20 @@ # Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math: # import math # math.sqrt(4) - вычисляет корень числа 4 + +import math +print("Введите значения квадратного уравнения") +a = int(input("a=")) +b = int(input("b=")) +c = int(input("c=")) +d = b*b - 4*a*c +if d < 0: + print("Корней нет") +if d == 0: + x_first = (- b - math.sqrt(d)) / (2 * a) + print("Уравнение имеет один корень равный",x_first) +if d > 0: + x_first = (- b - math.sqrt(d)) / (2 * a) + x_second = (- b + math.sqrt(d)) / (2 * a) + print("Первый корень равен",x_first) + print("Второй корень равен",x_second) From 9b6505017f07307ba9b6d712c49b77bf51731c13 Mon Sep 17 00:00:00 2001 From: inf0rcer Date: Mon, 30 Sep 2019 16:32:59 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20easy=20=D0=B8?= =?UTF-8?q?=20normal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson02/home_work/hw02_easy.py | 24 ++++++++++++++-- lesson02/home_work/hw02_normal.py | 47 +++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 2 deletions(-) diff --git a/lesson02/home_work/hw02_easy.py b/lesson02/home_work/hw02_easy.py index ed4447e50..4a27b9e11 100644 --- a/lesson02/home_work/hw02_easy.py +++ b/lesson02/home_work/hw02_easy.py @@ -1,8 +1,7 @@ # Задача-1: # Дан список фруктов. # Напишите программу, выводящую фрукты в виде нумерованного списка, -# выровненного по правой стороне. - +# # выровненного по правой стороне. # Пример: # Дано: ["яблоко", "банан", "киви", "арбуз"] # Вывод: @@ -13,13 +12,34 @@ # Подсказка: воспользоваться методом .format() +fruit_pack = ['яблоко', 'банан', 'киви', 'арбуз'] +for i in range(0, len(fruit_pack)): + print(str(i + 1) + '.' + '{:>7}'.format(fruit_pack[i])) + + + # Задача-2: # Даны два произвольные списка. # Удалите из первого списка элементы, присутствующие во втором списке. +first_pack = ['1', '2', '3', '4', '5', '6', '7'] +second_pack = ['1', '3', '6'] +for item in second_pack: + if item in first_pack: + first_pack.remove(item) + # Задача-3: # Дан произвольный список из целых чисел. # Получите НОВЫЙ список из элементов исходного, выполнив следующие условия: # если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два. +full_pack = ['1', '2', '3', '4', '5', '6', '7', '12'] +empty_pack = [] +for i in range(0, len(full_pack)): + check_number = int(full_pack[i]) + if check_number % 2 == 0: + empty_pack.append(check_number/4) + else : + empty_pack.append(check_number*2) +print(empty_pack) diff --git a/lesson02/home_work/hw02_normal.py b/lesson02/home_work/hw02_normal.py index 3acfaabb6..90b646618 100644 --- a/lesson02/home_work/hw02_normal.py +++ b/lesson02/home_work/hw02_normal.py @@ -5,17 +5,57 @@ # если такой корень вообще можно извлечь # Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2] +import math +my_pack = [2, -5, 8, 9, -25, 25, 4, ] +empty_pack = [] +for item in my_pack: + if item > 0 and math.sqrt(item) % 1 == 0: + empty_pack.append(int(math.sqrt(item))) +print(empty_pack) + # Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013. # Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года. # Склонением пренебречь (2000 года, 2010 года) +user_date = input('Введите дату:') +date_check = user_date.split('.') +dic_days = { + '01': 'первое', '02': 'второе', '03': 'третье', '04': 'четвёртое', '05': 'пятое', +'06': 'шестое', '07': 'седьмое', '08': 'восьмое', '09': 'девятое', '10': 'десятое', +'11': 'одиннадцатое', '12': 'двенадцатое', '13': 'тринадцатое', '14': 'четырнадцатое', '15': 'пятнадцатое', +'16': 'шестнадцатое', '17': 'семнадцатое', '18': 'восемнадцатое', '19': 'девятнадцатое', '20': 'двадцатое', +'21': 'двадцать первое', '22': 'двадцать второе', '23': 'двадцать третье', '24': 'двадцать четвёртое', +'25': 'двадцать пятое', '26': 'двадцать шестое', '27': 'двадцать седьмое', '28': 'двадцать восьмое', +'29': 'двадцать девятое', '30': 'тридцатое', '31': 'тридцать первое' +} + +dic_months = { +'01': 'января', '02': 'феврал', '03': 'марта', '04': 'апреля', '05': 'мая', '06': 'июня', +'07': 'июля', '08': 'августа', '09': 'сентября', '10': 'октября', '11': 'ноября', '12': 'декабря', +} + +for key in dic_days: + if date_check[0] == key: + date_check[0] = dic_days[key] + +for key in dic_months: + if date_check[1] == key: + date_check[1] = dic_months[key] + +print(date_check[0] + ' ' + date_check[1] + ' ' + date_check[2] + ' ' "года") # Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами # в диапазоне от -100 до 100. В списке должно быть n - элементов. # Подсказка: # для получения случайного числа используйте функцию randint() модуля random +import random +empty_pack = [] +pack_range = int(input('Введите желаемое количество элементов списка')) +for i in range(pack_range): + empty_pack.append(random.randint(-100, 100)) +print(empty_pack) # Задача-4: Дан список, заполненный произвольными целыми числами. # Получите новый список, элементами которого будут: @@ -23,3 +63,10 @@ # например, 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] + +my_pack = [1, 2, 4, 5, 6, 2, 5, 2] +perfect_pack = [] +for item in my_pack: + if my_pack.count(item) == 1: + perfect_pack.append(item) +print(perfect_pack) \ No newline at end of file From d947089c11815f18598d5bb92edc3992e067d96c Mon Sep 17 00:00:00 2001 From: inf0rcer Date: Sun, 6 Oct 2019 19:33:00 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9D=D0=B5=20=D1=81=D0=BE=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=D0=BC=20=D1=81=D0=BC=D0=BE=D0=B3=20=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D1=82=D1=8C=D1=81=D1=8F=20=D1=81=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=203=20=D1=87?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D0=B8=20normal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson03/home_work/hw03_easy.py | 17 +++++++++---- lesson03/home_work/hw03_normal.py | 42 +++++++++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/lesson03/home_work/hw03_easy.py b/lesson03/home_work/hw03_easy.py index 63d13f646..1f22e8ee5 100644 --- a/lesson03/home_work/hw03_easy.py +++ b/lesson03/home_work/hw03_easy.py @@ -5,7 +5,10 @@ # Для решения задачи не используйте встроенные функции и функции из модуля math. def my_round(number, ndigits): - pass + number = number * (10 ** ndigits) + 0.41 + number = number // 1 + return number / (10 ** ndigits) + print(my_round(2.1234567, 5)) @@ -18,11 +21,15 @@ def my_round(number, ndigits): # Решение реализовать в виде функции. # Билет считается счастливым, если сумма его первых и последних цифр равны. # !!!P.S.: функция не должна НИЧЕГО print'ить - def lucky_ticket(ticket_number): - pass - - + ticket_number = str(ticket_number) + x = list(map(int, ticket_number)) + if sum(x[:len(x)//2])==sum(x[len(x)//2:]): + res = ('lucky') + else: + res = ('unlucky') + return res print(lucky_ticket(123006)) print(lucky_ticket(12321)) print(lucky_ticket(436751)) + diff --git a/lesson03/home_work/hw03_normal.py b/lesson03/home_work/hw03_normal.py index 38ac1fcc1..31239f1d8 100644 --- a/lesson03/home_work/hw03_normal.py +++ b/lesson03/home_work/hw03_normal.py @@ -3,8 +3,17 @@ # Первыми элементами ряда считать цифры 1 1 def fibonacci(n, m): + fibb1 = fibb2 = 1 + fibb_par = [] + fibb_par.append(fibb1) + for fibb in range(2, m): + fibb1, fibb2 = fibb2, fibb1 + fibb2 + if fibb >= n: + fibb_par.append(fibb1) + fibb_par.append(fibb2) + print(fibb_par) pass - +fibonacci(1, 10) # Задача-2: # Напишите функцию, сортирующую принимаемый список по возрастанию. # Для сортировки используйте любой алгоритм (например пузырьковый). @@ -12,16 +21,45 @@ def fibonacci(n, m): def sort_to_max(origin_list): - pass + rep = 1 + while rep < len(origin_list): + for i in range(len(origin_list)-rep): + if origin_list[i] > origin_list[i+1]: + origin_list[i],origin_list[i+1] = origin_list[i+1],origin_list[i] + rep = rep + 1 + print(origin_list) + + return origin_list sort_to_max([2, 10, -12, 2.5, 20, -11, 4, 4, 0]) # Задача-3: # Напишите собственную реализацию стандартной функции filter. # Разумеется, внутри нельзя использовать саму функцию filter. +def func(x): + return res_func +def filter_clone(res_func, par2): + result_list = [] + for i in range(len(par2)): + if func(x) == true: + result_list.append(res_func) + return result_list + # Задача-4: # Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4). # Определить, будут ли они вершинами параллелограмма. +def check_parall(x1, y1, x2, y2, x3, y3, x4, y4): + side1 = y2 - y1 + side2 = x3 - x2 + side3 = y3 - y4 + side4 = x4 - x1 + if side1 == side3 and side2 == side4: + print('Oh, its a parallelogram') + else: + print('Thats not a parallelogram') + pass + +check_parall(1, 1, 1, 4, 4, 4, 4, 1) From b87315663b8c9d078f048e57a3a136e657cb4c45 Mon Sep 17 00:00:00 2001 From: inf0rcer Date: Sun, 6 Oct 2019 21:58:46 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D0=B8=D0=B7=D0=B8,2?= =?UTF-8?q?=20=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson04/home_work/hw04_easy.py | 14 ++++++-- lesson04/home_work/hw04_normal.py | 53 ++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 3 deletions(-) diff --git a/lesson04/home_work/hw04_easy.py b/lesson04/home_work/hw04_easy.py index 85035ea8b..16a56a824 100644 --- a/lesson04/home_work/hw04_easy.py +++ b/lesson04/home_work/hw04_easy.py @@ -5,14 +5,24 @@ # Получить новый список, элементы которого будут # квадратами элементов исходного списка # [1, 2, 4, 0] --> [1, 4, 16, 0] - +basic_list = [1, 2, 4, 0] +quads_list = [i**2 for i in basic_list] +print(quads_list) # Задание-2: # Даны два списка фруктов. # Получить список фруктов, присутствующих в обоих исходных списках. - +fruit_pack1 = ['Апельсин', 'Мандарин', 'Яблоко', 'Груша', 'Персик'] +fruit_pack2 = ['Апельсин', 'Яблоко', 'Нектарин', 'Манго', 'Маракуйя'] +fruit_pack3 = [i for i in fruit_pack1 if i in fruit_pack2] +print(fruit_pack3) # Задание-3: # Дан список, заполненный произвольными числами. # Получить список из элементов исходного, удовлетворяющих следующим условиям: # + Элемент кратен 3 # + Элемент положительный # + Элемент не кратен 4 +import random +ran_list = [random.randint(-10, 10) for _ in range(10)] +print(ran_list) +filt_list = [el for el in ran_list if el % 3 == 0 and el >= 0 and el % 4 > 0] +print(filt_list) \ No newline at end of file diff --git a/lesson04/home_work/hw04_normal.py b/lesson04/home_work/hw04_normal.py index 739dd33f8..cf78f7d33 100644 --- a/lesson04/home_work/hw04_normal.py +++ b/lesson04/home_work/hw04_normal.py @@ -19,8 +19,21 @@ 'qHFjvihuNGEEFsfnMXTfptvIOlhKhyYwxLnqOsBdGvnuyEZIheApQGOXWeXoLWiDQNJFa'\ 'XiUWgsKQrDOeZoNlZNRvHnLgCmysUeKnVJXPFIzvdDyleXylnKBfLCjLHntltignbQoiQ'\ 'zTYwZAiRwycdlHfyHNGmkNqSwXUrxGc' +#1)используя re +import re +res = re.findall(r'[a-z]+', line) +print(res) +#2)не используя re +symbols_up = list(map(lambda x: chr(x), list(range(65,91)))) +line_list = list(line) +for i, el in enumerate(line_list[:]): + for el2 in symbols_up: + if el == el2: + line_list[i] = ' ' +str_sep = ''.join(line_list).split(' ') - +res_str = [i for i in str_sep if i != ''] +print(res_str) # Задание-2: # Вывести символы в верхнем регистре, слева от которых находятся # два символа в нижнем регистре, а справа - два символа в верхнем регистре. @@ -44,7 +57,45 @@ 'uXBqHFjvihuNGEEFsfnMXTfptvIOlhKhyYwxLnqOsBdGvnuyEZIheApQGOXWeXoLWiDQN'\ 'JFaXiUWgsKQrDOeZoNlZNRvHnLgCmysUeKnVJXPFIzvdDyleXylnKBfLCjLHntltignbQ'\ 'oiQzTYwZAiRwycdlHfyHNGmkNqSwXUrxGC' +#1)используя re +res = re.findall(r'[a-z]{2}([A-Z]+)[A-Z]{2}', line_2) +print(res) +#2)не используя re +symbols_up = list(map(lambda x: chr(x), list(range(65, 91)))) +symbols_down = list(map(lambda x: chr(x), list(range(97, 123)))) +line_list2 = list(line_2) + +list1 = [] +i = len(line_list2) - 1 + +while i >= 0: + if line_list2[i] in symbols_down: + list1.append(line_list2[i]) + elif line_list2[i] in symbols_up and i <= len(line_list2) - 3 and line_list2[i+1] in symbols_up and line_list2[i+2] in symbols_up: + list1.append(line_list2[i]) + else: + list1.append(' ') + i -= 1 +list1.reverse() + +i = 0 +list2 = [] + +while i <= len(list1)-1: + if list1[i] in symbols_down: + upper = True + if list1[i] in symbols_up and list1[i-1] in symbols_down and list1[i-2] in symbols_down: + list2.append(list1[i]) + upper = False + elif list1[i] in symbols_up and upper == False: + list2.append(list1[i]) + else: + list2.append(' ') + i += 1 +string=''.join(list2).split(' ') +res_str_2 = [i for i in string if i != ''] +print(res_str_2) # Задание-3: # Напишите скрипт, заполняющий указанный файл (самостоятельно задайте имя файла) # произвольными целыми цифрами, в результате в файле должно быть From 400a7f5e585c9c5f2675dd31d8fe91321f24dc2a Mon Sep 17 00:00:00 2001 From: inf0rcer Date: Thu, 10 Oct 2019 13:13:48 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20easy=20=D0=B8=20no?= =?UTF-8?q?rmal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson05/home_work/hw05_easy.py | 49 +++++++++++++++++++++++++++++++ lesson05/home_work/hw05_normal.py | 27 +++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/lesson05/home_work/hw05_easy.py b/lesson05/home_work/hw05_easy.py index c6317de2b..e83898c76 100644 --- a/lesson05/home_work/hw05_easy.py +++ b/lesson05/home_work/hw05_easy.py @@ -2,9 +2,58 @@ # Напишите скрипт, создающий директории dir_1 - dir_9 в папке, # из которой запущен данный скрипт. # И второй скрипт, удаляющий эти папки. +import os +import sys +import shutil + +dir_name = [('dir_' + str(i + 1)) for i in range(9)] + +def make_dir(path): + dir_loc = os.path.join(os.getcwd(), path) + try: + os.mkdir(dir_loc) + print(' -- папка успешно создана') + except: + print(dir_loc + ' -- папка уже существует') + + +for i in dir_name: + make_dir(i) + +def remove_dir(path): + dir_loc = os.path.join(os.getcwd(), path) + try: + os.rmdir(dir_loc) + print(' -- папка успешно удалена') + except: + print(dir_loc + ' -- такой папки не существует') + pass + +for i in dir_name: + remove_dir(i) # Задача-2: # Напишите скрипт, отображающий папки текущей директории. +path = os.getcwd() +def view_directories(path): + for _ in os.listdir(path): + print(_) # Задача-3: # Напишите скрипт, создающий копию файла, из которого запущен данный скрипт. +#def copy_file(orig_file, clone_file): +# shutil.copy(orig_file, clone_file) + + +#orig_file = sys.argv[0] +#clone_file = orig_file + '.copy' +#copy_file(orig_file,clone_file) + + +#ДЛЯ ИМПОРТА В NORMAL +def change_dir(path): + try: + os.chdir(path) + print(os.getcwd() + ' -- текущая директория') + except: + print(dir_path + ' -- такой директории не существует') \ No newline at end of file diff --git a/lesson05/home_work/hw05_normal.py b/lesson05/home_work/hw05_normal.py index ead6bbc19..3bc480846 100644 --- a/lesson05/home_work/hw05_normal.py +++ b/lesson05/home_work/hw05_normal.py @@ -13,3 +13,30 @@ # Для решения данной задачи используйте алгоритмы из задания easy, # оформленные в виде соответствующих функций, # и импортированные в данный файл из easy.py +import os +import hw05_easy +selection ='x' +while selection != '5': + print('1) Перейти в папку') + print('2) Посмотреть текущую папку') + print('3) Удалить папку') + print('4) Создать папку') + print('5) Выход') + selection = input('Выберите действие: ' ) + print(selection) + if selection == '1': + path = input ('Введите полный путь папки: ') + hw05_easy.change_dir(path) + elif selection == '2': + path = os.getcwd() + hw05_easy.view_directories(path) + elif selection == '3': + path = input('Введите полный путь папки: ') + hw05_easy.remove_dir(path) + elif selection == '4': + path = input('Введите полный путь папки: ') + hw05_easy.make_dir(path) + elif selection == '5': + pass + else: + print('Такого пункта меню нет') \ No newline at end of file