From faf25aeb5824ebcea22a08d52c2e69ed8c1c54b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=91=D0=B0=D1=85?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=D0=BD?= Date: Tue, 23 Oct 2018 17:20:21 +0300 Subject: [PATCH] hw03 is done --- hw03_easy.py | 36 +++++++++++++++++++++++++++ hw03_normal.py | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 hw03_easy.py create mode 100644 hw03_normal.py diff --git a/hw03_easy.py b/hw03_easy.py new file mode 100644 index 0000000..4535e48 --- /dev/null +++ b/hw03_easy.py @@ -0,0 +1,36 @@ +__author__ = 'Sergey Bakhonin' + +# Задание-1: +# Напишите функцию, округляющую полученное произвольное десятичное число +# до кол-ва знаков (кол-во знаков передается вторым аргументом). +# Округление должно происходить по математическим правилам (0.6 --> 1, 0.4 --> 0). +# Для решения задачи не используйте встроенные функции и функции из модуля math. + +def my_round(number, ndigits): + result = number + decad = 10 ** ndigits + n = result * decad + if n - int(n) >= 0.5: + result = (int(n) + 1) / decad + else: + result = int(n) / decad + return result + +print(my_round(2.1234567, 5)) +print(my_round(2.1999967, 5)) +print(my_round(2.9999967, 5)) + + +# Задание-2: +# Дан шестизначный номер билета. Определить, является ли билет счастливым. +# Решение реализовать в виде функции. +# Билет считается счастливым, если сумма его первых и последних цифр равны. +# !!!P.S.: функция не должна НИЧЕГО print'ить + +def lucky_ticket(ticket_number): + s = str(ticket_number) + return len(s) == 6 and (int(s[0]) + int(s[1]) + int(s[2]) == int(s[3]) + int(s[4]) + int(s[5])) + +print(lucky_ticket(123006)) +print(lucky_ticket(12321)) +print(lucky_ticket(436751)) \ No newline at end of file diff --git a/hw03_normal.py b/hw03_normal.py new file mode 100644 index 0000000..4a0ea08 --- /dev/null +++ b/hw03_normal.py @@ -0,0 +1,66 @@ +__author__ = 'Sergey Bakhonin' + +# Задание-1: +# Напишите функцию, возвращающую ряд Фибоначчи с n-элемента до m-элемента. +# Первыми элементами ряда считать цифры 1 1 + +def fibonacci(n, m): + i = 2 + lst = [1, 1] + while i < m: + a = lst[i - 1] + lst[i - 2] + lst.append(a) + i = i + 1 + return lst[n-1: m] + +# Задача-2: +# Напишите функцию, сортирующую принимаемый список по возрастанию. +# Для сортировки используйте любой алгоритм (например пузырьковый). +# Для решения данной задачи нельзя использовать встроенную функцию и метод sort() + + +def sort_to_max(origin_list): + b = origin_list + c = True + while c: + c = False + i = 0 + while i < len(b) - 1: + h = b[i] + l = b[i + 1] + if h > l: + b[i] = l + b[i + 1] = h + c = True + i = i + 1 + print(b) +sort_to_max([2, 10, -12, 2.5, 20, -11, 4, 4, 0]) + +# Задача-3: +# Напишите собственную реализацию стандартной функции filter. +# Разумеется, внутри нельзя использовать саму функцию filter. + + +# пример функции дающей true/false кастомному фильтру +def func(x): + if x > 0: + return 1 + else: + return 0 +# мой кастомный фильтр +def my_filter(func, a): + for i in a: + if func(i) == False: + a.remove(i) + return a +print(my_filter(func, a)) + +# Задача-4: +# Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4). +# Определить, будут ли они вершинами параллелограмма. + +def define_parallelogram(a1, a2, a3, a4): + if abs(int(a1[0]) - int(a2[0])) == abs(int(a3[0]) - int(a4[0])) and abs(int(a1[1]) - int(a2[1])) == abs(int(a3[1]) - int(a4[1])): + print("Является параллелограммом!") + else: + print("Не является параллелограммом!")