
ТП2
.docxГУАП
КАФЕДРА 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Ассистент |
|
|
|
Е.К. Григорьев |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2 |
МНОЖЕСТВА, СЛОВАРИ И ПОБИТОВЫЕ ОПЕРАЦИИ |
по курсу: ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ |
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4116 |
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2023
Цель работы: познакомиться с основными способами работы с множествами, словарями и побитовыми операциями средствами языка программирования Python.
Вариант 23:
Ход работы:
Часть 1(Задания по множествам (4, 8, 10, 14))
Задание 4. Дано множество my_set = {0, 1, 2, 'b', 4, 5, 6, 7, 10, 'a'}. Добавьте в него новый элемент (4, 'c') и выведите в терминал полученный результат.
Код программы 1:
my_set = {0, 1, 2, "b", 4, 5, 6, 7, 10, "a"}
my_set.update((4, "c"))
print(my_set)
Пояснение к коду: для добавления кортежа в множество использовался метод update(), который позволяет добавлять несколько элементов.
Рисунок 1- Результат работы программы 1
Задание 8. Дан список my_list = [1, 0, 'Hi', 10] и множество my_set = {3, 5, 'b'}. Добавьте элементы списка в множество не используя циклы и выведите в терминал полученный результат.
Код программы 2:
my_list = [1, 0, "Hi", 10]
my_set = {3, 5, "b"}
my_set.update(my_list)
print(my_set)
Рисунок 2- результат работы программы 2
Задание 10. Дана строка my_str = ' Найдите сумму его неповторяющихся элементов '. Сформируйте из него множество, содержащее уникальные символы, и выведите в терминал полученный результат.
Результат работы программы 3:
my_str = " Найдите сумму его неповторяющихся элементов "
my_str = set(my_str)
print(my_str)
Пояснение к коду: чтобы сформировать из строки множество использовалась функция set().
Рисунок 3- результат работы программы 3
Задание 14. Дано множество A = {0, 1, 2, 6, 7, 8, 9} и B = {1, 3, 6, 10, 9, 21, 5}. Найдите разницу A - B и выведите полученный результат в терминал.
Код программы 4:
A = {0, 1, 2, 6, 7, 8, 9}
B = {1, 3, 6, 10, 9, 21, 5}
print(A - B)
Рисунок 4- результат работы программы 4
Часть 2: Задания по словарям (10, 11, 13, 15)
Задание 10. Дан словарь my_dict = {1: 10, 'a': 5, 'b': -2, 15: 68, 2: -9, 6: 27}. Выведите в терминал значение, которое хранится по ключу «6».
Код программы 5:
my_dict = {1: 10, 'a': 5, 'b': -2, 15: 68, 2: -9, 6: 27}
print(my_dict[6])
Рисунок 5-результат работы программы 5
Задание11: .Дан список my_list1 = [1, 2, 3, 4, 9, 7, 4] и my_list2 = [2, 13, 4, 8, 7, 6]. Напишите программу, формирующую словарь, где в качестве ключей выступают элементы первого списка, а в качестве значений - второго. Выведите в терминал полученный результат. Для решения задачи запрещено использовать циклы.
Код программы 6:
my_list1 = [1, 2, 3, 4, 9, 7, 4]
my_list2 = [2, 13, 4, 8, 7, 6]
d = dict(zip(my_list1, my_list2))
print(d)
Пояснение к коду: для создания словаря в котором используются элементы из нескольких источников данных (в данном случае списков) используется функция zip().
Рисунок 6- результат работы программы 6
Задание 13. Дан словарь my_dict = {'name': 'Alex', 'age':25, 'salary': 8000}. Измените имя ключа с 'age' на 'years' и выведите в терминал полученный результат.
Код программы 7:
my_dict = {"name": "Alex", "age": 25, "salary": 8000}
my_dict["years"] = my_dict.pop("age")
print(my_dict)
Пояснение к программе: для изменения имени ключа используется метод pop(), который сначала возвращает значение указанного ключа, а затем удаляет его из словаря.
Рисунок 7-результат работы программы 7
Задание 15: Дан словарь my_dict = {'name': 'Alex', 'age':25, 'salary': 8000}. Сформируйте список из значений словаря и выведите в терминал полученный результат. Для решения задачи запрещено использовать циклы.
Код программы:
my_dict = {"name": "Alex", "age": 25, "salary": 8000}
my_list = list(my_dict.values())
print(my_list)
Рисунок 8- результат работы программы 8
Часть 3:
Задания на побитовые операции (6, 12, 13, 14):
Задание 6: Дана переменная z = 0b1011010. Проверьте установлен ли ее левый бит в единицу или нет и выведите полученный результат в терминал
Код программы 9:
z = 0b1011010
print(((z >> 6) & 1) == 1)
Пояснение кода: чтобы сравнить левый бит с единицей использовался сдвиг вправо и операция & (и).
Рисунок 9- результат работы программы
Задание 12: Дана переменная z = 138 и х = 15. Используя побитовые операции и не прибегая к буферной переменной, поменяйте значение этих переменных местами и выведите полученный результат в терминал.
Код программы 9:
z = 138
x = 15
z = z ^ x
x = z ^ x
z = z ^ x
print("z = ", z)
print("x = ", x)
Пояснение кода: чтобы поменять значения переменных местами, использовалась операция xor (^)
Рисунок 10- результат работы программы 10
Задание 13: на вход программы поступает число z. Используя побитовые операции проверьте является ли оно четным и выведите полученный результат в терминал.
Код программы 11:
z = int(input("Введите число: "))
if z & 1 == 0:
print(" Число z чётное ")
else:
print("Число z нечётное")
Пояснение к коду: число является чётным тогда, когда двоичная запись этого числа оканчивается на 0. Поэтому была использована операция & (и).
Рисунок 11- результат работы программы 11
Задание 14: Дана переменная z = 0b1011010. Используя операции сдвига установить 4 правых бита в ноль и выведите полученный результат в терминал.
Код программы 12:
z = 0b1011010
z = z >> 4
z = z << 4
print(bin(z))
Рисунок 12- Результат работы программы 12
Выводы: в ходе лабораторной работы изучены основные способы работы с множествами, словарями и побитовыми операциями средствами языка программирования Python.
При работе с множествами использовались метод update (), который позволяет добавлять несколько элементов в множество и функция set(), которая формирует множество.
При работе со словарями использовался метод pop(), позволяющий возвращать значение ключа, а затем удалять его из словаря и функция zip(), которая создаёт итератор, объединяющий элементы из нескольких источников.
При работе с побитовыми операциями использовалась функция bin(), которая представляет десятичное число в двоичном формате. Использовались такие операции, как xor (исключительное или), &(и) и также сдвиги.