Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Інститут комп'ютерних технологій, автоматики та метрології
/
ЗВІТ
Про виконання лабораторної роботи 2
З дисципліни «Технології програмування, частина 2»
Тема: Функції у мові Python
Мета: навчитися створювати власні функції у мові Python
Варіант 8
Розробіть функції для здійснення наступних операцій зі списками:
1. Швидке сортування;
2. Пошук індексу елемента за заданим значенням;
3. Пошук послідовності елементів;
4. Пошук перших п’яти min елементів;
5. Пошук перших п’яти max елементів;
6. Пошук середнього арифметичного;
7. Повернення списку, що сформований з початкового списку, але не містить повторів (залишається лише перший з однакових елементів).
Помістіть функції в окремий модуль. Реалізуйте програму, яка використовує всі функції зі створеного модуля. Зробити описи Doc strings для кожної реалізованої функції.
Код 1
Виводимо список
import random
A = [random.randint(-10, 10) for i in range(7)]
print('n Список:n', A)
1. Швидке сортування списку
def quicksort(A): позначаємо функцію за допомогою інструкції def
if len(A) <=1: умова виходу з рекурсії, якщо довжина списку <= 1, то повертаємо список A
return A тобто, якщо список буде з одного елементу або пустий, то автоматично буде відсортований
elem = A[0] вибираємо опорний елемент
left = list(filter(lambda x: x elem, A)) так само як і для left тільки пишемо >
return quicksort(left) + center + quicksort(right) рекурсія (рекурсивний обхід)
print('n Відсортований список:n', quicksort(A))
Результат
/
Код 2
Виводимо список
import random
A = [random.randint(-10, 10) for i in range(7)]
print('n Список:n', A)
2. Пошук елемента за заданим значенням
def search(A, x):
print(A)
i = x - 1
return A[i]
print("nПошук елементу за значенням ")
x = int(input("Виберіть індекс: "))
print("Число під цим номером: ", search(A, x))
Результат
/
Код 3
import random
A = [random.randint(-10, 10) for i in range(7)]
print('n Список:n', A)
3. Пошук послідовності елементів
def poslidovnist(A): дає змогу створити список послідовних чисел у масиві
a=[0,1,2,3,4,5,6,7,8,9,10]
b=[]
for i in A:
if i in a:
b.append(i)
print(b)
print("Пошук послідовності елементів (додатніх)")
poslidovnist(A)
Результат
/
Код 4
import random
A = [random.randint(-10, 10) for i in range(7)]
print('n Список:n', A)
4. Пошук перших п’яти min елементів
def min(A):
list.sort(A)
count = 0
for i in A:
print(i)
count += 1
if count == 5:
break
print("n Пошук перших п’яти min елементів: ")
print(min(A))
Результат
/
Код 5
import random
A = [random.randint(-10, 10) for i in range(7)]
print('n Список:n', A)
5. Пошук перших п’яти max елементів
def max(A):
list.sort(A)
list.reverse(A) сортує список у порядку зменшення
count = 0
for i in A:
print(i)
count += 1
if count == 5:
break
print("n Пошук перших п’яти max елементів: ")
print(max(A))
Результат
/
Код 6
import random
A = [random.randint(-10, 10) for i in range(7)]
print('nСписок:n', A)
6. Пошук середнього арифметичного
def ser_zn(A):
ser_zn = sum(A) / len(A)
return ser_zn
print('Cереднє арифметичне:')
print(ser_zn(A))
Результат
/
Код 7
import random
A = [random.randint(-10, 10) for i in range(7)]
print('nСписок:n', A)
7. Повернення списку, що сформований без повторів
def delete(A):
for i in A:
k = A.count(i) шукає підрядок в заданому рядку і повертає, скільки разів той присутній у ньому
if k>1:
for j in range(1, k): генерує послідовності у заданому діапазоні
A.reverse() переставляє елементи списку у зворотному порядку
A.remove(i) видаляє елемент зі списку
return A
print('Видалення повторів:')
print(delete(A))
Результат
/