betacode

Руководство Python String

  1. Python String
  2. Доступ значений в string
  3. String является неизменным (immuable)
  4. Символы выхода (Escape Characters)
  5. Операторы для string
  6. Методы

1. Python String

Строка (string) является одним из самых распространённых видов (type) в Python, и вам часто приходится работать с ними. На заметку, в Python не существует вида символа (character), символ просто считается одной строкой (string) имеющая длину 1.
Есть 2 способа объявлять одну строку (string) написанную на одной линии (line), это использование апострофа или ковычек.
str1 = "Hello Python"
str2 = 'Hello Python'

str3 = "I'm from Vietnam"

str4 = 'This is a "Cat"! '
Если вы хотите написать строку (string) на нескольких линиях, используйте тройной апостроф.
str = """Hello World
     Hello Python"""

2. Доступ значений в string

Python не поддерживает вид символа (Character type), символ рассматривается как строка с длиной 1. Все символы в строке индексированы с 0. Вы можете получить доступ к подстрокам (substring) с помощью индексов.
stringExample.py
mystr = "This is text"

# --> h
print ("mystr[1] = ", mystr[1])

# --> is is t
print ("mystr[2,9] = ", mystr[2:9])

# --> s is text
print ("mystr[3:] = ", mystr[3:])

3. String является неизменным (immuable)

Строка (string) является особенным видом данных в Python, и она неизменна (immuable). Каждая строка имеет адресс хранения в памяти (memory). Все действия со строками (string) создают другой объект. Например, если вы хотите связать (concatenate) одну строку с другой, эта действие создает другую строку в памяти.
Оператор == и is
Python использует == оператор, чтобы сравнить значения двух объектов. И использует "is" оператор, чтобы сравнить местоположения в памяти (Memory).
compareObject.py
class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    # Override __eq__ method
    def __eq__(self, other):
        return self.name == other.name and self.age == other.age

jack1 = Person('Jack', 23)
jack2 = Person('Jack', 23)

# Call to __eq__ method
print ("jack1 == jack2 ?", jack1 == jack2) # True
print ("jack1 is jack2 ?", jack1 is jack2) # False
Смотрите так же:
  • Comparing and Sorting in Python
Строка (string) является особенным видом данных и часто используется в приложении Python. И поэтому имеет некоторые особенности:
  • Если вы объявляете две переменные вида string со следующим значением, они все укажут на одну реальную строку в памяти (memory).
Операторы со строками создадут новую строку в памяти (memory).
compareString.py
str1 = "Hello Python"
str2 = "Hello Python"
str3 = "Hello " + "Python"

print ("str1 == str2? ", str1 == str2) # --> True 
print ("str1 is str2? ", str1 is str2) # --> True  
print ("str1 == str3? ", str1  == str3) # --> True 
print ("str1 is str3? ", str1 is str3) # --> False

4. Символы выхода (Escape Characters)

Escape символы (Escape characters) являются особенными символами в Python. Эти символы непечатные (non-printable). Все же, если вы хотите, чтобы они были в вашей строке, вам нужно обозначение, чтобы оповестить Python. Например, "\n" это символ новой строки (newline).
escapeCharacterExample.py
# Two "tab" characters between "Hello World" and "Hello Python".
mystr = "Hello World\t\tHello Python" 
print (mystr)

# Two "newline" characters between "Hello World" and "Hello Python".
mystr = "Hello World\n\nHello Python" 
print (mystr)
Output:
Hello World       Hello Python
Hello World

Hello Python
Backslash
notation
Hexadecimal
character
Description
\a
0x07
Bell or alert
\b
0x08
Backspace
\cx
Control-x
\C-x
Control-x
\e
0x1b
Escape
\f
0x0c
Formfeed
\M-\C-x
Meta-Control-x
\n
0x0a
Newline
\nnn
Octal notation, where n is in the range 0.7
\r
0x0d
Carriage return
\s
0x20
Space
\t
0x09
Tab
\v
0x0b
Vertical tab
\x
Character x
\xnn
Hexadecimal notation, where n is in the range 0.9, a.f, or A.F

5. Операторы для string

В Python есть несколько особенных операторов ниже:
Оператор
Описание
Пример
+
Связать (concatenate) 2 string, создать новый string.
"Hello" +"Python" ==> "Hello Python"
*
Создать новый string связав (concatenate) много раз копию одной string.
"Hello"*2 ==> "HelloHello"
[]
Возвращает символ на место данное индексом.
a = "Hello"
a[1] ==> "e"
[ : ]
Возвращает подстроку содержащую символы данные диапазоном (range)
a = "Hello"
a[1:4] ==> "ell"
a[1: ] ==> "ello"
in
Возвращает True если символ существует в данной string.
a = "Hello"
'H' in a ==> True
not in
Возвращает True если символ не существует в данной string.
a = "Hello"
'M' not in a ==> True
r/R
Необработанная строка (Raw String) - Предотвращает реальное значение символов выхода (Escape character). Синтаксис для необработанной строки и для обычной строки одинаковые, за исключением "оператор необработанной строки", буква "r" стоит перед ковычками. "R" может быть строчной буквой (r) или прописной (R) и должна быть расположена пере первой ковычкой.
print (r'\n\t') ==> \n\t
print (R'\n\t') ==> \n\t
%
Формат string
Смотрите ниже.

6. Методы

  • TODO