Конкатенация строк в python

Содержание:

Использование цикла for для поиска длины строки в python

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

# Python code to demonstrate string length  
# using for loop 
  
# Returns length of string 
def findLength(str): 
       
    for i in str: 
        counter
    return counter 
  
  
print(findLength(str))

выход:

Объяснение:

В этом коде мы использовали цикл for для поиска длины строки. Во-первых, мы взяли переменную str, которую мы дали ‘Latracal’ в качестве строки. Во-вторых, мы вызвали функцию findLength, в которой у нас счетчик равен 0, После чего цикл for был записан от 0 до строки, и значение счетчика за раз увеличивается на 1. Наконец, мы напечатали значение счетчика.

ISNUMERIC (): Как проверить числовые численности только в строке в Python

Используйте Метод проверки, содержит ли строка только числовые символы.

Числовые включают число от 0 до 9 и комбинации их, римских цифр, суперскрипет, подписку, фракций и других вариаций.

word = '32'
print(word.isnumeric())
#output: True

print("\u2083".isnumeric()) #unicode for subscript 3
#output: True

print("\u2169".isnumeric()) #unicode for roman numeral X
#output: True

word = 'beach'
print(word.isnumeric())
#output: False

word = 'number32'
print(word.isnumeric())
#output: False

word = '1 2 3' #notice the space between chars
print(word.isnumeric())
#output: False

word = '@32$' #notice the special chars '@' and '$'
print(word.isnumeric())
#output: False

более строгим, чем , который в свою очередь строчен, чем Отказ

Стрип (): как удалить пробелы и символы с начала и конца строки в Python

Используйте Способ удаления пробелов с самого начала и конца строки.

regular_text = "  This is a regular text.   "

no_space_text = regular_text.strip()

print(regular_text)
#'  This is a regular text.   '

print(no_space_text)
#'This is a regular text.'

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

Метод также принимает определенные символы для удаления в качестве параметров.

regular_text = "AbC#This is a regular text.$@G#"

clean_text = regular_text.strip("AbC#$@G")

print(regular_text)
#AbC#This is a regular text.$@G#

print(clean_text)
#This is a regular text.

Таблица «Функции и методы строк»

Функция или метод Назначение
S = ‘str’; S = «str»; S = »’str»’; S = «»»str»»» Литералы строк
S = «s\np\ta\nbbb» Экранированные последовательности
S = r»C:\temp\new» Неформатированные строки (подавляют экранирование)
S = b»byte» Строка байтов
S1 + S2 Конкатенация (сложение строк)
S1 * 3 Повторение строки
S Обращение по индексу
S Извлечение среза
len(S) Длина строки
S.find(str, ,) Поиск подстроки в строке. Возвращает номер первого вхождения или -1
S.rfind(str, ,) Поиск подстроки в строке. Возвращает номер последнего вхождения или -1
S.index(str, ,) Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError
S.rindex(str, ,) Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError
S.replace(шаблон, замена) Замена шаблона на замену. maxcount ограничивает количество замен
S.split(символ) Разбиение строки по разделителю
S.isdigit() Состоит ли строка из цифр
S.isalpha() Состоит ли строка из букв
S.isalnum() Состоит ли строка из цифр или букв
S.islower() Состоит ли строка из символов в нижнем регистре
S.isupper() Состоит ли строка из символов в верхнем регистре
S.isspace() Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (‘\f’), «новая строка» (‘\n’), «перевод каретки» (‘\r’), «горизонтальная табуляция» (‘\t’) и «вертикальная табуляция» (‘\v’))
S.istitle() Начинаются ли слова в строке с заглавной буквы
S.upper() Преобразование строки к верхнему регистру
S.lower() Преобразование строки к нижнему регистру
S.startswith(str) Начинается ли строка S с шаблона str
S.endswith(str) Заканчивается ли строка S шаблоном str
S.join(список) Сборка строки из списка с разделителем S
ord(символ) Символ в его код ASCII
chr(число) Код ASCII в символ
S.capitalize() Переводит первый символ строки в верхний регистр, а все остальные в нижний
S.center(width, ) Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию)
S.count(str, ,) Возвращает количество непересекающихся вхождений подстроки в диапазоне (0 и длина строки по умолчанию)
S.expandtabs() Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам
S.lstrip() Удаление пробельных символов в начале строки
S.rstrip() Удаление пробельных символов в конце строки
S.strip() Удаление пробельных символов в начале и в конце строки
S.partition(шаблон) Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки
S.rpartition(sep) Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку
S.swapcase() Переводит символы нижнего регистра в верхний, а верхнего – в нижний
S.title() Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
S.zfill(width) Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями
S.ljust(width, fillchar=» «) Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar
S.rjust(width, fillchar=» «) Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar
S.format(*args, **kwargs) Форматирование строки

