ответвлено от main/python-labs
Changes in files
Этот коммит содержится в:
@@ -1,8 +1,6 @@
|
|||||||
Протокол ПО АС по ТЕМЕ 2
|
# Отчет теме 2
|
||||||
Выполнил: Мельников Д. М.
|
|
||||||
Проверил: Козлюк Д. А.
|
|
||||||
|
|
||||||
#Цель темы: изучение применения простых конструкций языка Python в операциях с данными.
|
Мельников Дмитрий, А-01-23
|
||||||
|
|
||||||
## 1. Запуск оболочки IDLE и установка рабочего каталога
|
## 1. Запуск оболочки IDLE и установка рабочего каталога
|
||||||
|
|
||||||
@@ -14,8 +12,10 @@
|
|||||||
Для того, чтобы узнать, какое значение имеет переменная, достаточно перечислить их имена в строке, разделяя их знаком «,» (запятая) или «;» (точка с запятой) :
|
Для того, чтобы узнать, какое значение имеет переменная, достаточно перечислить их имена в строке, разделяя их знаком «,» (запятая) или «;» (точка с запятой) :
|
||||||
```
|
```
|
||||||
>>>f1,f2
|
>>>f1,f2
|
||||||
>>>f1;f2
|
|
||||||
(16, 3)
|
(16, 3)
|
||||||
|
>>>f1;f2
|
||||||
|
16
|
||||||
|
3
|
||||||
```
|
```
|
||||||
|
|
||||||
Для того, чтобы узнать, какие объекты уже существуют в данный момент в среде Python (в пространстве имен), используем функцию dir без аргументов:
|
Для того, чтобы узнать, какие объекты уже существуют в данный момент в среде Python (в пространстве имен), используем функцию dir без аргументов:
|
||||||
@@ -40,18 +40,22 @@
|
|||||||
```
|
```
|
||||||
Проверим, остались ли эти объекты в памяти.
|
Проверим, остались ли эти объекты в памяти.
|
||||||
```
|
```
|
||||||
>>>dir()
|
>>>dir(f1)
|
||||||
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
|
Traceback (most recent call last):
|
||||||
|
File "<pyshell#5>", line 1, in <module>
|
||||||
|
dir(f1)
|
||||||
|
NameError: name 'f1' is not defined
|
||||||
|
dir(f2)
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "<pyshell#6>", line 1, in <module>
|
||||||
|
dir(f2)
|
||||||
|
NameError: name 'f2' is not defined
|
||||||
|
|
||||||
```
|
```
|
||||||
Видим, что объекты удалились.
|
Видим, что объекты удалились.
|
||||||
|
|
||||||
##3. Изучение правила именования объектов в Python.
|
## 3. Изучение правила именования объектов в Python.
|
||||||
Правила именования:
|
|
||||||
• имена должны состоять из латинских букв, цифр и символов подчеркивания;
|
|
||||||
• имена должны начинаться с латинской буквы (иногда могут начинаться с символа подчеркивания, но это – особый вид переменных);
|
|
||||||
• имена не должны совпадать с ключевыми словами и встроенными идентификаторами языка Python;
|
|
||||||
• большие и малые буквы в именах различаются (имена – чувствительные к регистру)!
|
|
||||||
С учетом этих правил в командном окне IDLE выполните следующие операции (если после ввода инструкции не появляется диагностическое сообщение, убедитесь, что переменная получила введенное значение):
|
|
||||||
```
|
```
|
||||||
>>>gg1=1.6 #значение в виде вещественного числа
|
>>>gg1=1.6 #значение в виде вещественного числа
|
||||||
>>>gg1
|
>>>gg1
|
||||||
@@ -133,14 +137,14 @@ SyntaxError: invalid syntax
|
|||||||
>>>sum([10, 5 ,7])
|
>>>sum([10, 5 ,7])
|
||||||
22
|
22
|
||||||
```
|
```
|
||||||
Объединение объектов в кортеж (возвращается указатель на участок памяти)
|
Объединение объектов в кортеж (Возвращает итератор )
|
||||||
```
|
```
|
||||||
>>> list1 = [1, 2, 2]
|
>>> list1 = [1, 2, 2]
|
||||||
>>> list2 = [3, 4, 5]
|
>>> list2 = [3, 4, 5]
|
||||||
>>> zip (list1, list2)
|
>>> zip (list1, list2)
|
||||||
<zip object at 0x000002039D4C0C80>
|
<zip object at 0x000002039D4C0C80>
|
||||||
```
|
```
|
||||||
Это итератор - указатель на объект памяти.
|
Это итератор - указатель на объект памяти.(Итератор - это объект, который позволяет последовательно получать доступ к элементам коллекции без необходимости знать её внутреннее устройство.)
|
||||||
|
|
||||||
## 6. Пример того, что Python - регистрочувствительный язык.
|
## 6. Пример того, что Python - регистрочувствительный язык.
|
||||||
```
|
```
|
||||||
@@ -326,8 +330,8 @@ TypeError: 'str' object does not support item assignment
|
|||||||
|
|
||||||
## 8. Списки (list), кортежи (tuple), словари (dict), множества (set).
|
## 8. Списки (list), кортежи (tuple), словари (dict), множества (set).
|
||||||
|
|
||||||
### 8.1. Список – это последовательность: упорядоченная по местоположению коллекция объектов произвольных типов, размер которых практически не ограничен. В отличие от символьных строк, списки являются изменяемыми последовательностями, т.е. их элементы могут изменяться с помощью операций присваивания.
|
### 8.1. Список
|
||||||
Пример списка с 3 элементами разных типов:
|
|
||||||
```
|
```
|
||||||
>>>spis1=[111,'Spisok',5-9j]
|
>>>spis1=[111,'Spisok',5-9j]
|
||||||
>>>spis1
|
>>>spis1
|
||||||
@@ -546,7 +550,7 @@ index(value, start=0, stop=9223372036854775807, /) method of builtins.list insta
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 8.2. Объект-кортеж похож на список, но его нельзя изменить – кортежи являются последовательностями, как списки, но они являются неизменяемыми, как строки. В отличие от списка литерал кортежа заключается в круглые, а не в квадратные скобки. Кортежи также поддерживают включение в них объектов различных типов и операции, типичные для последовательностей.
|
### 8.2. Кортеж
|
||||||
|
|
||||||
Примеры операций с кортежами: создание кортежа
|
Примеры операций с кортежами: создание кортежа
|
||||||
```
|
```
|
||||||
@@ -601,7 +605,8 @@ TypeError: 'tuple' object does not support item assignment
|
|||||||
(333, 'Dmitry', [10, 11, 12], (6, 7, 8))
|
(333, 'Dmitry', [10, 11, 12], (6, 7, 8))
|
||||||
```
|
```
|
||||||
|
|
||||||
### 8.3. Объект-словарь похож на ассоциативные массивы в других языках программирования. Его содержанием является совокупность пар: «ключ (key)»:«значение (value)». В качестве ключей могут использоваться неизменяемые типы объектов. Значениями могут быть объекты любого типа. Ссылка на ключ обеспечивает быстрый доступ к связанному с ним значению. В отличие от списков и кортежей совокупность элементов словаря не является упорядоченной (последовательностью). Его элементы могут изменяться с помощью операции присваивания значений.
|
### 8.3. Словарь
|
||||||
|
|
||||||
Пример создания словаря:
|
Пример создания словаря:
|
||||||
```
|
```
|
||||||
>>>dic1 = {'Saratov' : 145, 'Orel' : 56, 'Vologda' : 45}
|
>>>dic1 = {'Saratov' : 145, 'Orel' : 56, 'Vologda' : 45}
|
||||||
@@ -645,7 +650,7 @@ TypeError: 'tuple' object does not support item assignment
|
|||||||
>>>dic5
|
>>>dic5
|
||||||
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n <Мельников Д. М.>'}
|
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n <Мельников Д. М.>'}
|
||||||
```
|
```
|
||||||
Самостоятельно придумайте объект-кортеж с 7 элементами и объект-список с 5 элементами и попробуйте создать из них словарь с помощью функций dict и zip. Сколько элементов в получившемся словаре? Объясните это число.
|
Создание объекта-кортежа с 7 элементами и объекта-списка с 5 элементами и создание из них словаря с помощью функций dict и zip.
|
||||||
```
|
```
|
||||||
>>>obj_cort = ("plus", "minus", "del", 4, 5, "med", "mod")
|
>>>obj_cort = ("plus", "minus", "del", 4, 5, "med", "mod")
|
||||||
>>>obj_cort
|
>>>obj_cort
|
||||||
@@ -659,7 +664,8 @@ TypeError: 'tuple' object does not support item assignment
|
|||||||
```
|
```
|
||||||
Как мы видим длина словаря составляет 5 объектов. Это связано с функцией zip, которая делает так, что длина итогового объекта будет соответствовать минимальной длине составляющего.
|
Как мы видим длина словаря составляет 5 объектов. Это связано с функцией zip, которая делает так, что длина итогового объекта будет соответствовать минимальной длине составляющего.
|
||||||
|
|
||||||
### 8.4. Объект-множество – это неупорядоченная совокупность неповторяющихся элементов. Эти элементы могут быть разных, но только неизменяемых типов (числа, строки, кортежи).
|
### 8.4. Множество
|
||||||
|
|
||||||
Пример создания множества:
|
Пример создания множества:
|
||||||
```
|
```
|
||||||
>>>mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
|
>>>mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
|
||||||
|
|||||||
@@ -1,81 +1,42 @@
|
|||||||
# Общее контрольное задание по теме 2
|
# Общее контрольное задание по теме 2
|
||||||
|
|
||||||
## Задание
|
## Задание
|
||||||
Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
|
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
|
||||||
|
• Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
|
||||||
|
• Создать переменную со значением, совпадающим с первой буквой из familia.
|
||||||
|
• Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
|
||||||
|
• Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
|
||||||
|
• Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
|
||||||
|
• Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
|
||||||
|
• Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
|
||||||
|
• Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
|
||||||
|
|
||||||
## Решение
|
## Решение
|
||||||
|
|
||||||
```
|
```
|
||||||
>>>familia = 'Melnikov'
|
>>>familia = 'Melnikov'
|
||||||
>>>familia
|
>>>familia
|
||||||
'Melnikov'
|
'Melnikov'
|
||||||
```
|
|
||||||
|
|
||||||
## Задание
|
|
||||||
Создать переменную со значением, совпадающим с первой буквой из familia.
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>f1 = familia[0]
|
>>>f1 = familia[0]
|
||||||
>>>f1
|
>>>f1
|
||||||
'M'
|
'M'
|
||||||
```
|
|
||||||
|
|
||||||
## Задание
|
|
||||||
Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>import keyword
|
>>>import keyword
|
||||||
>>>sp_kw = keyword.kwlist
|
>>>sp_kw = keyword.kwlist
|
||||||
>>>sp_kw
|
>>>sp_kw
|
||||||
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
|
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
|
||||||
```
|
|
||||||
|
|
||||||
## Задание
|
|
||||||
Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>sp_kw.remove('nonlocal')
|
>>>sp_kw.remove('nonlocal')
|
||||||
>>>sp_kw
|
>>>sp_kw
|
||||||
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
|
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
|
||||||
```
|
|
||||||
## Задание
|
|
||||||
Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>kort_nam = ("Dima", "Nikita", "Vadim", "Artem")
|
>>>kort_nam = ("Dima", "Nikita", "Vadim", "Artem")
|
||||||
>>>kort_nam
|
>>>kort_nam
|
||||||
('Dima', 'Nikita', 'Vadim', 'Artem')
|
('Dima', 'Nikita', 'Vadim', 'Artem')
|
||||||
>>>type(kort_nam)
|
>>>type(kort_nam)
|
||||||
<class 'tuple'>
|
<class 'tuple'>
|
||||||
```
|
|
||||||
|
|
||||||
## Задание
|
|
||||||
Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>kort_nam += ("Ivan", "Liza")
|
>>>kort_nam += ("Ivan", "Liza")
|
||||||
>>>kort_nam
|
>>>kort_nam
|
||||||
('Dima', 'Nikita', 'Vadim', 'Artem', 'Ivan', 'Liza')
|
('Dima', 'Nikita', 'Vadim', 'Artem', 'Ivan', 'Liza')
|
||||||
```
|
|
||||||
|
|
||||||
## Задание
|
|
||||||
Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>kort_nam.count("Dima")
|
>>>kort_nam.count("Dima")
|
||||||
1
|
1
|
||||||
```
|
|
||||||
|
|
||||||
## Задание
|
|
||||||
Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
|
|
||||||
|
|
||||||
## Решение
|
|
||||||
```
|
|
||||||
>>>dict_bas = {"строка" : familia, "символ" : f1, "список" : sp_kw, "кортеж" : kort_nam}
|
>>>dict_bas = {"строка" : familia, "символ" : f1, "список" : sp_kw, "кортеж" : kort_nam}
|
||||||
>>>dict_bas
|
>>>dict_bas
|
||||||
{'строка': 'Melnikov', 'символ': 'M', 'список': ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'], 'кортеж': ('Dima', 'Nikita', 'Vadim', 'Artem', 'Ivan', 'Liza')}
|
{'строка': 'Melnikov', 'символ': 'M', 'список': ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'], 'кортеж': ('Dima', 'Nikita', 'Vadim', 'Artem', 'Ivan', 'Liza')}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user