МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №5
з курсу:
«Програмування скриптовими мовами»
на тему:
«Програмування з використанням списків»
Варіант 23
Львів – 2020
МЕТА РОБОТИ
Ознайомитись зі списками та їх можливостями у мові Python.
ЗАВДАННЯ
Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Виконати в лабораторії
Написати програму яка створює і виводить список, що містить послідовність цілих чисел з n елементів задану формулою згідно таблиці 2. Список створити двома способами: з допомогою циклу та генератору списків. Для створеного списку:
a. Виведіть елементи з індексами від 3 до 5.
b. Замініть перший елемент останнім.
с. Об’єднайте початковий список і отриманий на кроці b.
d. Додайте до списку ще три елементи зі значеннями перших трьох.
e. Виведіть максимальне і мінімальне значення в списку.
f. Видаліть всі елементи менші за середньоарифметичне значення.
Варіант
Формула
Кількість елементів списку
Початкове значення n
Крок
23
6n+7
12
4
7
2. Написати програму яка створює і виводить двовимірний список з 5 елементів. Кожен елемент списку представляє собою список, який містить опис атрибутів об’єкту згідно таблиці 3. Організуйте діалоговий режим із вводом з клавіатури, який дозволяє робити такі операції:
a. Вивести весь список.
b. Додавати елементи до списку.
c. Відсортувати список за заданим атрибутом.
d. Видаляти елементи за заданим атрибутом.
e. Видаляти елемент за заданим індексом.
f. Виводити всі елементи за заданим атрибутом.
Варіант
Об’єкт
Атрибути
3 (23)
Пасажирський літак
Виробник, модель, рік випуску, кількість пасажирів, макс. швидкість
РЕЗУЛЬТАТ ВИКОНАННЯ РОБОТИ
1. Лістинг програми.
import matharrByIterTools = []for n in range(4, 88, 7): arrByIterTools.append(round(6*n + 7))arr = [round(6*n + 7) for n in range(4, 88, 7)]print(f'Генератор списків: {arrByIterTools}')print(f'Цикл: {arr}')print("a:")for i in range(3,5): print(arrByIterTools[i])print('b:')arr[len(arr) - 1], arr[0] = arr[0], arr[len(arr) - 1]print(arr)print('c:')arrByIterTools += arrprint(arrByIterTools)print('d:')arrByIterTools.append(arrByIterTools[0])arrByIterTools.append(arrByIterTools[1])arrByIterTools.append(arrByIterTools[2])print(arrByIterTools)print('e:')print('Min: ', min(arrByIterTools))print('Max: ', max(arrByIterTools))print('f:')average = sum(arr)/len(arr)i = 0print('Average: ', average)print('Array before: ', arr)while True: if i == len(arr): break if arr[i] < average: del arr[i] else: i += 1print('Array after: ', arr)aircraft = [ ['Embraer','Embraer 190','2000',106, '871 km/h'], ['ДП Антонов','АН-148','2009',85, '870 km/h'], ['Boeing','747','1969',452, '892 km/h'], ['Саратовський авіазавод','ЯК-40','1966',40, '546 km/h'], ['ДП Антонов','АН-158','2010',83, '870 km/h'],]def navBar(): print('a. Вивести весь список.\n' 'b. Додавати елементи до списку.\n' 'c. Відсортувати список за заданим атрибутом.\n' 'd. Видаляти елементи за заданим атрибутом.\n' 'e. Видаляти елемент за заданим індексом.\n' 'f. Виводити всі елементи за заданим атрибутом.\n' 's. Stop.\n') while True: value = input('Enter: ') if test(['a', 'A', 'b', 'B', 'C', 'c', 'd', 'D', 'E', 'e', 'F', 'f', 's', 'S'], value): return value.upper() else: print("Try again")def test(arr, value): for ac in arr: if ac == value: return True return Falsedef qprintArr(arr): for el in range(len(arr)): for i in range(len(arr[el])): print(arr[el][i]) print('---------')def addAc(arr): while True: mf = str(input('Manufacturer: ')) model = str(input('Model: ')) year = str(input('Year: ')) np = int(input('Number of passengers: ')) speed = str(input('Max speed: ')) return [mf, model, year, np, speed]def arrSort(arr, atr): arr.sort(key=lambda i: i[atr]) return arrdef surchAcByAtr(arr, atr): elements = [] index = [] for el in range(len(arr)): for i in range(len(arr[el])): if str(arr[el][i]) == atr: elements.append(arr[el]) index.append(el) break return [elements,index]def delByIndex(arr, ind): calibration = 0 for i in ind: del arr[i - calibration] calibration += 1 return arrwhile True: value = navBar() if value == 'A': qprintArr(aircraft) input("Press Enter to continue...") elif value == 'B': aircraft.append(addAc(aircraft)) input("Press Enter to continue...") elif value == 'C': w = int(input('Sort By \n1:Manufacturer\n2:Model\n3:Year\n4:Nubmer of passengers\n5:Max speed\n')) qprintArr(arrSort(aircraft, w-1)) input("Press Enter to continue...") elif value == 'D': atr = input('Entry atr for del: ') arr = delByIndex(aircraft, surchAcByAtr(aircraft, atr)[1]) qprintArr(arr) input("Press Enter to continue...") elif value == 'E': atr = int(input('Entry index for del: ')) arr = delByIndex(aircraft, [atr]) qprintArr(arr) input("Press Enter to continue...") elif value == 'F': atr = input('Entry atr for print: ') qprintArr(surchAcByAtr(aircraft, atr)[0]) input("Press Enter to continue...") elif value == 'S': break
2. Результат роботи програми.
/
/
/
/
/
/
/
/
/
/
/
/
/
ВИСНОВОК
В процесі виконання лабораторної роботи я ознайомилась зі списками та їх можливостями у мові Python.