Оглавление

  1. Основы строки Python
  2. Как разделить строку в Python
  3. Как удалить все белые пробелы в строке в Python
  4. Как обрабатывать многослойные строки в Python
  5. lstrip (): как удалить пробелы и символы с начала строки в Python
  6. RSTRIP (): Как удалить пробелы и символы с конца строки в Python
  7. Стрип (): как удалить пробелы и символы с начала и конца строки в Python
  8. Как сделать целый ряд строчной буквы в Python
  9. Как сделать целый строковый прописными буквами в Python
  10. Как использовать титульный случай в Python
  11. Как использовать чехол Swap в Python
  12. Как проверить, пустая строка в Python
  13. Rjust (): как правильно озвучить строку в Python
  14. Ljust (): как оставить – обосновать строку в Python
  15. Isalnum (): Как проверить буквенно-цифровые символы только в строке в Python
  16. ISPRINTABLE (): Как проверить для печатных игр в строке в Python
  17. ISSPACE (): Как проверить белое пространство только в строке в Python
  18. StartSwith (): Как проверить, начинается ли строка с определенного значения в Python
  19. Capitalize (): Как установить первый персонаж только в верхний регистр в строке в Python
  20. Isupper (): Как проверить на верхний регистр только в строке в Python
  21. Присоединяйтесь к (): Как присоединиться к элементам элементами для одной строки в Python
  22. Сплитлины (): Как разделить строку на перерывах линии в Python
  23. islower (): Как проверить на нижний регистр только в строке в Python
  24. ISNUMERIC (): Как проверить числовые численности только в строке в Python
  25. ISDIGIT (): Как проверить цифры только в строке в Python
  26. Isdecimal (): Как проверить десятичные дроби только в строке в Python
  27. ISALPHA (): Как проверить буквы только в строке в Python
  28. Istitle (): Как проверить, начинается ли каждое слово с верхнего регистра в строке в Python
  29. ExpandTabs (): Как установить количество пробелов для вкладки в строке в Python
  30. Центр (): Как центрировать строку в Python
  31. zfill (): Как добавить нули в строку в Python
  32. Найти (): Как проверить, имеет ли строка определенную подстроку в Python
  33. Как удалить префикс или суффикс в строке в Python
  34. lstrip () vs readleprefix () и rstrip () vs removeuffix ()
  35. Как нарезка работает в Python
  36. Как изменить строку в Python
  37. Заключение

Погружене в f-строки

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

f-строки также поддерживают расширенное форматирование чисел:

С помощью f-строк можно форматировать дату без вызова метода strftime():

Они поддерживают базовые арифметические операции. Да, прямо в строках:

Позволяют обращаться к значениям списков по индексу:

А также к элементам словаря по ключу:

Причем вы можете использовать как строковые, так и числовые ключи. Точно также как в обычном Python коде:

Вы можете вызывать в f-строках методы объектов:

А также вызывать функции:

f-строки очень гибкий и мощный инструмент для создания самых разнообразных шаблонов.

Со всеми возможностя f-строк вы можете ознакомится в PEP498.

Форматирование строк

Форматирование строк (также известно как замещение) – это замещение значений в базовой строке. Большую часть времени вы будете вставлять строки внутри строк, однако, вам также понадобиться вставлять целые числа и числа с запятыми в строки весьма часто. Существует два способа достичь этой цели. Начнем с старого способа, после чего перейдем к новому:

Python

# -*- coding: utf-8 -*-

my_string = «Я люблю %s» % «Python»
print(my_string) # Я люблю Python

var = «яблоки»
newString = «Я ем %s» % var
print(newString) # Я ем яблоки

