Перейти до змісту

Рядки (Strings)

Рядок у Python це:

  • послідовність символів у лапках
  • незмінний упорядкований тип даних

У Python рядки можна створювати за допомогою одинарних, подвійних та потрійних лапок (одинарних або подвійних):

'Hello'
"Hello"

tunnel = """
interface Tunnel0
 ip address 10.10.10.1 255.255.255.0
 ip mtu 1416
"""

Запис рядків у потрійних лапках використовується для зручності і в результаті рядок виходить таким:

In [12]: tunnel
Out[12]: '\ninterface Tunnel0\n ip address 10.10.10.1 255.255.255.0\n ip mtu 1416\n'

In [13]: print(tunnel)

interface Tunnel0
 ip address 10.10.10.1 255.255.255.0
 ip mtu 1416

Операції з рядками

Рядки можна підсумовувати. Тоді вони об'єднуються в один рядок:

In [14]: intf = 'interface'

In [15]: tun = 'Tunnel0'

In [16]: intf + tun
Out[16]: 'interfaceTunnel0'

In [17]: intf + ' ' + tun
Out[17]: 'interface Tunnel0'

Рядок можна множити на число. У цьому випадку рядок повторюється вказану кількість разів:

In [18]: intf * 5
Out[18]: 'interfaceinterfaceinterfaceinterfaceinterface'

In [19]: '#' * 40
Out[19]: '########################################'

Індекси

index

Те, що рядки є впорядкованим типом даних, дозволяє звертатися до символів у рядку за номером (індексом), починаючи з нуля:

In [20]: string1 = 'interface FastEthernet1/0'

In [21]: string1[0]
Out[21]: 'i'

Нумерація всіх символів у рядку йде з нуля. Якщо потрібно звернутися до якогось за рахунком символу, починаючи з кінця, можна вказувати негативні значення (на цей раз з одиниці).

In [22]: string1[1]
Out[22]: 'n'

In [23]: string1[-1]
Out[23]: '0'

Зрізи

Крім звернення до конкретного символу можна робити зрізи рядків, вказавши діапазон номерів (зріз виконується до другого значення, не включаючи його):

In [24]: string1[0:9]
Out[24]: 'interface'

In [25]: string1[10:22]
Out[25]: 'FastEthernet'

Якщо не вказується друге число, зріз буде до кінця рядка:

In [26]:  string1[10:]
Out[26]: 'FastEthernet1/0'

Зрізати три останні символи рядка:

In [27]: string1[-3:]
Out[27]: '1/0'

Також у зрізі можна вказувати крок. Так можна отримати непарні числа:

In [28]: a = '0123456789'

In [29]: a[1::2]
Out[29]: '13579'

А таким чином можна отримати всі парні числа

In [31]: a[::2]
Out[31]: '02468'

Зрізи також можна використовувати для отримання рядка у зворотному порядку:

In [28]: a = '0123456789'

In [29]: a[::]
Out[29]: '0123456789'

In [30]: a[::-1]
Out[30]: '9876543210'

Записи a[::] і a[:] дають однаковий результат, але подвійна двокрапка дозволяє вказувати, що треба брати не кожен елемент, а, наприклад, кожен другий.

Функція len

Функція len дозволяє отримати кількість символів у рядку:

In [1]: line = 'interface Gi0/1'

In [2]: len(line)
Out[2]: 15