Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Современные средства разработки программного обеспечения. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
121
'Algiers': 12.8
}
warm_cities = {city: temp for city, temp in avg_temps.items() if
temp > 25}
print(warm_cities)
Вывод:
{'Havana': 25.2, 'Dubai': 26.9}
8.3 Лабораторная работа
Цель и задания
Цель. Изучить, как в языке Python представлены словари; действия со слова-
рями: создание словарей в Python, удаление и добавление элементов, методы слова­рей, операции соединения и повторения.
Задания
Разработать программное средство для реализации задачи:
1 Создайте словарь согласно индивидуальному варианту набора данных в
виде пар «ключ:значения» с количеством элементов не менее 5-ти. Поменяйте ме­стами первый и последний элемент словаря. Удалите третий элемент. Добавьте в сло­варь ключ «new_key» со значением «new_value». Выведите на печать итоговый сло­варь. Важно, чтобы словарь остался тем же (т.е. имел тот же адрес в памяти).
8.3.1 Порядок выполнения лабораторной работы
1 Ознакомиться с целью, задачами, содержанием лабораторной работы, об- щими методическими указаниями к выполнению.
2 Изучить средства работы со словарями.
3 Подготовить исходные данные к работе.
4 В системе Visual Studio Code или PyСharm выполнить практические задания согласно варианту, вариант выбирается по номеру списка студентов в группе.
5 Оформить отчет.
122
8.3.2 Индивидуальные варианты заданий к лабораторной работе
1 Варианты индивидуальных наборов данных для работы со словарями
1 Об игроках:
Имя игрока (д.б. уникальное) и параметры игрока (2-3 параметра в виде: наиме­нование и значение)
2 Об экзаменах:
№; Фамилия студента и его оценки по предметам (2-3 предмета: наименование предмета и оценка)
3 Об изучаемых предметах в семестре:
№; наименование семестра; информация по предметам (2-3 предмета: наимено-
вание предмета ; количество зачетных единиц)
4 Информация о назначении лекарств:
№; наименование диагноза; перечень назначенных лекарств (2-3 лекарства:
наименование лекарства : количество таблеток в день)
5 Телефонный справочник
№; Фамилия абонента; перечень его номеров телефонов (2-3 номера телефона:
наименование номера телефона и значение номера телефона)
6 Афиша киносеансов
Дата; Кинозал; информация о сеансах фильмов (2-3 фильма: наименование фильма и время начала)
7 Русско-английский словарь
Слово на английском, вид, слова на русском (написание и форма речи)
8 Данные о мероприятиях на каникулы:
Дата; информация о мероприятиях на эту дату (2 -3 мероприятия: наименование мероприятия и время начала)
9 Данные о маршрутах в городском парке автобусов
Номер маршрута, сведения о автобусах на маршруте (2-3 автобуса: госномер автобуса, водитель)
123
10 План работ участка производства на неделю
Дата, информация о работах на эту дату (2-3 работы: наименование работ, объем в часах)
11 Расписание уроков учителей на неделю
№ ФИО учителя, уроки на неделю (день, время урока, урок, кабинет).
12 Отчет об опубликованных научных работах сотрудников
Фамилия, информация о работах (2-3 работы: вид работы, наименование, дата публикации работы)
13 Данные о серверах:
№, название сервера и параметры сервера (2-3 параметра в виде: наименование и значение). Примеры параметров: "host": "127.0.0.1", "port": "22"
14 Данные о действиях пользователя в компьютерной системе:
Логин пользователя, действия (дата+время действия, действие)
15 Выездные выставки музея:
Дата начала, наименование выставки, места выставки (город, длительность вы­ставки)
16 Данные о сотрудниках:
№, ФИО, характеристики (наименование характеристики, значение характери­стики)
17 Данные о предоставленных услугах в салоне:
Дата, фамилия клиента, предоставленные услуги (наименование услуги, стои­мость услуги)
18 Данные о ремонте автомобиля в сервисе:
№ заказа, госномер автомобиля, работы по ремонту (наименование работы, сто­имость)
19 Данные о затратах на стройматериалы для ремонта квартиры:
№ заказа, адрес квартиры, материалы (наименование материала, стоимость, ко­личество)
20 Данные о лошадях в конюшне:
124
№, кличка и характеристики (2-3 характеристики в виде: наименование и зна­чение). Примеры параметров: "возраст": 12, "порода": "Рысак", "окрас": "черный"
8.4 Контрольные вопросы
1 Что представляют собой словари в Python?
2 Какой тип данных в словаре могут иметь значения?
3 Как можно создать словарь?
4 Допускают ли словари наличие нескольких элементов с одинаковыми клю- чами?
5 Какими способами можно получить доступ к элементам словаря?
6 Как можно выполнить добавление элемента в словарь?
7 Какими способами можно скопировать словарь?
8 Что означает вложенность словаря?
9 Приведите базовую форму для генерации словаря.
125
9 Строки и регулярные выражения
9.1 Понятие строк в Python
В Python строка представляет собой неизменяемую последовательность симво­лов юникода. Строки заключают либо в одинарные кавычки (‘), либо в двойные ка­вычки ("). Также используют тройные пары одинарных или двойных кавычек.
Python предоставляет богатый набор встроенных функций и методов для управ­ления строками и их преобразования [36].
Пример. Создание строки на Python:
my_string = "Hello, World!"
Так как строки представляют собой последовательности символов, то это озна­чает, что можно использовать индексную или срезную нотацию, аналогично спискам.
>>> x = "Python"
>>> x[0]
'P'
>>> x[-1]
'n'
>>> x[1:]
'ython '
Можно определить, сколько символов в строке, используя функцию len, точно так же, как определить количество элементов в списке:
>>> len("Python")
6
9.2 Основные строковые методы и операции
В данном учебном пособии будут рассмотрены некоторые из наиболее часто используемых строковых методов Python.
1) capitalize()
126
Метод capitalize() возвращает новую строку, первый символ которой написан заглавной буквой, а остальные – строчными буквами.
text = "python is awesome!"
capitalized_text = text.capitalize()
print(capitalized_text) # Output: "Python is awesome!"
2) lower() и upper()
Метод lower()преобразует все символы в строке в нижний регистр, в то время как метод upper() преобразует их в верхний регистр.
text = "PyTHoN Is AweSoMe!"
lowercase_text = text.lower()
uppercase_text = text.upper()
print(lowercase_text) # Output: "python is awesome!"
print(uppercase_text) # Output: "PYTHON IS AWESOME!"
3) strip()
Метод strip() удаляет из строки начальные и конечные пробельные символы.
text = " Hello, World! "
stripped_text = text.strip()
print(stripped_text) # Output: "Hello, World!"
4) split()
Метод split() разбивает строку на список подстрок на основе указанного разде­лителя. Если разделитель не указан, он разбивается на пробелы.
text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits) # Output: [‘apple‘, ‘banana‘, ‘cherry‘]
5) join()
Метод join() противоположна split(). Она объединяет список строк в одну строку, используя указанный разделитель.
fruits = [‘apple‘, ‘banana‘, ‘cherry‘]
text = ", ".join(fruits)
print(text) # Output: "apple, banana, cherry"
6) replace()
Метод replace() заменяет все вхождения подстроки на другую подстроку.
text = "Hello, World!"
127
new_text = text.replace("World", "Python")
print(new_text) # Output: "Hello, Python!"
7) find()
Метод find() выполняет поиск подстроки в строке и возвращает индекс первого вхождения. Если подстрока не найдена, возвращается значение -1.
text = "Hello, World!"
index = text.find("World")
print(index) # Output: 7
8) count()
Метод count() возвращает количество вхождений подстроки в строку.
text = "banana"
count = text.count("a")
print(count) # Output: 3
9) startswith() и endswith()
Методы startswith() и endswith() проверяют, начинается ли строка или закан­чивается указанной подстрокой соответственно. Они возвращают логическое значе­ние.
text = "Hello, World!"
print(text.startswith("Hello")) # Output: True
print(text.endswith("Python")) # Output: False
10) isalpha(), isdigit() и isalnum()
Метод isalpha() проверяет, все ли символы в строке являются буквенными. Ме­тод isdigit() проверяет, все ли символы являются цифрами. Метод isalnum() прове­ряет, все ли символы являются буквенно-цифровыми.
text1 = "HelloWorld"
text2 = "123"
text3 = "Hello123"
print(text1.isalpha()) # Output: True
print(text2.isdigit()) # Output: True
print(text3.isalnum()) # Output: True
Расширенное форматирование строк
128
Python предлагает несколько способов форматирования строк. Одним из наибо­лее кратких и удобочитаемых подходов является использование f-строк, введенных в
Python 3.6.
name = "Alice"
age = 25
print(f"My name is {name} and I‘m {age} years old.")
F-строки позволяют встраивать выражения внутри строковых литералов, добав­ляя к строке префикс ‘f‘ и заключая выражения в фигурные скобки {}.
Нарезка строк и индексация
Python позволяет получать доступ к подстрокам с помощью среза и индексации. Срез позволяет извлекать часть строки, указывая диапазон индексов.
text = "Hello, World!"
substring = text[7:12]
print(substring) # Output: "World"
Индексирование позволяет получить доступ к отдельным символам строки, ис­пользуя их положение. В Python индексы начинаются с 0.
text = "Hello, World!"
first_char = text[0]
last_char = text[-1]
print(first_char) # Output: "H"
print(last_char) # Output: "!"
Объединение и повторение строк
Строки могут быть объединены с помощью оператора + и повторены с помо­щью оператора * .
text1 = "Hello"
text2 = "World"
concatenated = text1 + ", " + text2
repeated = text1 * 3
print(concatenated) # Output: "Hello, World"
print(repeated) # Output: "HelloHelloHello"
Перебор строк
Вы можете перебирать символы строки с помощью цикла for.
text = "Python"
129
for char in text:
print(char)
Результат:
P
y
t
h
o
n
Экранирующие символы
Чтобы включить в строку специальные символы, такие как кавычки или обрат­ная косая черта, вам нужно экранировать их с помощью обратной косой черты .
text = "She said, \"Hello!\""
print(text) # Output: She said, "Hello!"
Кодирование и декодирование строк
Python предоставляет методы для кодирования строк в байты и декодирования байтов обратно в строки с использованием различных кодировок символов.
text = "Hello, World!"
encoded = text.encode("utf-8")
decoded = encoded.decode("utf-8")
print(encoded) # Output: b‘Hello, World!‘
print(decoded) # Output: "Hello, World!"
Рекомендации по производительности
При работе со строками на Python помните о следующих рекомендациях произ­водительности:
1 По возможности предпочитать строковые методы ручному манипулирова­нию строками.
2 Использовать методы форматирования строк, такие как f-strings, для лучшей читаемости и производительности.
3 Помнить о неизменяемости строк. Избегать чрезмерного объединения строк, поскольку это может привести к проблемам с производительностью. Вместо
130
этого лучше рассмотреть возможность использования списка и объединения элемен­тов в конце.
4 При выполнении операций с несколькими строками рассмотреть возмож­ность использования выражения генератора или понимания списка, чтобы избежать создания промежуточных строк.
9.3 Регулярные выражения
Регулярные выражения (РВ), также называемые шаблонами регулярных выра­жений по сути представляют собой крошечный узкоспециализированный язык про­граммирования, встроенный в Python и доступный через re модуль.
Концепцию регулярного языка языка описал математик Стивен Коул Клини ещё в 1951 году. Регулярный язык распознается конечным автоматом и формально выражается с помощью регулярных выражений [37].
В Python шаблоны регулярных выражений компилируются в серию байт-кодов, которые затем выполняются соответствующим движком, написанным на C [38].
Сопоставление строк – обычная задача в программировании, и можно многого добиться с помощью строковых операторов и методов. Однако регулярные выраже-
ния предоставляют более сложные возможности сопоставления строк с образцом.
Кроме того, регулярные выражения играют важную роль в извлечении инфор­мации из текста, такого как файлы журналов, электронные таблицы или даже тексто­вые документы Regular Expression in Python [39].
Например, ниже приведены некоторые случаи, когда регулярные выражения могут помочь вам сэкономить много времени.
- Поиск и замена текста в файлах
- Проверка правильности ввода текста, такого как пароль и адрес электрон-
ной почты
- Переименовывайте сотню файлов одновременно. Например, вы можете из-
менить расширение всех файлов, используя шаблон регулярных выражений
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]