another_string = «Я люблю %s и %s» % («Python», var)
print(another_string) # Я люблю Python и яблоки

1
2
3
4
5
6
7
8
9
10
11

# -*- coding: utf-8 -*-
 

my_string=»Я люблю %s»%»Python»

print(my_string)# Я люблю Python

var=»яблоки»

newString=»Я ем %s»%var

print(newString)# Я ем яблоки

another_string=»Я люблю %s и %s»%(«Python»,var)

print(another_string)# Я люблю Python и яблоки

Как вы могли догадаться, % — это очень важная часть вышеописанного кода. Этот символ указывает Python, что вы скоро вставите текст на его место. Если вы будете следовать за строкой со знаком процента и другой строкой или переменной, тогда Python попытается вставить ее в строку. Вы можете вставить несколько строк, добавив несколько знаков процента в свою строку. Это видно в последнем примере

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

Python

another_string = «Я люблю %s и %s» % «Python»

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: not enough arguments for format string

1
2
3
4
5

another_string=»Я люблю %s и %s»%»Python»

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeErrornotenough arguments forformatstring

О-па. Мы не передали необходимое количество аргументов для форматирования строки. Если вы внимательно взгляните на пример, вы увидите, что у нас есть два экземпляра %, но для того, чтобы вставить строки, вам нужно передать столько же %, сколько у нас строк. Теперь вы готовы к тому, чтобы узнать больше о вставке целых чисел, и чисел с запятыми. Давайте взглянем.

Python

my_string = «%i + %i = %i» % (1,2,3)
print(my_string) # ‘1 + 2 = 3’

float_string = «%f» % (1.23)
print(float_string) # ‘1.230000’

float_string2 = «%.2f» % (1.23)
print(float_string2) # ‘1.23’

float_string3 = «%.2f» % (1.237)
print(float_string3) # ‘1.24’

1
2
3
4
5
6
7
8
9
10
11

my_string=»%i + %i = %i»%(1,2,3)

print(my_string)# ‘1 + 2 = 3’

float_string=»%f»%(1.23)

print(float_string)# ‘1.230000’

float_string2=»%.2f»%(1.23)

print(float_string2)# ‘1.23’

float_string3=»%.2f»%(1.237)

print(float_string3)# ‘1.24’

Первый пример достаточно простой. Мы создали строку, которая принимает три аргумента, и мы передаем их. В случае, если вы еще не поняли, Python не делает никаких дополнений в первом примере. Во втором примере, мы передаем число с запятой

Обратите внимание на то, что результат включает множество дополнительных нулей (1.230000). Нам это не нужно, так что мы указываем Python ограничить выдачу до двух десятичных значений в третьем примере (“%.2f”)

Последний пример показывает, что Python округлит числа для вас, если вы передадите ему дробь, что лучше, чем два десятичных значения. Давайте взглянем на то, что произойдет, если мы передадим неправильные данные:

Python

int_float_err = «%i + %f» % («1», «2.00»)
Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: %d format: a number is required, not str

1
2
3
4

int_float_err=»%i + %f»%(«1″,»2.00»)

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeError%dformatanumber isrequired,notstr

В данном примере мы передали две строки вместо целого числа и дроби. Это привело к ошибке TypeError, что говорит нам о том, что Python ждал от нас чисел. Это указывает на отсутствие передачи целого числа, так что мы исправим это, по крайней мере, попытаемся:

Python

int_float_err = «%i + %f» % (1, «2.00»)

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: float argument required, not str

1
2
3
4
5

int_float_err=»%i + %f»%(1,»2.00″)

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeErrorfloatargument required,notstr

Мы получили ту же ошибку, но под другим предлогом, в котором написано, что мы должны передать дробь. Как мы видим, Python предоставляет нам полезную информацию о том, что же пошло не так и как это исправить. Если вы исправите вложения надлежащим образом, тогда вы сможете запустить этот пример. Давайте перейдем к новому методу форматирования строк.

Как разделить строку в Python

Разделение струны на более мелкие части – это очень распространенная задача. Для этого мы используем Метод в Python.

Давайте посмотрим некоторые примеры о том, как это сделать.

Пример 1: используйте пробелы в качестве разделителей

