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

ЛЕКЦИЯ 2

.pdf
Скачиваний:
11
Добавлен:
26.03.2016
Размер:
1.15 Mб
Скачать

1.Зачем нужны встроенные типы?

Встроенные объекты упрощают создание программ. Так как избавляют от необходимости реализации структур данных.

Встроенные объекты – это компоненты расширений. Для решения сложных задач вы можете создавать собственные объекты, используя для этого встроенные классы языка Python .

Встроенные объекты часто более эффективны, чем созданные вручную структуры данных.

Встроенные типы языка Python используют уже оптимизированные структуры данных, реализованные на языке C для достижения высокой производительности.

Встроенные объекты – это стандартная часть языка. В определенной степени Python многое

заимствует как из языков, полагающихся на использование встроенных инструментальных средств (таких как LISP), так и полагающихся на мастерство программиста, который должен выполнить собственную реализацию инструментов и структур данных (таких как C++). В языке Python можно создавать собственные типы объектов, но в самом начале делать это не рекомендуется. Более того, из-за того, что встроенные компоненты являются стандартными

составляющими языка Python, они всегда остаются неизменными, тогда как собственные структуры имеют свойство изменяться от случая к случаю.

Лекция 2. Введение в типы объектов языка Python.

1.Зачем нужны встроенные типы? 2.Введение в типы Python. 3.Числа.

4.Строки.

4.1.Операции над последовательностями. 4.2.Неизменяемость.

4.3.Методы, специфичные для типа. 4.4.Получение помощи.

5.Списки.

5.1.Операции над последовательностями. 5.2.Методы, специфичные для типа. 5.3.Проверка выхода за границы. 5.4.Вложенные списки.

5.5.Генераторы списков. 6.Словари.

6.1.Операции над отображениями. 6.2.Еще раз о вложенности.

7.Кортежи. 8.Файлы.

9.Другие базовые типы.

Изменяемые (после создания можно изменить значение целиком или частично):

Списки

Словари

Неизменяемые (после создания нельзя изменить значение ни целиком, ни частично):

Числа

Множества

Строки

Кортежи

2.Введение в типы Python.

Литерал – это выражение, которое генерирует объект.

В языке Python отсутствует конструкция объявления типа, сам синтаксис выполняемых выражений задает типы создаваемых и используемых объектов. Как только будет создан объект, он будет ассоциирован со своим собственным набором операций на

протяжении всего времени существования – над строками можно будет выполнять только строковые операции, над списками – только операции, применимые к спискам.

3. Числа

Целые числа

Вещественные числа

Комплексные числа

Числа фиксированной точности

Рациональные числа

Множества

Логические значения

Целые числа неограниченной точности

Различные встроенные функции и модули для работы с числами

math — Mathematical functions random — Generate pseudo-random numbers

https://docs.python.org/3/library/math.html#module-math https://docs.python.org/3/library/random.html

9.2. math — Mathematical functions

9.2.1.Number-theoretic and representation functions: fabs(x), factorial(x), isnan(x), trunc(x).

9.2.2.Power and logarithmic functions: exp(x), log(x[, base]), pow(x, y), sqrt(x).

9.2.3.Trigonometric functions: cos(x), sin(x), tan(x).

9.2.4.Angular conversion: degrees(x), radians(x).

9.2.5.Hyperbolic functions: cosh(x), sinh(x), tanh(x).

9.2.6.Special functions: erf(x), gamma(x).

9.2.7.Constants: pi, e.

9.6. random — Generate pseudo-random numbers:

random(), seed(), randrange(start, stop[, step]), gauss(mu, sigma), uniform(a, b).

4.Строки

Строки используются для записи текстовой информации, а также произвольных последовательностей байтов.

Последовательности поддерживают порядок размещения элементов, которые они содержат, слева направо: элементы сохраняются и извлекаются исходя из их позиций в последовательностях.

Строго говоря, строки являются последовательностями односимвольных строк.

