Замечание для опытных программистов

Замечание для опытных программистов

Нет отдельного типа ‘long int’ (длинное целое). Целые числа по умолчанию могут быть

произвольной длины.

7.4 Строки

Строка – этопоследовательность символов. Чаще всего строки – это просто некоторые наборы слов.

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

стандартом Unicode, что означает почти на любом языке мира.

Замечание для опытных программистов

В Python 3 нет ASCII-строк, потому что Unicode является надмножеством (включает в

себя) ASCII. Если необходимо получить строку строго в кодировке ASCII, используйте

str.encode("ascii"). Подробнее смотрите в обсуждении этого вопроса на StackOverflow.

По умолчанию все строки в Unicode.

Я могу с уверенностью сказать, что вы будете использовать строки почти в каждой ва-

шей программе на Python. Поэтому уделите внимание тому, как работать со строками в

Python.

1 “literal” – англ. «буквальный»; вспомните «литера» (син. «буква»). (прим. перев.)

7.4.1 Одинарные кавычки

Строку можно указать, используя одинарные кавычки, как например, 'Фраза в кавыч-

ках'. Все пробелы и знаки табуляции сохранятся, как есть.

7.4.2 Двойные кавычки

Строки в двойных кавычках работают точно так же, как и в одинарных. Например,

"What's your name?".

7.4.3 Тройные кавычки

Можно указывать «многострочные» строки с использованием тройных кавычек (""" или

'''). В пределах тройных кавычек можно свободно использовать двойные или тройные

кавычки. Например:

'''Это многострочная строка. Это её первая строка.

Это её вторая строка.

"What's your name?", - спросил я.

Он ответил: "Bond, James Bond."

'''

7.4.4 Строки неизменяемы

Это означает, что после создания строки её больше нельзя изменять. На первый взгляд

это может показаться недостатком, но на самом деле это не так. В последствии на примере

разных программ мы увидим, почему это не является ограничением.

7.4.5 Объединение строковых констант

Если расположить рядом две строковых константы, Python автоматически их объеди-

нит. Например, 'What\'s ' 'your name?' автоматически преобразуется в "What's your

name?".

Замечание для программистов на C/C++

В Python нет отдельного типа данных char (символ). В нём нет нужды, и я уверен, что вы

не будете по нему скучать.

7.4.6 Метод format

Иногда бывает нужно составить строку на основе каких-либо данных. Вот здесь-то и при-

гождается метод format().

Сохраните следующие строки в файл str_format.py:

age = 26

name = 'Swaroop'

print('Возраст {0} -- {1} лет.'.format(name, age))

print('Почему {0} забавляется с этим Python?'.format(name))

Вывод:

$ python str_format.py

Возраст Swaroop -- 26 лет.

Почему Swaroop забавляется с этим Python?

Как это работает:

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

Взгляните на первый случай применения обозначений, где мы пишем {0}, и это соответствует переменной name, являющейся первым аргументом метода format. Аналогично, второе обозначение {1} соответствует переменной age, являющейся вторым аргументом метода format. Заметьте, что Python начинает отсчёт с 0, поэтому первая позиция – номер 0, вторая – номер 1 и т.д.

Заметьте, мы ведь могли добиться того же самого результата и объединением строк: 'Возраст' + name + ' -- ' + str(age) + ' лет.', однако вы сами видите, как это некрасиво, и как легко в таком случае допустить ошибку. Во- вторых, преобразование в строку делается методом format автоматически, в отличие от явного преобразования в нашем примере. В-третьих, используя метод format, мы можем изменить сообщение, не затрагивая используемых переменных, и наоборот.

На всякий случай имейте в виду, что цифры здесь не обязательны. Можно было бы просто написать:

age = 26

name = 'Swaroop'

print('Возраст {} -- {} лет.'.format(name, age))

print('Почему {} забавляется с этим Python?'.format(name))

и получить такой же результат, как и ранее.

В методе format Python помещает значение каждого аргумента в обозначенное место. Могут быть и более детальные обозначения, как то:

>>> # десятичное число (.) с точностью в 3 знака для плавающих:

... '{0:.3}'.format(1/3)

'0.333'

>>> # заполнить подчёркиваниями (_) с центровкой текста (^) по ширине 11:

... '{0:_^11}'.format('hello')

'___hello___'

>>> # по ключевым словам:

... '{name} написал {book}'.format(name='Swaroop', book='A Byte of Python')

'Swaroop написал A Byte of Python'

Детально такие обозначения форматов описаны в Предложении по расширению Python

PEP 3101.

7.5 Переменные

Использование одних лишь литеральных констант может скоро наскучить – нам ведь

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

ну выходятпеременные. Слово «переменные» говорит само за себя – их значение может

меняться, а значит, вы можете хранить в переменной всё, что угодно. Переменные – это

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

отличие от констант, к такой информации нужно каким-то образом получать доступ,

поэтому переменным даются имена.

7.6 Имена идентификаторов

Переменные – это частный случай идентификаторов. Идентификаторы – это имена, при- своенные чему-то для его обозначения. При выборе имён для идентификаторов необходимо соблюдать следующие правила:

• Первым символом идентификатора должна быть буква из алфавита (символ ASCII в верхнем или нижнем регистре, или символ Unicode), а также символ подчёркивания (“_”).

• Остальная часть идентификатора может состоять из букв (символы ASCII в верхнем или нижнем регистре, а также символы Unicode), знаков подчёркивания (“_”) или цифр (0-9).

• Имена идентификаторов чувствительны к регистру. Например, myname и myName – это не одно и то же. Обратите внимание на “n” в нижнем регистре в первом случае и “N” в верхнем во втором.

• Примеры допустимых имён идентификаторов: i, __my_name, name_23, a1b2_c3 и любые_символы_utf8_δξѪђёўЩӆΞέά.

• Примеры недопустимых имён идентификаторов: 2things, здесь есть пробелы, my-name, >a1b2_c3 и "идентификатор_в_кавычках".

7.7 Типы данных

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

7.8 Объекты

Помните, Python рассматривает всё, что есть в программе, как объекты. Имеется в виду, в самом общем смысле. Вместо того, чтобы говорить “нечто”, мы говорим “объект”.

Наши рекомендации