В этом примере мы разделяем фразу на пробеле, создавая список с именем my_words с пятью элементами, соответствующими каждому слову в фразе.

my_phrase = "let's go to the beach"
my_words = my_phrase.split(" ")

for word in my_words:
    print(word)
#output:
#let's
#go
#to
#the
#beach

print(my_words)
#output:
#

Обратите внимание, что по умолчанию Метод использует любое последовательное количество пробелов в качестве разделителей. Мы можем изменить код выше:

my_phrase = "let's go to the beach"
my_words = my_phrase.split()

for word in my_words:
    print(word)

#output:
#let's
#go
#to
#the
#beach

Выход то же самое, так как у нас есть только один пробел между каждым словом.

Пример 2: пройти разные аргументы в качестве разделителей

При работе с данными очень часто читают некоторые файлы CSV для извлечения информации от них.

Таким образом, вам может потребоваться сохранить некоторые конкретные данные из определенного столбца.

Файлы CSV обычно имеют поля, разделенные с запятой «;» или запятая »,”.

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

my_csv = "mary;32;australia;mary@email.com"
my_data = my_csv.split(";")

for data in my_data:
    print(data)

#output:
#mary
#32
#australia
#mary@email.com

print(my_data)
#output:
# mary@email.com

Translate и Replace

Первый случай — заменить или удалить некоторые символы или подстроки из текста. В Python есть встроенные функции в модуле string, которые выполняют эти задачи.

Метод использует таблицу (которая строится при помощи функции ) для удаления или изменения определенных символов:

test_string = 'The quick brown fox jumps over the lazy dog' 
translation_map = str.maketrans('eo', '  ') 
test_string.translate( translation_map ) 

Out: 'Th  quick br wn f x jumps  v r th  lazy d g'

Метод работает так, как следует из его названия — изменяя подстроку на нужную:

test_string = 'The quick brown fox jumps over the lazy dog'
test_string.replace( 'fox', 'squirell')

Out: 'The quick brown squirell jumps over the lazy dog'

Как удалить префикс или суффикс в строке в Python

С Python 3.9 тип строки будет иметь два новых метода.

Вы можете специально удалить префикс из строки с помощью Метод:

>>> 'Rio de Janeiro'.removeprefix("Rio")
' de Janeiro'

Или удалить суффикс, используя Метод:

>>> 'Rio de Janeiro'.removesuffix("eiro")
'Rio de Jan'

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

Я рекомендую прочитать PEP 616 В официальной документации, если вам интересно, как эти функции добавляются на язык.

Это довольно простое изменение и очень дружелюбное для начинающих, чтобы привыкнуть к чтению официальной документации.

Strip и zfill

Еще одна важная функция — это возможность удалять из строки лишние начальные и конечные символы. Для этого у нас есть семейство функций :

  • Удалить пробелы по умолчанию.
  • Удалить пробелы слева или справа.
  • Удалить произвольные символы.
test_string_with_spaces = '     The quick brown fox jumps over the lazy dog    '
test_string_with_spaces.strip()

Out: 'The quick brown fox jumps over the lazy dog'

test_string_with_spaces.lstrip()

Out: 'The quick brown fox jumps over the lazy dog    '

test_string_with_spaces.rstrip()

Out: '     The quick brown fox jumps over the lazy dog'

test_string.rstrip('g')

Out: 'The quick brown fox jumps over the lazy do'

Кроме того, есть полезная функция для дополнения чисел ведущими нулями:

'29'.zfill(10)

Out: '0000000029'

'xA1'.zfill(4)

Out: '0xA1'

Кодировки

Другим любопытным моментом является то, что символы которые мы видим внутри строки на самом деле являются порядковыми номерами в таблице которая ставит в соответсвие этому номеру определенный сивол. Эти таблицы мы называем кодировками. Существует очень много кодировок, но возможно вы слышали названия некоторых из них: ASCII, Latin-1, КОИ-8, utf-8. По умолчанию, в Python используется стандарт «Юникод». И в том что каждому символу соответствует определенный код очень легко убедиться с помощью встроенных функций и :

