Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Строки Python

Строки Python

В этом уроке вы научитесь создавать, форматировать, изменять и удалять строки в Python. Кроме того, вы познакомитесь с различными строковыми операциями и функциями.

Видео:Строки Python

Что такое строка в Python?

Строка — это последовательность символов.

Персонаж — это просто символ. Например, в английском языке 26 символов.

Компьютеры не имеют дело с символами, они имеют дело с числами (двоичными). Несмотря на то, что вы можете видеть символы на экране, внутри они хранятся и обрабатываются как комбинация нулей и единиц.

Это преобразование символа в число называется кодированием, а обратный процесс — декодированием. ASCII и Unicode — одни из самых популярных кодировок.

В Python строка представляет собой последовательность символов Unicode. Юникод был введен, чтобы включить каждый символ на всех языках и обеспечить единообразие кодирования. Вы можете узнать о Unicode из Python Unicode.

<час>

Как создать строку в Python?

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

# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)

Когда вы запустите программу, вывод будет:

Hello
Hello
Hello
Hello, welcome to
           the world of Python
<час>

Как получить доступ к символам в строке?

Мы можем получить доступ к отдельным символам, используя индексацию, и ряду символов, используя нарезку. Индекс начинается с 0. Попытка доступа к символу вне диапазона индекса вызовет IndexError . Индекс должен быть целым числом. Мы не можем использовать числа с плавающей запятой или другие типы, это приведет к TypeError .

Python допускает отрицательное индексирование своих последовательностей.

Индекс -1 относится к последнему элементу, -2 к предпоследнему элементу и так далее. Мы можем получить доступ к ряду элементов в строке, используя оператор среза : (двоеточие).

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])

Когда мы запускаем указанную выше программу, мы получаем следующий вывод:

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am

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

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers

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

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

<рисунок> <час>

Как изменить или удалить строку?

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

>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

Мы не можем удалять или удалять символы из строки. Но полное удаление строки возможно с помощью del ключевое слово.

>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined
<час>

Операции со строками Python

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

Чтобы узнать больше о типах данных, доступных в Python, посетите:Типы данных Python

Конкатенация двух или более строк

Объединение двух или более строк в одну называется конкатенацией.

+ оператор делает это в Python. Простое написание двух строковых литералов вместе также объединяет их.

* Оператор может использоваться для повторения строки заданное количество раз.

# Python String Operations
str1 = 'Hello'
str2 ='World!'

# using +
print('str1 + str2 = ', str1 + str2)

# using *
print('str1 * 3 =', str1 * 3)

Когда мы запускаем указанную выше программу, мы получаем следующий вывод:

str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

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

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

>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'

>>> # using parentheses
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'
<час>

Итерация строки

Мы можем перебирать строку, используя цикл for. Вот пример подсчета количества 'l в строке.

# Iterating through a string
count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count,'letters found')

Когда мы запускаем указанную выше программу, мы получаем следующий вывод:

3 letters found
<час>

Тест на принадлежность к строке

Мы можем проверить, существует ли подстрока в строке или нет, используя ключевое слово in .

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False
<час>

Встроенные функции для работы с Python

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

Некоторые из наиболее часто используемых:enumerate() и len() . enumerate() функция возвращает перечисляемый объект. Он содержит индекс и значение всех элементов в строке в виде пар. Это может быть полезно для итерации.

Точно так же len() возвращает длину (количество символов) строки.

str = 'cold'

# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)

#character count
print('len(str) = ', len(str))

Когда мы запускаем указанную выше программу, мы получаем следующий вывод:

