Изучаем Python. №2. Строки


Сегодня рассмотрим строки. Это один из основных базовых элементов языка Python.

Пример: считаем количество символов в строке:

>tmp = "string"
 >print len(tmp) #функция считающая количество символов
 >6

Посути интерпритатор показывает сколько байт занимает строка, а поскольку мы можем использовать кодировку UTF-8, то на каждый символ выделяется по 2 байта:

>tmp = "строка"
 >print len(tmp) #функция считающая количество символов
 >12

Помимо этого строку можно рассматривать как массив символов и соответственно обращаться к каждому символу по отдельности. Счет символов начинается с 0.

>str = 'string'
 >print str[0]  # Вывод первого (нулевого) символа
 >s
 >print str[2]  # Вывод 3-го символа (т.к счет идет от 0).
 >r
 >print str[-1]  # Данным способом мы выводим последний символ строки.
 >g
 >print str[0:3]  # Выводим диапазон символов от 0 до 3. Все 4 символа.Можно записать так [:3]
 >stri
 >print str[0:5:2] # Выводим символы от 0 до 5 с шагом в 2 символа (т.е.перескакиваем через 1 символ).
 >srn
 >print str[:] # Выводим всю строку. Поскольку нули можно не указывать.Эквивалентно [0:0]
 >string
 >print str[0:3000] #если указать слишком большое число, то интерпритатор выведет всю строку.
 >string

С строками можно проделывать и математические операции:

>s1 = 'привет '
 >s2 = 'мир '
 >print s1+s2 # Конкатенация строк (добавление)
 >привет мир
 >print s1*3 # Умножение строки
 >привет привет привет
 >print s1+"загадочный "+s2 #Добавление слова в первую строку и конкатенация со второй
 >привет загадочный мир

Поиск по строке в Python с помощью функции find(). В примере мы произведем поиск слова в строке. Помним, что счет идет с 0. В результате мы получим номер символа, после которого будет наше слово. Если ввести слово, которого нет в строке, например «papa», то результатом будет -1.

>s = "mama mila ramu"
 >print s.find("mila")
 >5

Изменение символов в строке с помощью функции replace(), где мы меняем mama на papa:

>print s.replace("mama","papa")
 >papa mila ramu

Разбивание строки по разделителю в python с помощью функции split():

>line = "aaa,bbb,ccc"
 >print line.split(",") # Указываем искомый разделитель в скобочках
 >['aaa', 'bbb', 'ccc']

Преобразовать все символы в строке к верхнему регистру с помощью функции upper():

>string = "aaabbb"
 >print string.upper()
 >AAABBB
Проверить состоит ли строка только из букв с помощью функции isalpha(). Если в строке только буквы то результат будет - True, если же в строке есть пробелы или числа - False:
>p = "tolkobukvi"
 >print p.isalpha()
 >True
 >g = "probel i chislo 5"
 >print g.isalpha()
 >False

Изменяемые и неизменяемые объекты (мутирующие и немутирующие)
Неизменяемые: целые числа(int),числа с плавающей точкой(float), комплексные, строки, кортежи.
Изменяемые: списки, множества, словари.

Пример, как изменить список:

>>> s = "abcdef"
 >>> s[2]='z' # так делать нельзя, а то будет ошибка
 Traceback (most recent call last):
 File "", line 1, in 
 TypeError: 'str' object does not support item assignment
 >>> s = s[:2]+'z'+s[3:]
 >>> s
 'abzdef'
 >>>

На этом тему строк пока завершим. Если у вас есть вопросы или замечания, то буду рад увидеть их в комментариях.

http://k-a-r-t-i-n-a.ru/category/isaak-levitan/

12 идей о “Изучаем Python. №2. Строки

  1. Пингбэк: Изучаем Python. №3. Списки | Slusar.Su

  2. Дмитрий

    И есть ошибка. В строке.
    «Проверить состоит ли строка только из букв с помощью функции isalpha(). Если в троке только буквы то результат будет — True, если же в строке есть пробелы или числа — False: »
    =====
    Написано в «троке»

  3. Виктория

    Очень полезные уроки, спасибо!
    Только у меня функция print str[0:3] возвращает «str», а не «stri» 🙂

  4. Абылай

    Здраствуите в вашем последнем примере ошибка s[2] не далжно быть в скобке . Проверте у меня ошибка выводить . СПАСИБО! ВАШИ УРОКИ ТАК ЛЕГКО И ПРОСТ ДАЖЕ ТУПОИ СМОЖЕТ ПОНЯТЬ .

  5. Сергей

    Вы написали что find() это функция, но если быть точнее, то это метод, а как правила они немного по разному используются.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

×