МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №6
з курсу:
«Програмування скриптовими мовами»
на тему:
«Програмування з використанням кортежів, словників та множин»
Варіант 23
Львів – 2020
МЕТА РОБОТИ
Ознайомитись з кортежами, словниками і множинами та їх можливостями у мові Python.
ЗАВДАННЯ
Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Виконати в лабораторії
Написати програму яка створює і виводить кортеж, що містить послідовність цілих чисел з n елементів задану формулою згідно таблиці 6. Для створеного кортежу:
a. Виведіть елементи з індексами від 3 до 5.
b. Замініть перший елемент останнім.
с. Об’єднайте початковий кортеж і отриманий на кроці b.
d. Додайте до кортежу ще три елементи зі значеннями перших трьох.
e. Виведіть максимальне і мінімальне значення в кортежі.
f. Видаліть всі елементи менші за середньоарифметичне значення.
Варіант
Формула
Кількість елементів списку
Початкове значення n
Крок
23
6n+7
12
4
7
2. Написати програму яка створює дві множини: в одну входять літери вашого прізвища, у другий - літери вашого імені. Визначте і виведіть:
a. Всі літери, які є в прізвищі та імені.
b. Літери, які є і в імені і в прізвищі.
с. Літери імені, яких немає в прізвищі.
d. Всі літери за винятком тих, які є і в імені і в прізвищі.
3. Написати програму яка створює і виводить словник з 5 елементів згідно таблиці 7. Організуйте діалоговий режим із вводом з клавіатури, який дозволяє робити такі операції:
a. Вивести весь словник.
b. Додавати елементи до словника.
c. Відсортувати словник за зростанням чи спаданням.
d. Видаляти елементи за заданим ключем.
e. Видаляти елемент за заданим значенням.
f. Виводити всі елементи за заданим значенням.
Варіант
Об’єкт
Ключ: Значення
3 (23)
Пасажирський літак
Виробник: модель, рік випуску, кількість пасажирів, макс. швидкість
РЕЗУЛЬТАТ ВИКОНАННЯ РОБОТИ
1. Лістинг програми.
import mathobj = []for n in range(4, 88, 7): obj.append(round(6*n + 7))obj = tuple(obj)print(obj)print("a:")for i in range(3,5): print(obj[i])#newObj = list(obj)print('b:')newObj[len(obj) - 1], newObj[0] = newObj[0], newObj[len(obj) - 1]newObj = tuple(newObj)print(newObj)#print('c:')newObj = list(obj)obj = list(obj)print(tuple(obj + newObj))#print('d:')obj = list(obj)obj.append(obj[0])obj.append(obj[1])obj.append(obj[2])obj = tuple(obj)print(obj)#print('e:')print('Min: ', min(obj))print('Max: ', max(obj))#print('f:')average = sum(obj)/len(obj)i = 0print('Average: ', average)print('obj before: ', obj)obj = list(obj)while True: if i == len(obj): break if obj[i] < average: del obj[i] else: i += 1obj = tuple(obj)print('obj after: ', obj)# Task2ln = {'Т','а','р','а','с','о','в','а'}fn = {'О','л','е','н', 'а'}#print('a:')for i in fn: print(i)for i in ln: print(i)print('----------------------------')print('b:')new = set(list(fn) + list(ln))for i in new: print(i)print('----------------------------')print('c:')abet = 'АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ'for b in abet: test = True for i in new: if i.upper() == b: test = False if test: print(b)## Task3aircraft = { 'Embraer' :['Embraer 190','2000',106, '871 km/h'], 'ДП Антонов':['АН-148','2009',85, '870 km/h'], 'Boeing':['747','1969',452, '892 km/h'], 'Саратовський авіазавод':['ЯК-40','1966',40, '564 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 key in arr: for i in arr[key]: print(i) print('---------')def addAc(arr): mf = str(input('Manufacturer: ')) model = str(input('Model: ')) year = str(input('Year: ')) np = int(input('Number of passengers: ')) speed = str(input('Max speed: ')) aircraft [mf] = [model, year, np, speed]def arrSort(d, atr): list_d = list(d.items()) list_d.sort(key=lambda i: i[1][atr]) for i in list_d: print(i[0], ':', i[1])def surchAcByAtr(arr, atr): elements = {} index = [] for el in arr.keys(): for i in range(len(arr[el])): if str(arr[el][i]) == atr: print(el) elements[el] = arr[el] index.append(el) break return [elements,index]def delByKey(arr, ind): del arr[ind] return arrdef delByIndex(arr, ind): for i in ind: del arr[i] return arrwhile True: value = navBar() if value == 'A': qprintArr(aircraft) input("Press Enter to continue...") elif value == 'B': 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')) arrSort(aircraft, w-1) input("Press Enter to continue...") elif value == 'D': key = aircraft.keys() for i in key: print(i) atr = input('Entry key for del: ') employee = delByKey(aircraft, atr) qprintArr(aircraft) input("Press Enter to continue...") elif value == 'E': atr = input('Entry atr for del: ') aircraft = delByIndex(aircraft, surchAcByAtr(aircraft, atr)[1]) qprintArr(aircraft) 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.