Но к превеликому сожалению, это не только любопытно, но еще и очень печально. Представим себе, что наша программа должна обмениваться текстом с другой программой. Так как строки хранятся в виде байтов, то в нашу программу должна прилететь строка, которая может выглядеть, например, вот так . Что же с ней делать?:

Чтож, похоже что программа-отправитель использует какуюто другую кодировку. Допустим, мы смогли выяснить, что до того как эта строка стала набором байтов ее напечатали на русском языке. Русский язык поддерживают многие кодировки. Придется пробовать декодировать в каждую из них. Поехали…

Какя-то абракадабра. Пробуем следующую:

Как видите, байтовые строки не несут информации о своей кодировке, хотя в зависимости от происхождения, эта кодировка может быть какой угодно. Рассмотренная проблема встречается очень редко, но все же встречается. Многие научные программы до сих пор используют кодировку ascii по умолчанию, а некоторые операционные системы могут использовать какую-то другую кодировку. Вообще, кодировкой по умолчанию является кодировка операционной системы (можно узнать с помощью функции модуля sys). Так что, если вы создаете интернациональное приложение или сайт, или не знаете с какой операционкой придется работать вашей программе, то наверняка тоже встретитесь с этой проблемой. Повторюсь, проблема редкая, весьма специфичная и Python предоставляет относительно неплохие средства для ее преодоления.

Чтож, вот мы и познакомились со строками. Определение, которое мы дали в начале, могло показаться очень сложным и непонятным (я даже не совсем уверен в его правильности), но тем не менее, на деле, все оказалось довольно простым.

Узнайте, какие встроенные методы Python используются в строковых последовательностях

Строка — это последовательность символов. Встроенный строковый класс в Python представлен строками, использующими универсальный набор символов Unicode. Строки реализуют часто встречающуюся последовательность операций в Python наряду с некоторыми дополнительными методами, которые больше нигде не встречаются. На картинке ниже показаны все эти методы:

Встроенные строковые функции в Python

Давайте узнаем, какие используются чаще всего

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

Код для этой статьи можно взять из соответствующего репозитория Github Repository.

1. center( )

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

Синтаксис

, где:

  • length — это длина строки
  • fillchar—это символ, задающий выравнивание

Пример

2. count( )

Метод возвращает счёт или число появлений в строке конкретного значения.

Синтаксис

, где:

  • value — это подстрока, которая должна быть найдена в строке
  • start — это начальное значение индекса в строке, где начинается поиск заданного значения
  • end — это конечное значение индекса в строке, где завершается поиск заданного значения

Пример

3. find( )

Метод возвращает наименьшее значение индекса конкретной подстроки в строке. Если подстрока не найдена, возвращается -1.

Синтаксис

, где:

  • value или подстрока, которая должна быть найдена в строке
  • start — это начальное значение индекса в строке, где начинается поиск заданного значения
  • end — это конечное значение индекса в строке, где завершается поиск заданного значения

Пример

Метод возвращает копию строки, преобразуя все заглавные буквы в строчные, и наоборот. 

Синтаксис

Пример

5. startswith( ) and endswith( )

Метод возвращает True, если строка начинается с заданного значения. В противном случае возвращает False.

С другой стороны, функция возвращает True, если строка заканчивается заданным значением. В противном случае возвращает False.

Синтаксис

  • value — это искомая строка в строке
  • start — это начальное значение индекса в строке, где начинается поиск заданного значения
  • end — это конечное значение индекса в строке, где завершается поиск заданного значения

Пример

6. split( )

Метод возвращает список слов в строке, где разделителем по умолчанию является пробел.

Синтаксис

  • sep: разделитель, используемый для разделения строки. Если не указано иное, разделителем по умолчанию является пробел
  • maxsplit: обозначает количество разделений. Значение по умолчанию -1, что значит «все случаи»

Пример

7. Строка заглавными буквами

Синтаксис

Синтаксис

Синтаксис

Пример

8. ljust( ) и rjust( )

С помощью заданного символа (по умолчанию пробел) метод возвращает вариант выбранной строки с левым выравниванием. Метод rjust() выравнивает строку вправо.

Синтаксис

  • length: длина строки, которая должна быть возвращена
  • character: символ для заполнения незанятого пространства, по умолчанию являющийся пробелом

Пример

9. strip( )

Метод возвращает копию строки без первых и последних символов. Эти отсутствующие символы — по умолчанию пробелы.

Синтаксис

character: набор символов для удаления

  • : удаляет символы с начала строки.
  • : удаляет символы с конца строки.

10. zfill( )

Метод zfill() добавляет нули в начале строки. Длина возвращаемой строки зависит от заданной ширины.

Синтаксис

width: указывает длину возвращаемой строки. Нули не добавляются, если параметр ширины меньше длины первоначальной строки.

Пример

Заключение

В статье мы рассмотрели лишь некоторые встроенные строковые методы в Python. Есть и другие, не менее важные методы, с которыми при желании можно ознакомиться в соответствующей документации Python.

  • PEG парсеры и Python
  • Популярные лайфхаки для Python
  • Овладей Python, создавая реальные приложения. Часть 1

Перевод статьи Parul PandeyUseful String Method

Как создать строку

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

Python

my_string = «Добро пожаловать в Python!»
another_string = ‘Я новый текст тут…’

a_long_string = »’А это у нас
новая строка
в троичных скобках»’

1
2
3
4
5
6

my_string=»Добро пожаловать в Python!»

another_string=’Я новый текст тут…’

a_long_string=»’А это у нас

новая строка
в троичных скобках»’

Строка с тремя скобками может быть создана с использованием трех одинарных скобок или трех двойных скобок. Так или иначе, с их помощью программист может писать строки в нескольких линиях. Если вы впишете это, вы увидите, что выдача сохраняет разрыв строк. Если вам нужно использовать одинарные скобки в вашей строке, то впишите двойные скобки. Давайте посмотрим на пример:

Python

my_string = «I’m a Python programmer!»
otherString = ‘Слово «Python» обычно подразумевает змею’
tripleString = «»»В такой «строке» мы можем ‘использовать’ все.»»»

1
2
3

my_string=»I’m a Python programmer!»

otherString=’Слово «Python» обычно подразумевает змею’

tripleString=»»»В такой «строке» мы можем ‘использовать’ все.»»»

Данный код демонстрирует то, как вы можете вписать одинарные или двойные скобки в строку. Существует еще один способ создания строки, при помощи метода str. Как это работает:

Python

my_number = 123
my_string = str(my_number)

1
2

my_number=123

my_string=str(my_number)

Если вы впишете данный код в ваш интерпретатор, вы увидите, что вы изменили значение интегратора на строку и присвоили ее переменной my_string. Это называется кастинг, или конвертирование. Вы можете конвертировать некоторые типы данных в другие, например числа в строки. Но вы также заметите, что вы не всегда можете делать обратное, например, конвертировать строку вроде ‘ABC’ в целое число. Если вы сделаете это, то получите ошибку вроде той, что указана в этом примере:

Python

int(‘ABC’)

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
ValueError: invalid literal for int() with base 10: ‘ABC’

1
2
3
4
5

int(‘ABC’)

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

ValueErrorinvalid literal forint()withbase10’ABC’

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

Python

x = int(«123»)

1 x=int(«123»)

То все должно работать

Обратите внимание на то, что строка – это один из неизменных типов Python. Это значит, что вы не можете менять содержимое строки после ее создания

Давайте попробуем сделать это и посмотрим, что получится:

Python

my_string = «abc»
my_string = «d»

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: ‘str’ object does not support item assignment

1
2
3
4
5
6

my_string=»abc»

my_string=»d»

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeError’str’objectdoes notsupport item assignment

Здесь мы пытаемся изменить первую букву с «а» на «d«, в итоге это привело к ошибке TypeError, которая не дает нам сделать это. Теперь вы можете подумать, что присвоение новой строке то же значение и есть изменение строки. Давайте взглянем, правда ли это:

Python

my_string = «abc»
a = id(my_string)
print(a) # 19397208

my_string = «def»
b = id(my_string)
print(b) # 25558288

my_string = my_string + «ghi»
c = id(my_string)
print(c) # 31345312

1
2
3
4
5
6
7
8
9
10
11

my_string=»abc»

a=id(my_string)

print(a)# 19397208

my_string=»def»

b=id(my_string)

print(b)# 25558288

my_string=my_string+»ghi»

c=id(my_string)

print(c)# 31345312

Проверив id объекта, мы можем определить, что когда мы присваиваем новое значение переменной, то это меняет тождество

Обратите внимание, что в версии Python, начиная с 2.0, строки могут содержать только символы ASCII. Если вам нужен Unicode, тогда вы должны вписывать u перед вашей строкой

Пример:

Python

# -*- coding: utf-8 -*-
my_unicode_string = u»Это юникод!»

1
2

# -*- coding: utf-8 -*-

my_unicode_string=u»Это юникод!»

В Python, начиная с версии 3, все строки являются юникодом.

Методы строк

Строка является объектом в Python. Фактически, все, что есть в Python – является объектом. Если вы хотите узнать больше об Объектно-ориентированном программирование, мы рассмотрим это в другой статье «Классы в Python«. В данный момент достаточно знать, что строки содержат собственные встроенные методы. Например, допустим, у вас есть следующая строка:

Python

my_string = «This is a string!»

1 my_string=»This is a string!»

Теперь вам нужно сделать так, чтобы вся эта строка была в верхнем регистре. Чтобы сделать это, все, что вам нужно, это вызвать метод upper(), вот так:

Python

my_string.upper()

1 my_string.upper()

Если вы открыли ваш интерпретатор, вы также можете сделать то же самое:

Python

«This is a string!».upper()

1 «This is a string!».upper()

Существует великое множество других методов строк. Например, если вам нужно, что бы все было в нижнем регистре, вам нужно использовать метод lower(). Если вы хотите удалить все начальные и конечные пробелы, вам понадобится метод strip(). Для получения списка всех методов строк, впишите следующую команду в ваш интерпретатор:

Python

dir(my_string)

1 dir(my_string)

Вы увидите что-то на подобие этого:

Python

1
2
3
4
5
6
7
8
9
10

‘__add__’,‘__class__’,‘__contains__’,‘__delattr__’,‘__doc__’,‘__eq__’,‘__format__’,

‘__ge__’,‘__getattribute__’,‘__getitem__’,‘__getnewargs__’,‘__getslice__’,‘__gt__’,

‘__hash__’,‘__init__’,‘__le__’,‘__len__’,‘__lt__’,‘__mod__’,‘__mul__’,‘__ne__’,

‘__new__’,‘__reduce__’,‘__reduce_ex__’,‘__repr__’,‘__rmod__’,‘__rmul__’,‘__-

setattr__’,‘__sizeof__’,‘__str__’,‘__subclasshook__’,‘_formatter_field_name_split’,

‘_formatter_parser’,‘capitalize’,‘center’,‘count’,‘decode’,‘encode’,‘endswith’,‘expandtabs’,

‘find’,‘format’,‘index’,‘isalnum’,‘isalpha’,‘isdigit’,‘islower’,‘isspace’,

‘istitle’,‘isupper’,‘join’,‘ljust’,‘lower’,‘lstrip’,‘partition’,‘replace’,‘rfind’,‘rindex’,

‘rjust’,‘rpartition’,‘rsplit’,‘rstrip’,‘split’,‘splitlines’,‘startswith’,‘strip’,‘swapcase’,

‘title’,‘translate’,‘upper’,‘zfill’

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

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

Например, если вы хотите узнать, зачем вам capitalize, впишите следующее, чтобы узнать:

Python

help(my_string.capitalize)

1 help(my_string.capitalize)

Вы получите следующую информацию:

Python

Help on built-in function capitalize:

capitalize(…)
S.capitalize() -> string

Выдача копии строки S только с заглавной буквой.

1
2
3
4
5
6
Help on built-in function capitalize:
 
capitalize(…)
    S.capitalize() -> string
 
Выдача копии строки S только с заглавной буквой.

Вы только что узнали кое-что о разделе, под названием интроспекция. Python может исследовать все свои объекты, что делает его очень легким в использовании. В основном, интроспекция позволяет вам спрашивать Python о нём. Вам моет быть интересно, как сказать о том, какой тип переменной был использован (другими словами int или string). Вы можете спросить об этом у Python!

Python

type(my_string) # <type ‘str’>

1 type(my_string)# <type ‘str’>

Как вы видите, тип переменной my_string является str!

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

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