Array Array - Язык программирования Python
- Название:Язык программирования Python
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Array Array - Язык программирования Python краткое содержание
Язык программирования Python - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Листинг
# -*- coding: koi8–r -*-
или (под Windows):
Листинг
# -*- coding: cp1251 -*-
Могут быть и другие варианты:
Листинг
# -*- coding: latin–1 -*-# -*- coding: utf–8 -*-# -*- coding: mac–cyrillic -*-# -*- coding: iso8859–5 -*-
Полный перечень кодировок (и их псевдонимов):
Листинг
>>> import encodings.aliases
>>> print encodings.aliases.aliases
{'iso_ir_6': 'ascii', 'maccyrillic': 'mac_cyrillic',
'iso_celtic': 'iso8859_14', 'ebcdic_cp_wt': 'cp037',
'ibm500': 'cp500', …
Если кодировка не указана, то считается, что используется us–ascii. При этом интерпретатор Python будет выдавать предупреждения при запуске модуля:
Листинг
sys:1: DeprecationWarning: Non–ASCII character '\xf0' in file example.py
on line 2, but no encoding declared;
see http://www.python.org/peps/pep–0263.html for details
Строковые литералы
Строки можно задать в программе с помощью строковых литералов. Литералы записываются с использованием апострофов ', кавычек " или этих же символов, взятых трижды. Внутри литералов обратная косая черта имеет специальное значение. Она служит для ввода специальных символов и для указания символов через коды. Если перед строковым литералом поставлено r, обратная косая черта не имеет специального значения (r от английского слова raw, строка задается «как есть»). Unicode–литералы задаются с префиксом u. Вот несколько примеров:
Листинг
s1 = «строка 1»
s2 = r'\1\2'
s3 = ""«apple\ntree»"" # \n — символ перевода строки
s4 = ""«apple
tree»"" # строка в утроенных кавычках может иметь внутри переводы строк
s5 = '\x73\65'
u1 = u»Unicode literal»
u2 = u'\u0410\u0434\u0440\u0435\u0441'
Примечание:
Обратная косая черта не должна быть последним символом в литерале, то есть, «str\" вызовет синтаксическую ошибку.
Указание кодировки позволяет применять в Unicode–литералах указанную в начале программы кодировку. Если кодировка не указана, можно пользоваться только кодами символов, заданными через обратную косую черту.
Операции над строками
К операциям над строками, которые имеют специальную синтаксическую поддержку в языке, относятся, в частности конкатенация (склеивание) строк, повторение строки, форматирование:
Листинг
>>> print «A» + «B», «A»*5, "%s» % «A»
AB AAAAA A
В операции форматирования левый операнд является строкой формата, а правый может быть либо кортежем, либо словарем, либо некоторым значением другого типа:
Листинг
>>> print "%i» % 234
234
>>> print "%i %s %3.2f» % (5, «ABC», 23.45678)
5 ABC 23.46
>>> a = 123
>>> b = [1, 2, 3]
>>> print "%(a)i: %(b)s» % vars()
123: [1, 2, 3]
Операция форматирования
В строке формата кроме текста могут употребляться спецификации, регламентирующие формат выводимого значения. Спецификация имеет синтаксис
Листинг
"%" [ключ][флаг*][шир][.точность][длина_типа]спецификатор
ключ: «(" символ за исключением круглых скобок* ")»
флаг: «+» | «-» | пробел | "#" | «0»
шир: («1» … «9»)(«0» … «9»)* | "*"
точность: («1» … «9»)* | "*"
длина_типа: «a» … «z» | «A» … «Z»
спецификатор: «a» … «z» | «A» … «Z» | "%"
Где символы обозначают следующее:
Листинг
ключ
Ключ из словаря.
Листинг
флаги
Дополнительные свойства преобразования.
Листинг
шир
Минимальная ширина поля.
Листинг
точность
Точность (для чисел с плавающей запятой).
Листинг
длина_типа
Модификатор типа.
Листинг
спецификатор
Тип представления выводимого объекта.
В следующей таблице приведены некоторые наиболее употребительные значения для спецификации форматирования.
Символ Где применяется Что указывает
0 флаг Заполнение нулями слева
— флаг Выравнивание по левому краю
+ флаг Обязательный вывод знака числа
пробел флаг Использовать пробел на месте знака числа
d, i спецификатор Знаковое целое
u спецификатор Беззнаковое целое
o спецификатор Восьмеричное беззнаковое целое
x, X спецификатор Шестнадцатеричное беззнаковое целое (со строчными или прописными латинскими буквами)
e, E спецификатор Число с плавающей запятой в формате с экспонентой
f, F спецификатор Число с плавающей запятой
g, G спецификатор Число с плавающей точкой в более коротком написании (автоматически выбирается e или f)
с спецификатор Одиночный символ (целое число или односимвольная строка)
r спецификатор Любой объект, приведенный к строке функцией repr()
s спецификатор Любой объект, приведенный к строке функцией str()
% спецификатор Знак процента. Для задания одиночного процента необходимо записать %%
Индексы и срезы
Следует напомнить, что строки являются неизменчивыми последовательностями, поэтому к ним можно применять операции взятия элемента по индексу и срезы:
Листинг
>>> s = «транспорт»
>>> print s[0], s[-1]
т т
>>> print s[-4:]
порт
>>> print s[:5]
транс
>>> print s[4:8]
спор
Примечание:
При выделении среза нумеруются не символы строки, а промежутки между ними.
Модуль string
До того как у строк появились методы, для операций над строками применялся модуль string. Приведенный пример демонстрирует, как вместо функции из string использовать метод (кстати, последнее более эффективно):
Листинг
>>> import string
>>> s = «one,two,three»
>>> print string.split(s, ",")
['one', 'two', 'three']
>>> print s.split(",")
['one', 'two', 'three']
В версии Python 3.0 функции, которые доступны через методы, более не будут дублироваться в модуле string.
В Python 2.4 появилась альтернатива использованию операции форматирования: класс Template. Пример:
Листинг
>>> import string
>>> tpl = string.Template("$a + $b = ${c}»)
>>> a = 2
>>> b = 3
>>> c = a + b
>>> print tpl.substitute(vars())
2 + 3 = 5
>>> del c # удаляется имя c
>>> print tpl.safe_substitute(vars())
2 + 3 = $c
>>> print tpl.substitute(vars(), c=a+b)
2 + 3 = 5
>>> print tpl.substitute(vars())
Traceback (most recent call last):
File "/home/rnd/tmp/Python–2.4b2/Lib/string.py», line 172, in substitute
return self.pattern.sub(convert, self.template)
File "/home/rnd/tmp/Python–2.4b2/Lib/string.py», line 162, in convert
val = mapping[named]
KeyError: 'c'
Объект–шаблон имеет два основных метода: substitute() и safe_substitute(). Значения для подстановки в шаблон берутся из словаря (vars() содержит словарь со значениями переменных) или из именованных фактических параметров. Если есть неоднозначность в задании ключа, можно использовать фигурные скобки при написании ключа в шаблоне.
Методы строк
В таблице ниже приведены некоторые наиболее употребительные методы объектов–строк и unicode–объектов.
Метод Описание
center(w) Центрирует строку в поле длины w
count(sub) Число вхождений строки sub в строке
encode([enc[, errors]]) Возвращает строку в кодировке enc. Параметр errors может принимать значения «strict» (по умолчанию), «ignore», «replace» или «xmlcharrefreplace»
endswith(suffix) Оканчивается ли строка на suffix
expandtabs([tabsize]) Заменяет символы табуляции на пробелы. По умолчанию tabsize=8
find(sub [,start [,end]]) Возвращает наименьший индекс, с которого начинается вхождение подстроки sub в строку. Параметры start и end ограничивают поиск окном start:end, но возвращаемый индекс соответствует исходной строке. Если подстрока не найдена, возвращается–1
Читать дальшеИнтервал:
Закладка: