Advertisement
1z0m3r4z3

normal_3.py

Sep 20th, 2017
708
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.60 KB | None | 0 0
  1. # Задание-1:
  2. # Напишите функцию, возвращающую ряд Фибоначчи с n-элемента до m-элемента.
  3. # Первыми элементами ряда считать цифры 1 1
  4.  
  5. def fibonacci(n, m):
  6.     """
  7.    :param n: starting element in returned seq
  8.    :param m: last element in returned seq
  9.    :return: fibonacci seq from n to m
  10.    """
  11.     a, b = 1, 1
  12.     f_list = [1, ]
  13.  
  14.     for i in range(m):
  15.         a, b = b, a + b
  16.         f_list.append(a)
  17.  
  18.     return f_list[n - 1:m]
  19.  
  20.  
  21. print('fibonacci(1, 6): ', fibonacci(1, 6))
  22.  
  23.  
  24. # Задача-2:
  25. # Напишите функцию, сортирующую принимаемый список по возрастанию.
  26. # Для сортировки используйте любой алгоритм (например пузырьковый).
  27. # Для решения данной задачи нельзя использовать встроенную функцию и метод sort()
  28.  
  29. def sort_to_max(origin_list):
  30.     """
  31.    :param origin_list: seq to be sorted
  32.    :return: sorted seq, ordered by ascending using quicksort
  33.    """
  34.     if len(origin_list) > 1:
  35.         pivot_index = len(origin_list) // 2
  36.         smaller_items = []
  37.         larger_items = []
  38.  
  39.         for i, val in enumerate(origin_list):
  40.             if i != pivot_index:
  41.                 if val < origin_list[pivot_index]:
  42.                     smaller_items.append(val)
  43.                 else:
  44.                     larger_items.append(val)
  45.  
  46.         sort_to_max(smaller_items)
  47.         sort_to_max(larger_items)
  48.         origin_list[:] = smaller_items + [origin_list[pivot_index]] + larger_items
  49.  
  50.     return origin_list
  51.  
  52.  
  53. print(sort_to_max([2, 10, -12, 2.5, 20, -11, 4, 4, 0]))
  54.  
  55.  
  56. # Задача-3:
  57. # Напишите собственную реализацию стандартной функции filter.
  58. # Разумеется, внутри нельзя использовать саму функцию filter.
  59.  
  60. def filter_func(function, iterable):
  61.     return (item for item in iterable if function(item))
  62.  
  63.  
  64. print(list(filter_func(lambda x: True if x % 2 == 0 else False,
  65.                   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])))
  66.  
  67.  
  68. # Задача-4:
  69. # Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4).
  70. # Определить, будут ли они вершинами параллелограмма.
  71.  
  72. def is_parallelogram(a1, a2, a3, a4):
  73.     if abs(a3[0] - a2[0]) == abs(a4[0] - a1[0]) and \
  74.        abs(a2[1] - a1[1]) == abs(a3[1] - a4[1]):
  75.         return True
  76.     return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement