Сегодня начну серию постов о строках в языке программирования. Ниже буду дополнять данный пост ссылками на новые посты по частным вопросами и случаями. Здесь же вводная часть о строках.
Что такое строки в python?
Как и во многих языках программирования, строка в python является массивом символов. Со своими "особенностями", которые попробую рассмотреть. По сути можно было бы сказать, что строка "ABCD" - это то же самое, что и массив ["A", "B", "C", "D"]. Но не тут то было. Как и в массиве, из строки можно получить символ по индексу.
# Определяем массив arr = ["a", "b", "c", "d"] # Получаем элемент массива по индексу arr[2] # результат == c # Определяем строку pstring = "abcd" # Получаем символ по индексу pstring[2] # результат == c
Но если в массиве можно изменить элемент, обратившись к нему по индексу, то со строкой такой фокус не пройдет.
arr[2] = "r" # arr == ["a", "b", "r", "d"] pstring[2] = "r" # Получим ошибку """ Traceback (most recent call last) .............................. TypeError......................... """
Есть два варианта изменения строк: Замена с помощью функции replace и, если уж очень хочется работать со строкой как с массивом, переопределение с помощью конкатенации:
pstring = pstring.replace("c", "r") # или pstring = pstring[:2] + "r" + pstring[3:]
Кодировка символов в python
Кодировке следует уделить отдельную тему для разговора. Это достаточно не простой вопрос. Но здесь я хотел бы затронуть вот какой момент. Сейчас ( по слухам начиная с версии 2.3 ) по умолчанию python работает с кодировкой ASCII. Это прекрасно, если вы пишете всё на английском для американцев и не выходите за пределы их кодировки. Но мы же с вами - люди мира. Если у нас китайцы захотят заказать программу, мы же не откажем им?! Для этого в самом начале программы (файла) следует указать кодировку. Для русского языка, в частности и в основном, это будет:
# -*- coding: cp1251 -*-
Я же предпочитаю и всем рекомендую использовать юникод (unicode):
# -*- coding: utf8 -*-
Но это на случай, если вы не пользуетесь функциями интернационализации (см. gettext).
Конкатенация (объединение строк) в python
Этому явлению я не буду уделять слишком много внимания, ибо можно обойтись парой строк. Конкатенация строк в python производится с помощью обычного оператора +
pstring1 = "ab" pstring2 = "cd" pstring = pstring1 + pstring2 pstring # "abcd" pstring += "ef" pstring # "abcdef"
Здесь, мне кажется, всё должно быть предельно ясно.
Резюмируем:
В этом коротеньком посте мы узнали, что строка - это массив символов, который не всегда ведет себя как массив. Для того, чтобы показать насколько легко работать со строками в python, я буду дополнять данный пост ссылками на частные вопросы по работе со строками python.