list(enumerate(str) =  [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]
len(str) =  4
<час>

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

Экран-последовательность

Если мы хотим напечатать текст типа Он сказал:«Что там?» , мы не можем использовать ни одинарные, ни двойные кавычки. Это приведет к SyntaxError поскольку сам текст содержит как одинарные, так и двойные кавычки.

>>> print("He said, "What's there?"")
...
SyntaxError: invalid syntax
>>> print('He said, "What's there?"')
...
SyntaxError: invalid syntax

Один из способов обойти эту проблему — использовать тройные кавычки. В качестве альтернативы мы можем использовать escape-последовательности.

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

# using triple quotes
print('''He said, "What's there?"''')

# escaping single quotes
print('He said, "What\'s there?"')

# escaping double quotes
print("He said, \"What's there?\"")

Когда мы запускаем указанную выше программу, мы получаем следующий вывод:

He said, "What's there?"
He said, "What's there?"
He said, "What's there?"

Вот список всех escape-последовательностей, поддерживаемых Python.

Escape-последовательность Описание
\новая строка Обратная косая черта и новая строка игнорируются
\\ Обратная косая черта
\' Одинарная кавычка
\" Двойная кавычка
\a Колокольчик ASCII
\b Забой ASCII
\f Перевод страницы в формате ASCII
\n Перевод строки в формате ASCII
\r Возврат каретки ASCII
\t Горизонтальная вкладка ASCII
\v Вертикальная вкладка ASCII
\ооо Символ с восьмеричным значением ooo
\xHH Символ с шестнадцатеричным значением HH

Вот несколько примеров

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib

>>> print("This is printed\nin two lines")
This is printed
in two lines

>>> print("This is \x48\x45\x58 representation")
This is HEX representation
<час>

Необработанная строка для игнорирования управляющей последовательности

Иногда мы можем захотеть игнорировать управляющие последовательности внутри строки. Для этого мы можем разместить r или R перед строкой. Это будет означать, что это необработанная строка, и любая escape-последовательность внутри нее будет проигнорирована.

>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example
<час>

Метод format() для форматирования строк

format() Метод, доступный для объекта string, очень универсален и эффективен при форматировании строк. Строки формата содержат фигурные скобки {} в качестве заполнителей или замещающих полей, которые заменяются.

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

# Python string format() method

# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)

# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)

# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

Когда мы запускаем указанную выше программу, мы получаем следующий вывод:

--- Default Order ---
John, Bill and Sean

--- Positional Order ---
Bill, John and Sean

--- Keyword Order ---
Sean, Bill and John

format() метод может иметь необязательные спецификации формата. Они отделяются от имени поля двоеточием. Например, мы можем выровнять по левому краю < , выровняйте по правому краю > или по центру ^ строка в заданном пространстве.

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

>>> # formatting integers
>>> "Binary representation of {0} is {0:b}".format(12)
'Binary representation of 12 is 1100'

>>> # formatting floats
>>> "Exponent representation: {0:e}".format(1566.345)
'Exponent representation: 1.566345e+03'

>>> # round off
>>> "One third is: {0:.3f}".format(1/3)
'One third is: 0.333'

>>> # string alignment
>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')
'|butter    |  bread   |       ham|'
<час>

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

Мы даже можем форматировать строки, как старый sprintf(). стиль, используемый в языке программирования C. Мы используем % для этого.

>>> x = 12.3456789
>>> print('The value of x is %3.2f' %x)
The value of x is 12.35
>>> print('The value of x is %3.4f' %x)
The value of x is 12.3457
<час>

Распространенные строковые методы Python

Существует множество методов, доступных со строковым объектом. format() метод, который мы упоминали выше, является одним из них. Некоторые из часто используемых методов:lower() , upper() , join() , split() , find() , replace() и т.д. Вот полный список всех встроенных методов для работы со строками в Python.

>>> "PrOgRaMiZ".lower()
'programiz'
>>> "PrOgRaMiZ".upper()
'PROGRAMIZ'
>>> "This will split all words into a list".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'

Python

  1. C# Строка
  2. Словарь Питона
  3. Java-строки
  4. Строки перечисления Java
  5. Строки Python:заменить, объединить, разделить, перевернуть, прописные и строчные буквы
  6. Функция Python String strip() с ПРИМЕРОМ
  7. Количество строк Python() с ПРИМЕРАМИ
  8. Python String format() Объясните с ПРИМЕРАМИ
  9. Длина строки Python | Пример метода len()
  10. Метод Python String find() с примерами