MelnikovDM 1 месяц назад
Родитель 6fe3733f85
Сommit 12a33cb6a1

@ -1,8 +1,6 @@
Протокол ПО АС по ТЕМЕ 2
Выполнил: Мельников Д. М.
Проверил: Козлюк Д. А.
# Отчет теме 2
#Цель темы: изучение применения простых конструкций языка Python в операциях с данными.
Мельников Дмитрий, А-01-23
## 1. Запуск оболочки IDLE и установка рабочего каталога
@ -14,8 +12,10 @@
Для того, чтобы узнать, какое значение имеет переменная, достаточно перечислить их имена в строке, разделяя их знаком «,» (запятая) или «;» (точка с запятой) :
```
>>>f1,f2
>>>f1;f2
(16, 3)
>>>f1;f2
16
3
```
Для того, чтобы узнать, какие объекты уже существуют в данный момент в среде Python (в пространстве имен), используем функцию dir без аргументов:
@ -40,18 +40,22 @@
```
Проверим, остались ли эти объекты в памяти.
```
>>>dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
>>>dir(f1)
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.
Правила именования:
• имена должны состоять из латинских букв, цифр и символов подчеркивания;
• имена должны начинаться с латинской буквы (иногда могут начинаться с символа подчеркивания, но это – особый вид переменных);
• имена не должны совпадать с ключевыми словами и встроенными идентификаторами языка Python;
• большие и малые буквы в именах различаются (имена – чувствительные к регистру)!
С учетом этих правил в командном окне IDLE выполните следующие операции (если после ввода инструкции не появляется диагностическое сообщение, убедитесь, что переменная получила введенное значение):
## 3. Изучение правила именования объектов в Python.
```
>>>gg1=1.6 #значение в виде вещественного числа
>>>gg1
@ -133,14 +137,14 @@ SyntaxError: invalid syntax
>>>sum([10, 5 ,7])
22
```
Объединение объектов в кортеж (возвращается указатель на участок памяти)
Объединение объектов в кортеж (Возвращает итератор )
```
>>> list1 = [1, 2, 2]
>>> list2 = [3, 4, 5]
>>> zip (list1, list2)
<zip object at 0x000002039D4C0C80>
```
Это итератор - указатель на объект памяти.
Это итератор - указатель на объект памяти.(Итератор - это объект, который позволяет последовательно получать доступ к элементам коллекции без необходимости знать её внутреннее устройство.)
## 6. Пример того, что Python - регистрочувствительный язык.
```
@ -326,8 +330,8 @@ TypeError: 'str' object does not support item assignment
## 8. Списки (list), кортежи (tuple), словари (dict), множества (set).
### 8.1. Список – это последовательность: упорядоченная по местоположению коллекция объектов произвольных типов, размер которых практически не ограничен. В отличие от символьных строк, списки являются изменяемыми последовательностями, т.е. их элементы могут изменяться с помощью операций присваивания.
Пример списка с 3 элементами разных типов:
### 8.1. Список
```
>>>spis1=[111,'Spisok',5-9j]
>>>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))
```
### 8.3. Объект-словарь похож на ассоциативные массивы в других языках программирования. Его содержанием является совокупность пар: «ключ (key)»:«значение (value)». В качестве ключей могут использоваться неизменяемые типы объектов. Значениями могут быть объекты любого типа. Ссылка на ключ обеспечивает быстрый доступ к связанному с ним значению. В отличие от списков и кортежей совокупность элементов словаря не является упорядоченной (последовательностью). Его элементы могут изменяться с помощью операции присваивания значений.
### 8.3. Словарь
Пример создания словаря:
```
>>>dic1 = {'Saratov' : 145, 'Orel' : 56, 'Vologda' : 45}
@ -645,7 +650,7 @@ TypeError: 'tuple' object does not support item assignment
>>>dic5
{'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
@ -659,7 +664,8 @@ TypeError: 'tuple' object does not support item assignment
```
Как мы видим длина словаря составляет 5 объектов. Это связано с функцией zip, которая делает так, что длина итогового объекта будет соответствовать минимальной длине составляющего.
### 8.4. Объект-множество – это неупорядоченная совокупность неповторяющихся элементов. Эти элементы могут быть разных, но только неизменяемых типов (числа, строки, кортежи).
### 8.4. Множество
Пример создания множества:
```
>>>mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}

@ -1,81 +1,42 @@
# Общее контрольное задание по теме 2
## Задание
Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
• Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
• Создать переменную со значением, совпадающим с первой буквой из familia.
• Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
• Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
• Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
• Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
• Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
• Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
## Решение
```
>>>familia = 'Melnikov'
>>>familia
'Melnikov'
```
## Задание
Создать переменную со значением, совпадающим с первой буквой из familia.
## Решение
```
>>>f1 = familia[0]
>>>f1
'M'
```
## Задание
Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
## Решение
```
>>>import keyword
>>>sp_kw = keyword.kwlist
>>>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']
```
## Задание
Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
## Решение
```
>>>sp_kw.remove('nonlocal')
>>>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']
```
## Задание
Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
## Решение
```
>>>kort_nam = ("Dima", "Nikita", "Vadim", "Artem")
>>>kort_nam
('Dima', 'Nikita', 'Vadim', 'Artem')
>>>type(kort_nam)
<class 'tuple'>
```
## Задание
Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
## Решение
```
>>>kort_nam += ("Ivan", "Liza")
>>>kort_nam
('Dima', 'Nikita', 'Vadim', 'Artem', 'Ivan', 'Liza')
```
## Задание
Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
## Решение
```
>>>kort_nam.count("Dima")
1
```
## Задание
Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
## Решение
```
>>>dict_bas = {"строка" : familia, "символ" : f1, "список" : sp_kw, "кортеж" : kort_nam}
>>>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')}

Загрузка…
Отмена
Сохранить