Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Материалы для дальнейшего чтения




Материалы для дальнейшего чтения

  • PEP 257: Docstring Conventions объясняет, чем отличается хорошая строка документации от великолепной.
  • Python Tutorial: Documentation Strings также касается данного вопроса.
  • PEP 8: Style Guide for Python Code обсуждает хороший стиль расстановки отступов.
  • Python Reference Manual объясняет, что означают слова «в Python всё является объектом», потому что некоторые люди — педанты, которые любят длиннющие обсуждения вещей такого рода.

Примечания

  1. В английском языке апострофы, обрамляющие текст, — это уже одинарные кавычки. — Прим. пер.
  2. Имеется ввиду тип данных string (строка). — Прим. пер.

Встроенные типы данных

 

В начале всяческой философии лежит удивление, изучение движет его вперёд, невежество убивает его.
Мишель де Монтень

Погружение

Отложите на минутку вашу первую программу на Python и давайте поговорим о типах данных. В Python у каждого значения есть тип, но нет необходимости явно указывать типы переменных. Как это работает? Основываясь на первом присвоении значения переменной, Python определяет её тип и в дальнейшем отслеживает его самостоятельно.

В Python имеется множество встроенных типов данных. Вот наиболее важные из них:

  1. Логический, может принимать одно из двух значений — True (истина) или False (ложь).
  2. Числа, могут быть целыми (1 и 2), с плавающей точкой (1. 1 и 1. 2), дробными (1/2 и 2/3), и даже комплексными.
  3. Строки — последовательности символов Юникода, например, HTML-документ.
  4. Байты и массивы байтов, например, файл изображения в формате JPEG.
  5. Списки — упорядоченные последовательности значений.
  6. Кортежи — упорядоченные неизменяемые последовательности значений.
  7. Множества — неупорядоченные наборы значений.
  8. Словари — неупорядоченные наборы пар вида ключ-значение.

Конечно, существуют и многие другие типы данных. В языке Python всё является объектом, поэтому в нём имеются также и такие типы, как модуль, функция, класс, метод, файл, и даже скомпилированный код. Некоторые из них вы уже встречали: у модулей есть имена, функции имеют строки документации, и т. д. С классами вы познакомитесь в главе «Классы и итераторы»; с файлами — в главе «Файлы».

Строки и байты насколько сложны, настолько же и важны, поэтому им отведена отдельная глава. Но сначала давайте познакомимся с остальными типами.

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

Практически любое выражение можно использовать в логическом контексте.

Логический тип данных может принимать одно из двух значений: истина или ложь. В Python имеются две константы с понятными именами True (от англ. true — истина) и False (от англ. false — ложь), которые можно использовать для непосредственного присвоения логических значений. Результатом вычисления выражений также может быть логическое значение. В определенных местах (например, в операторе if), Python ожидает, что результатом вычисления выражения будет логическое значение. Такие места называют логическим контекстом. Практически любое выражение можно использовать в логическом контексте, Python в любом случае попытается определить его истинность. Для этого имеются отдельные наборы правил, для различных типов данных, указывающие на то, какие из их значений считать истинными, а какие ложными в логическом контексте. (Эта идея станет более понятна по мере ознакомления с конкретными примерами далее в этой главе. )

К примеру, рассмотрим следующий отрывок из программы humansize. py:

if size < 0:
raise ValueError('число должно быть неотрицательным')

Здесь переменная size и значение 0 имеют тип целого числа, а знак < между ними является числовым оператором. Результатом же вычисления выражения size < 0 всегда будет логическое значение. Вы можете самостоятельно в этом убедиться с помощью интерактивной оболочки Python:

> > > size = 1
> > > size < 0
False
> > > size = 0
> > > size < 0
False
> > > size = -1
> > > size < 0
True

Из-за некоторых обстоятельств, связанных с наследием оставшимся от Python 2, логические значения могут трактоваться как числа. True как 1, и False как 0.

> > > True + True
2
> > > True - False
1
> > > True * False
0
> > > True / False
Traceback (most recent call last):
File " < stdin> ", line 1, in < module>
ZeroDivisionError: int division or modulo by zero

Перевод сообщения оболочки:

Раскрутка стека (список последних вызовов):

Файл " < stdin> ", строка 1, < модуль>

ZeroDivisionError: целочисленное деление на ноль или остаток по модулю ноль

Ой-ой-ой! Не делайте так! Забудьте даже, что я упоминал об этом.

Числа

Числа — это потрясающая штука. Их так много, всегда есть, из чего выбрать. Python поддерживает как целые числа, так и с плавающей точкой. И нет необходимости объявлять тип для их различия; Python определяет его по наличию или отсутствию десятичной точки.

> > > type(1) ①
< class 'int'>
> > > isinstance(1, int) ②
True
> > > 1 + 1 ③
2
> > > 1 + 1. 0 ④
2. 0
> > > type(2. 0)
< class 'float'>

Можно использовать функцию type() для проверки типа любого значения или переменной. Как и ожидалось, число 1 имеет тип int (целое).
Функцию isinstance() тоже можно использовать для проверки принадлежности значения или переменной определенному типу.
Сложение двух значений типа int дает в результате тот же int.
Сложение значений типа int и float дает в результате float. Для выполнения операции сложения Python преобразует значение типа int в значение типа float, и в результате возвращает float.
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...