>>>S = ‘Spam’ #Переменная создается в тот момент, когда ей присваивается значение

>>>len(S) # Длина

4

>>>S[0] # Первый элемент в S, счет начинается с позиции 0

‘S’

>>>S[1] ‘p’ # Второй элемент слева

Обратная индексация:

S[-1] # Последний элемент в конце S

S[-2] # Второй элемент с конца

S[len(S)-1] # Более сложный способ

4.1.Операции над последовательностями

Операция получения среза: X[I:J] означает: «извлечь из X все, начиная со смещения I и до

смещения J, но не включая его». При выполнении операции получения среза левая граница по умолчанию принимается равной нулю, а правая – длине последовательности, к которой применяется операция.

Конкатенация: объединение двух строк в одну.

Повторение: новая строка создается за счет многократного повторения исходной строки.

Срез:

>>>S='Spam'

>>>S[1:3] # Срез строки S начиная со смещения 1 и до 2

рa

>>>S[1:] # Все, кроме первого элемента (1:len(S))

pam

>>>S[:3] # Все, кроме последнего элемента ( S[0:3]) ‘Spa’

>>>S[:-1] # Все, кроме последнего элемента

‘Spa’

Конкатенация:

>>> S + ‘xyz’# Конкатенация

Spamxyz

Повторение:

>>> S * 8 # Повторение SpamSpamSpamSpamSpamSpamSpamSpam

4. 2.Неизменяемость

Все операции над строками в результате создают новую строку, потому что строки в языке Python являются неизменяемыми – после того, как строка будет создана, ее нельзя изменить.

Невозможно изменить строку присвоением значения одной из ее позиций, однако можно создать новую строку и присвоить ей то же самое имя:

>>>S

Spam

>>>S[0] = ‘z’ # Неизменяемые объекты нельзя изменить

...текст сообщения об ошибке опущен...

>>>S = ‘z’ + S[1:] # Но с помощью выражений можно создавать новые объекты

>>>S

zpam

Из базовых типов числа, строки и кортежи являются неизменяемыми, а списки и словари – нет (они легко могут изменяться в любой своей части).

4. 3.Методы, специфичные для типа

Помимо операций, универсальных для последовательностей, строки также имеют свои собственные операции, реализованные в виде методов (функций, присоединенных к объекту).

S.find(‘pa’) # Поиск подстроки в строке (возвращает смещение переданной ему подстроки или -1, если поиск не увенчался успехом)

S.replace(‘pa’, ‘XYZ’) # Поиск с заменой

line.split(‘,’) # Разбивает строку по разделителю и создает список строк (line = ‘aaa,bbb,ccccc,dd’ )

S.isalpha() # Проверка содержимого: состоит ли строка из букв

4.4.Получение помощи

Функция ̆dir возвращает список всех доступных атрибутов заданного объекта: dir(S)

Функция help поясняет назначение того или иного метода: help(S.replace), help(S)

5.Списки

Списки – это самое общее представление последовательностей, реализованных в языке Python.

Списки – это упорядоченные по местоположению коллекции объектов произвольных типов, размер которых не ограничен. Кроме того, в отличие от строк, списки являются изменяемыми.

5.1.Операции над последовательностями

Списки поддерживают все операции над последовательностями, которые обсуждались при рассмотрении строк. Единственное отличие состоит в том, что результатом таких операций являются списки, а не строки:

>>>L = [123, ‘spam’, 1.23] # Список из трех объектов разных типов

>>>len(L) # Число элементов в списке

3

>>>L[0] # Доступ к элементу списка по его индексу 123

>>>L[:-1] # Операция получения среза возвращает новый список [123, ‘spam’]

>>>L + [4, 5, 6] # Операция конкатенации также возвращает новый список [123, ‘spam’, 1.23, 4, 5, 6]

>>>L # Оригинальный список не изменился

[123, ‘spam’, 1.23]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]