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

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

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
101
2 Изучить теоретические основы по спискам в Python.
3 Подготовить исходные данные к работе.
4 В системе Visual Studio Code или PyСharm выполнить практические задания согласно варианту, вариант выбирается по номеру списка студентов в группе.
5 Оформить отчет.
7.14.2 Индивидуальные варианты заданий к лабораторной работе
1 Варианты заданий на одномерный список.
1 В списке чисел проверить, все ли элементы являются уникальными, т.е. каждое число встречается только один раз. Результатом должно быть True или False.
2 Дан список чисел. У всех элементов заменить знаки на противоположные, в новом списке найти максимальный элемент и его номер.
3 Дан список. Построить новый, увеличивая элементы исходного на задан-
ное число, если максимальный элемент встретился в нем прежде минимального. В противном случае уменьшайте элементы исходного списка. В новом списке подсчи­тать количество отрицательных элементов.
4 Напишите программу, которая, не изменяя заданный список, выводит но­мера его элементов в возрастающем порядке. Использовать вспомогательный список номеров.
5 Напишите программу, которая сортирует список и находит количество различных чисел в нём. Не использовать встроенные функции.
6 Дан список. Назовем серией группу подряд идущих одинаковых элемен­тов, а длиной серии — количество этих элементов. Сформировать два новых списка, в один из них записывать длины всех серий, а во второй — значения элементов, об­разующих эти серии.
7 Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок. Не использовать встроенные функции.
102
8 Напишите программу, которая сортирует массив, а затем находит макси-
мальное из чисел, встречающихся в списке несколько раз. Не использовать встроен­ные функции.
9 Дан список с повторяющимися элементами. Вывести на экран все непо­вторяющиеся элементы
10 Список А вводится с клавиатуры. Найти сумму его элементов. Размер произвольный.
11 Найти произведение элементов, кратных 3 в списке, заданном датчиком случайных чисел на интервале [-a, a]. Размер произвольный.
12 Список А вводится с клавиатуры. Найти среднее арифметическое его эле­ментов c нечетными номерами. Размер произвольный.
13 Список А вводится с клавиатуры. Найти сумму его элементов с четными номерами, произведение отрицательных элементов, количество нечетных элементов. Размер произвольный.
14 Найти наибольший элемент и его номер в списке, элементы которой вво­дятся с клавиатуры. Размер произвольный.
15 Найти средне арифметическое элементов списка, превосходящих некото­рое число С. Список задан датчиком случайных чисел на интервале [-a, a]. Размер произвольный. Значение С вводится с экрана.
16 Список А вводится с клавиатуры. Вывести только нечетные элементы. Размер произвольный.
17 Упорядочить данный список по убыванию. Список задан датчиком слу­чайных чисел на интервале [-54, 33]. Размер произвольный.
18 Список А вводится с клавиатуры. Сформировать новый список В, состо­ящий из положительных элементов списка А. Размер произвольный.
19 Список задан датчиком случайных чисел на интервале [-31, 45]. Сформи­ровать новый список В, состоящий из нечетных элементов списка А. Размер произ­вольный.
103
20 Список А вводится с клавиатуры. Сформировать новый список В, состо-
ящий из положительных элементов списка А и найти в нем наибольший элемент. Размер произвольный.
21 Список задан датчиком случайных чисел на интервале [-37, 66]. Найти наименьший нечетный элемент. Размер произвольный.
2 Варианты заданий на вложенные списки.
1 Точки на плоскости заданы своими координатами х и у, которые хранятся в двумерном списке. Найти пару самых удаленных друг от друга точек.
2 Найти суммы элементов двухмерного списка целых чисел, расположенных на линиях, параллельных главной диагонали, и ниже нее.
3 Найти номер столбца двухмерного списка целых чисел, для которого сред­неарифметическое значение его элементов максимально.
4 В двухмерном списке вещественных чисел поменять местами строки и столбцы с одинаковыми номерами.
5 В двухмерном списке целых чисел поменять местами столбцы, симметрич­ные относительно середины списка (вертикальной линии).
6 В двухмерном списке целых чисел поменять местами строки, симметричные относительно середины списка (горизонтальной линии).
7 Поменять местами значения элементов двухмерного списка вещественных чисел, симметричных относительно побочной диагонали.
8 Найти максимальный элемент среди максимальных элементов строк двух­мерного списка целых чисел. Определить номер строки и столбца для такого элемента.
9 Найти максимальный среди минимальных элементов столбцов двухмерного списка целых чисел. Определить номер строки и столбца для такого элемента.
10 Удалить столбец двухмерного списка вещественных чисел, в котором нахо­дится максимальный элемент этого списка.
11 Найти все неповторяющиеся элементы двухмерного списка целых чисел.
12 Заполнить двухмерный список целыми числами от 1 до 100 по спирали.
13 Определить сумму элементов главной диагонали двухмерного списка;
104
14 Определить среднее арифметическое элементов побочной диагонали двух- мерного списка.
15 Дан двухмерный список. Получить новый список, в котором сначала идут
элементы первой строки исходного списка справа налево, затем второй строки слева направо и т. п.;
16 Дан двухмерный список. Получить новый список, в котором сначала идут элементы первого столбца исходного списка сверху вниз, затем второго столбца сверху вниз и т. п.;
17 Даны двумерный список и произвольное число. Построить список, каж­дый элемент которого представляет собой разность между этим числом и средним арифметическим для соответствующей строки списка.
18 Даны двумерный список и произвольное число. Определить сколько эле­ментов предшествует первому минимальному в списке.
19 Даны двумерный список А, имеющий N строк и М столбцов. Опреде­лить, сколько нулевых элементов содержится в верхних L строках списка и в левых К столбцах списка.
20 Даны двумерный список А, имеющий N строк и М столбцов. Найти сумму всех элементов списка. Определить, какую долю в этой сумме составляет сумма элементов каждого столбца. Результат оформить в виде списка из N+1 строк и M столбцов.
21 Даны двумерный список А, имеющий N строк и М столбцов. Определить, сколько отрицательных элементов содержится в каждом столбце и в каждой строке списка. Результат оформить в виде списка из N+1 строк и М+1 столбцов.
7.15 Контрольные вопросы
1 Что представляют собой списки в Python?
2 Как осуществляется доступ к элементам списка?
3 Какая функция в Python предназначена для получения длины списка?
4 Каким образом можно принимать входные данные элементов списка
105
5 Как можно перевернуть список?
6 Как можно удалить элемент из списка?
7 Как выполняется операция среза над списками
8 Какие функции включает в себя Python для сортировки списков?
9 Какие есть в Python способы копирования списка?
10 Для чего и как используются генераторы списков в Python?
106
8 Словари в Python
8.1 Определение словаря
Словари в Python – это структура данных, используемая для хранения после­довательности значений в формате ключ: значение.
Т.е. словарь содержит пары значений, первый элемент пары является ключом, а второй является его значением.
Синтаксис словаря Python:
dict_var = {ключ1 : значение1, ключ2 : значение2, .....}
Значения в словаре могут иметь любой тип данных и могут дублироваться, тогда как ключи не могут повторяться и должны быть неизменяемыми. Ключи сло­варя чувствительны к регистру. Словари упорядочены и не могут содержать повто­ряющихся значений.
Создание словаря
Способ 1. Создание путем перечисления в фигурных скобках {} элементов сло-
варя через запятую.
Пример 1. Создание словарей с разными типами ключей. В первом словаре используются целочисленные ключи, а во втором словаре используется сочетание строковых и целых ключей.
dict1 = {1: 'python', 2: 'For', 3: 'begin'}
print("\nCловарь с целочисленными ключами: ")
print(dict1)
dict2 = {'Name': 'python', 1: [1, 2, 3, 4]}
print("\nСловарь с разнотипными ключами: ")
print(dict2)
Вывод:
Cловарь с целочисленными ключами:
{1: 'python', 2: 'For', 3: 'begin'}
Словарь с разнотипными ключами:
{'Name': 'python', 1: [1, 2, 3, 4]}
107
Способ 2. Создание с помощью конструктора dict().
Сложности создания словаря:
− Временная сложность: O(len(dict)).
− Сложность пространства: O(n).
Пример 2. Различные способы применения конструктора dict().
#Создание пустого словаря
dict1 = dict()
print("Пустой словарь: ")
print(dict1)
#Передача в конструктор словаря существующего словаря
dict2 = dict({1: 'python', 2: 'For', 3: 'begin'})
print("\nСловарь из существующего словаря: ")
print(dict2)
# Передача в конструктор словаря списка кортежей
dict3 = dict([(1, 'python'), (2, 'begin')])
print("\Словарь из списка кортежей: ")
print(dict3)
Вывод:
Пустой словарь:
{}
Словарь из существующего словаря:
{1: 'python', 2: 'For', 3: 'begin'}
Словарь из списка кортежей:
{1: 'python', 2: 'begin'}
Доступ к элементам словаря
Способ 1. Получить доступ к элементам словаря, указав соответствующий ключ
словаря внутри квадратных скобок [33]:
car = {
"brand": "Lada",
"model": "2106",
108
"year": 1989
}
x = car["model "]
Способ 2. Использование метода get() с параметром – ключом словаря даст тот
же результат:
x = car.get("model")
Способ 3. Получить ключи
Метод keys() вернет с писок всех ключей в словаре
x = dict1.keys()
Список ключей – это представление словаря, что означает, что любые измене­ния, внесенные в словарь, будут отражены в списке ключей.
Пример. Добавить новый элемент в исходный словарь и убедиться, что список ключей также обновляется:
car = {
"brand": "Lada",
"model": "2106",
"year": 1989
}
x = car.keys()
print(x) # перед изменением
car["color"] = "белый"
print(x) # после изменения
Способ 4. Получение значений. Метод values() вернет список всех значений в
словаре.
Пример. Получить список значений:
x = dict1.values()
Список значений представляет собой представление словаря, что означает, что любые изменения, внесенные в словарь, будут отражены в списке значений.
Пример. Внести изменения в исходный словарь и убедиться, что список значе- ний также обновляется:
car = {
"brand": "Lada",
109
"model": "2106",
"year": 1989
}
x = car.values()
print(x) # перед изменением
car["year"] = 1990
print(x) # после изменения
Способ 5. Получить элементы.
Метод items() вернет каждый элемент в словаре в виде кортежей в списке.
Пример. Получить список пар ключ: значение
x = dict1.items()
Возвращаемый список представляет собой представление элементов словаря, что означает, что любые изменения, внесенные в словарь, будут отражены в списке элементов.
Пример. Внести изменения в исходный словарь, список элементов также обно­вится:
car = {
"brand": "Lada",
"model": "2106",
"year": 1989
}
x = car.items()
print(x) # перед изменением
car["year"] = 2020
print(x) # после изменения
Способ 6. Проверка существования ключа.
Чтобы определить, присутствует ли указанный ключ в словаре, используют ключевое слово in:
Пример. Проверить, присутствует ли ключ "model" в словаре:
thisdict = {
car = {
"brand": "Lada",
"model": "2106",
110
"year": 1989
}
}
if "model" in car:
print("'model' является одним из ключей в словаре car")
Добавление и изменение элементов словаря
Способ 1. Изменение значения определенного элемента по имени ключа эле-
мента словаря:
Пример. Изменить "year " на 1991:
car = {
"brand": "Lada",
"model": "2106",
"year": 1989
}
car[year]=1991
Добавление элемента в словарь выполняется с помощью нового ключа индекса и присвоения ему значения:
car[color]=”red”
Способ 2. Обновление словаря методом update() новыми значениями элементов из аргумента метода. Аргумент должен быть словарем или итерируемым объектом с парами ключ: значение. Если элемент не существует, он будет добавлен.
Пример. Обновить "year" автомобиля с помощью метода update() :
car = {
"brand": "Lada",
"model": "2106",
"year": 1989
}
car.update({"year":1990})
Удаление элементов
Существует несколько методов удаления элементов из словаря:
Пример. Метод pop() удаляет элемент с указанным именем ключа:
car = {
"brand": "Lada",
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]