Методика изучения Языка программирования Python
Урок 13. Списки
Конспект урока № 13.
Тема урока: Списки
Тип урока: урок усвоения новых знаний.
Цель урока: познакомить учащихся с основными понятиями.
Задачи урока:
Образовательная: познакомить учащихся с основными понятиями, научить применять на практике;
Развивающая: развивать у учащихся логическое и алгоритмическое мышление, навыки мыслительной деятельности, включая каждого учащегося в учебно-познавательный процесс и создавая условия для работы каждого в индивидуальном психологическом ритме;
Воспитательная: воспитывать у учащихся самостоятельность, активность, интерес к предмету.
Этапы урока:
1) Организационный момент – 1 мин.
2) Изучение нового материала – 10 мин.
3) Рефлексия – 2 мин.
4) Самостоятельная работа – 22 мин.
Оборудование:
-
Компьютер, Python (версия не ниже 3.5), модули Tkinter и NumPy, среды разработки на Python: IDLE, Eric или Geany, а также какие-либо эмуляторы терминалов _ xterm, rxvt, проектор.
Списки в языке программирования Python, как и строки, являются упорядоченными последовательностями. Однако, в отличии от строк, списки состоят не из символов, а из различных объектов (значений, данных), и заключаются не в кавычки, а в квадратные скобки []. Объекты отделяются друг от друга с помощью запятой.
Списки могут состоять из различных объектов: чисел, строк и даже других списков. В последнем случае, списки называют вложенными.
[23, 656, -20, 67, -45] #список целых чисел
[4.15, 5.93, 6.45, 9.3, 10.0, 11.6] #список из дробных чисел
[«Katy», «Sergei», «Oleg», «Dasha»] #список из строк
[«Москва», «Титова», 12, 148] #смешанный список
[[0, 0, 0], [0, 0, 1], [0, 1, 0]] #список, состоящий из списков
Листинг 1. Примеры списков
Как и над строками над списками можно выполнять операции соединения и повторения:
>>> [45, -12, 'april'] + [21, 48.5, 33]
[45, -12, 'april', 21, 48.5, 33]
>>> [[0,0], [0,1], [1,1]] * 2
[[0, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 1]]
Листинг 2. Операции соединения и повторения над списками
По аналогии с символами строк, можно получать доступ к объектам списка по их индексам, извлекать срезы, измерять длину списка:
>>> li = ['a', 'b', 'c', 'd', 'e', 'f']
>>> len(li)
6
>>> li[0]
'a'
>>> li[4]
'e'
>>> li [0:3]
['a', 'b', 'c']
>>> li [3:]
['d', 'e', 'f']
Листинг 3. Доступ к объектам списка по его индексам
В отличии от строк, списки - это изменяемые последовательности. Если представить строку как объект в памяти, то когда над ней выполняются операции конкатенации и повторения, то это строка не меняется, а в результате операции создается другая строка в другом месте памяти. В строку нельзя добавить новый символ или удалить существующий, не создав при этом новой строки. Со списком дело обстоит иначе. При выполнении операций другие списки могут не создаваться, а изменяться непосредственно оригинал. Из списков можно удалять элементы, добавлять новые. При этом следует помнить, многое зависит от того, как вы распоряжаетесь переменными. Бывают ситуации, когда списки все-таки копируются. Например, результат операции присваивается другой переменной.
Символ в строке изменить нельзя, элемент списка - можно:
>>> mystr = 'abrakadabra'
>>> mylist = ['ab', 'ra', 'ka', 'da', 'bra']
>>> mystr[3] = '0'
Traceback (most recent call last):
File «<pyshell#11>», line 1, in <module>
mystr[3] = '0'
TypeError: 'str' object does not support item assignment
>>> mylist[1] = 'ro'
>>> mylist
['ab', 'ro', 'ka', 'da', 'bra']
>>>
Листинг 4. Изменение элемента списка
В списке можно заменить целый срез:
>>> mylist [0:2] = [10,20]
>>> mylist
[10, 20, 'ka', 'da', 'bra']
Листинг 31. Замена среза в списке
Более сложная ситуация:
>>> alist = mylist [0:2] + [100,'it is ', 200] + mylist [2:] # новый список
>>> a2list = mylist # создается вторая ссылка-переменная на первый список
>>> alist
[10, 20, 100, 'it is ', 200, 'ka', 'da', 'bra']
>>> a2list
[10, 20, 'ka', 'da', 'bra']
>>> a2list[0] = '!!!' # изменяем список
>>> a2list
['!!!', 20, 'ka', 'da', 'bra']
>>> mylist # обе переменные связаны с одним списком
['!!!', 20, 'ka', 'da', 'bra']
Листинг 5. Замена элемента списка
Практическая работа
1. Создайте два любых списка и свяжите их с переменными.
2. Извлеките из первого списка второй элемент.
3. Измените во втором списке последний объект. Выведите список на экран.
4. Соедините оба списка в один, присвоив результат новой переменной. Выведите получившийся список на экран.
5. «Снимите» срез из соединенного списка так, чтобы туда попали некоторые части обоих первых списков. Срез свяжите с очередной новой переменной. Выведите значение этой переменной.
6. Добавьте в список-срез два новых элемента и снова выведите его.
Вопросы для контроля:
1. Из чего могут состоять списки?
2. Что такое списки?
3. Как связать списки с переменными?
