ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 131
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИCTEPCTBO НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИФедеральное государственное автономное образовательное учреждение высшего образования«СЕВЕРОКАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»Кафедра инфокоммуникацийИнститут цифрового развитияОТЧЁТпо лабораторной работе №2.6Дисциплина: «Программирование на Python»
Ставрополь 2022Выполнение работы:1. Создал репозиторий в GitHub «rep 2.6» в который добавил .gitignore, который дополнил правила для работы с IDE PyCharm с ЯП Python, выбрал лицензию MIT, клонировал его на лок. сервер и организовал в соответствии с моделью ветвления git-flow.Рисунок 1.1 Создание репозиторияРисунок 1.2 Клонирование репозиторияРисунок 1.3 Организация репозитория в соответствии с моделью ветвления git-flow Рисунок 1.4 Изменение .gitignore2. Создал проект PyCharm в папке репозитория, проработал примеры ЛР.Рисунок 2.1 Создание проекта в PyCharmРисунок 2.2 Рез-т выполнения программы3. Выполнил задания.Решите задачу: создайте словарь, связав его с переменной school , и наполните данными, которые бы отражали количество учащихся в разных классах (1а, 1б, 2б, 6а, 7в и т. п.). Внесите изменения в словарь согласно следующему:а) в одном из классов изменилось количество учащихся,б) в школе появился новый класс,с) в школе был расформирован (удален) другой класс. Вычислите общее количество учащихся в школе.
Решите задачу: создайте словарь, где ключами являются числа, а значениями – строки. Примените к нему метод items(), c с помощью полученного объекта dict_items создайте новый словарь, "обратный" исходному, т. е. ключами являются строки, а значениями – числа.Рисунок 3.1 Вывод программы задания4. (15 вариант). Выполнил индивидуальное задание.#!/usr/bin/env python3# -*- coding: utf-8 -*-import sysif __name__ == '__main__':print("help - список всех команд")# Список людей.humans = []# Организовать бесконечный цикл запроса команд.while True:# Запросить команду из терминала.command = input(">>> ").lower()# Выполнить действие в соответствие с командой.if command == 'exit':breakelif command == 'add':# Запросить данные о человеке.surname = input("Фамилия: ")name = input("Имя: ")Zodiak = input("Знак Зодиака: ")date = [int(input("Год рождения: ")),int(input("Месяц рождения: ")),int(input("День рождения: "))]# Создать словарь.human = {'surname': surname,'name': name,'Zodiak': Zodiak,'date': date}# Добавить словарь в список.humans.append(human)# Отсортировать список в случае необходимости.if len(humans) > 1:humans.sort(key=lambda item: item.get('date', ''))elif command == 'list':# Заголовок таблицы.line = '+-{}-+-{}-+-{}-+-{}-+'.format('-' * 4,'-' * 30,'-' * 20,'-' * 15)print(line)print('| {:^4} | {:^30} | {:^20} | {:^15} |'.format("№","Фамилия и имя","Знак Зодиака","Дата рождения"))print(line)# Вывести данные о всех сотрудниках.for idx, worker in enumerate(humans, 1):date = worker.get('date', '')print('| {:^4} | {:<14} {:<15} | {:<20} | {}.{}.{:<7}'|'.format(idx,worker.get('surname', ''),worker.get('name', ''),worker.get('Zodiak', ''),date[0],date[1],date[2]))print(line)elif command.startswith('select '):addedZZ = command[7:]# Инициализировать счетчик.count = 0# Проверить сведения работников из списка.for human in humans:if human.get('Zodiak', '') == addedZZ:count += 1print('{:>4}: {} {}'.format(count, human.get('surname', ''),human.get('name', '')))# Если счетчик равен 0, то работники не найдены.if count == 0:print("Люди с таким ЗЗ не найдены.")elif command == 'help':# Вывести справку о работе с программой.print("Список команд:\n")print("add - добавить человека;")print("list - вывести список людей;")print("help - список всех команд;")print("exit - завершить работу с программой.")else:print(f"Неизвестная команда {command}", file=sys.stderr)
Рисунок 4.1 Вывод программы индивидуального задания5. Сделал коммит, выполнил слияние с веткой main, и запушил изменения в уд. репозиторий.Рисунок 4.1 коммит и пуш изменений и переход на ветку mainРисунок 4.2 Слияние ветки main с developРисунок 4.3 Пуш изменений на удаленный серверРисунок 4.4 Изменения на удаленном сервереКонтр. вопросы и ответы на них:1. Что такое словари в языке Python?Словари в Python – это изменяемые отображения ссылок на объекты, доступные по ключу.2. Может ли функция len() быть использована при работе сословарями?Функция len() возвращает длину (количество элементов) в объекте. Аргумент может быть последовательностью, такой как строка, байты, кортеж, список или диапазон или коллекцией (такой как словарь, множество или неизменяемое множество).3. Какие методы обхода словарей Вам известны?Самый очевидный вариант обхода словаря — это попытаться напрямую запустить цикл for по объекту словаря, так же как мы делаем это со списками, кортежами, строками и любыми другими итерируемыми объектами.for something in currencies:print(something)4. Какими способами можно получить значения из словаря по ключу?С помощью метода .get()5. Какими способами можно установить значение в словаре по ключу?С помощью функции dict.update()6. Что такое словарь включений?
Словарь включений аналогичен списковым включениям, за исключением того, что он создаёт объект словаря вместо списка.7. Самостоятельно изучите возможности функции zip() приведите примеры ее использования.Функция zip() в Python создает итератор, который объединяет элементы из нескольких источников данных. Эта функция работает со списками, кортежами, множествами и словарями для создания списков или кортежей, включающих все эти данные.Предположим, что есть список имен и номером сотрудников, и их нужно объединить в массив кортежей. Для этого можно использовать функцию zip(). Вот пример программы, которая делает именно это:employee_numbers = [2, 9, 18, 28]employee_names = ["Дима", "Марина", "Андрей", "Никита"]zipped_values = zip(employee_names, employee_numbers)zipped_list = list(zipped_values)print(zipped_list)Функция zip возвращает следующее:[('Дима', 2), ('Марина', 9), ('Андрей', 18), ('Никита', 28)]8. Самостоятельно изучите возможности модуля datetime. Каким функционалом по работе с датой и временем обладает этот модуль?Datetime — важный элемент любой программы, написанной на Python. Этот модуль позволяет управлять датами и временем, представляя их в таком виде, в котором пользователи смогут их понимать.datetime включает различные компоненты. Так, он состоит из объектов следующих типов:
Тема: «Работа со словарями в языке Python»
| Выполнил: студент 2 курса |
| группы ИВТ-б-о-21-1 |
| Хашиев Адам Мухарбекович |
Решите задачу: создайте словарь, где ключами являются числа, а значениями – строки. Примените к нему метод items(), c с помощью полученного объекта dict_items создайте новый словарь, "обратный" исходному, т. е. ключами являются строки, а значениями – числа.Рисунок 3.1 Вывод программы задания4. (15 вариант). Выполнил индивидуальное задание.#!/usr/bin/env python3# -*- coding: utf-8 -*-import sysif __name__ == '__main__':print("help - список всех команд")# Список людей.humans = []# Организовать бесконечный цикл запроса команд.while True:# Запросить команду из терминала.command = input(">>> ").lower()# Выполнить действие в соответствие с командой.if command == 'exit':breakelif command == 'add':# Запросить данные о человеке.surname = input("Фамилия: ")name = input("Имя: ")Zodiak = input("Знак Зодиака: ")date = [int(input("Год рождения: ")),int(input("Месяц рождения: ")),int(input("День рождения: "))]# Создать словарь.human = {'surname': surname,'name': name,'Zodiak': Zodiak,'date': date}# Добавить словарь в список.humans.append(human)# Отсортировать список в случае необходимости.if len(humans) > 1:humans.sort(key=lambda item: item.get('date', ''))elif command == 'list':# Заголовок таблицы.line = '+-{}-+-{}-+-{}-+-{}-+'.format('-' * 4,'-' * 30,'-' * 20,'-' * 15)print(line)print('| {:^4} | {:^30} | {:^20} | {:^15} |'.format("№","Фамилия и имя","Знак Зодиака","Дата рождения"))print(line)# Вывести данные о всех сотрудниках.for idx, worker in enumerate(humans, 1):date = worker.get('date', '')print('| {:^4} | {:<14} {:<15} | {:<20} | {}.{}.{:<7}'|'.format(idx,worker.get('surname', ''),worker.get('name', ''),worker.get('Zodiak', ''),date[0],date[1],date[2]))print(line)elif command.startswith('select '):addedZZ = command[7:]# Инициализировать счетчик.count = 0# Проверить сведения работников из списка.for human in humans:if human.get('Zodiak', '') == addedZZ:count += 1print('{:>4}: {} {}'.format(count, human.get('surname', ''),human.get('name', '')))# Если счетчик равен 0, то работники не найдены.if count == 0:print("Люди с таким ЗЗ не найдены.")elif command == 'help':# Вывести справку о работе с программой.print("Список команд:\n")print("add - добавить человека;")print("list - вывести список людей;")print("help - список всех команд;")print("exit - завершить работу с программой.")else:print(f"Неизвестная команда {command}", file=sys.stderr)
Рисунок 4.1 Вывод программы индивидуального задания5. Сделал коммит, выполнил слияние с веткой main, и запушил изменения в уд. репозиторий.Рисунок 4.1 коммит и пуш изменений и переход на ветку mainРисунок 4.2 Слияние ветки main с developРисунок 4.3 Пуш изменений на удаленный серверРисунок 4.4 Изменения на удаленном сервереКонтр. вопросы и ответы на них:1. Что такое словари в языке Python?Словари в Python – это изменяемые отображения ссылок на объекты, доступные по ключу.2. Может ли функция len() быть использована при работе сословарями?Функция len() возвращает длину (количество элементов) в объекте. Аргумент может быть последовательностью, такой как строка, байты, кортеж, список или диапазон или коллекцией (такой как словарь, множество или неизменяемое множество).3. Какие методы обхода словарей Вам известны?Самый очевидный вариант обхода словаря — это попытаться напрямую запустить цикл for по объекту словаря, так же как мы делаем это со списками, кортежами, строками и любыми другими итерируемыми объектами.for something in currencies:print(something)4. Какими способами можно получить значения из словаря по ключу?С помощью метода .get()5. Какими способами можно установить значение в словаре по ключу?С помощью функции dict.update()6. Что такое словарь включений?
Словарь включений аналогичен списковым включениям, за исключением того, что он создаёт объект словаря вместо списка.7. Самостоятельно изучите возможности функции zip() приведите примеры ее использования.Функция zip() в Python создает итератор, который объединяет элементы из нескольких источников данных. Эта функция работает со списками, кортежами, множествами и словарями для создания списков или кортежей, включающих все эти данные.Предположим, что есть список имен и номером сотрудников, и их нужно объединить в массив кортежей. Для этого можно использовать функцию zip(). Вот пример программы, которая делает именно это:employee_numbers = [2, 9, 18, 28]employee_names = ["Дима", "Марина", "Андрей", "Никита"]zipped_values = zip(employee_names, employee_numbers)zipped_list = list(zipped_values)print(zipped_list)Функция zip возвращает следующее:[('Дима', 2), ('Марина', 9), ('Андрей', 18), ('Никита', 28)]8. Самостоятельно изучите возможности модуля datetime. Каким функционалом по работе с датой и временем обладает этот модуль?Datetime — важный элемент любой программы, написанной на Python. Этот модуль позволяет управлять датами и временем, представляя их в таком виде, в котором пользователи смогут их понимать.datetime включает различные компоненты. Так, он состоит из объектов следующих типов:
-
date — хранит дату -
time — хранит время -
datetime — хранит дату и время