Python. Рядки. Екрановані послідовності. Неформатовані рядки. Багаторядкові блоки тексту

Рядки. Екрановані послідовності. Неформатовані рядки. Багаторядкові блоки тексту


Зміст


1. Загальна форма представлення екранованої послідовності. Символ \ (зворотній слеш)

Екрановані послідовності – це послідовності символів, що визначають спеціальні символи які важко ввести з клавіатури або відобразити на екрані. До таких символів можна віднести, наприклад, символ нового рядка, символ звукового сигналу PC Speaker, символ клавіші BackSpace та інші.

Для того, щоб представити спеціальні символи використовується символ \. Загальна форма представлення екранованої послідовності наступна:

\символи

де символи – деякі символи або цифри, які замінюють один символ, що має двійкове значення яке визначається екранованою послідовністю.

 

2. Приклади виведення рядків, що містять екрановані послідовності

Екрановані послідовності впливають на виведення рядків.

# Екрановані послідовності
import math

s = 'H\ne\nl\nl\no\nw\to\tr\tl\td\n'
s2 = '\x23+\x25=\x28'
print(s)
print(s2)

Після виконання вищенаведеного коду буде отримано наступний результат

H
e
l
l
o
w   o    r    l    d

3+5=8

 

3. Таблиця екранованих послідовностей

У таблиці наведено екрановані послідовності мови Python.

Python. Екрановані послідовності. Таблиця

 

4. Визначення довжини рядка, що містить екрановану послідовність

В програмі екранована послідовність може складатись з декількох символів. При виведенні на екран ці декілька символів замінюються одним відповідним символом.

Приклад.

# Екрановані послідовності - довжина рядка
import math

s = 'A\n\172' # \172 - код символу Z
length = len(s) # length = 3
print(s)
print('length = ',length)

У вищенаведеному коді рядок

s = 'A\n\172'

у програмі має довжину 7 символів. Реальна довжина рядка рівна 3 символи. Це пояснюється тим, що рядок містить дві екрановані послідовності які замінюються одиночними символами:

  • \n – символ нового рядка;
  • \172 – код символу z у вісімковій системі числення.

Результат виконання програми

A
z
length = 3


 

5. Представлення символів у шістнадцятковій та вісімковій системах числення. Приклад

З допомогою екранованих послідовностей можна представляти символи у шістнадцятковій та вісімковій системах числення.

Приклад.

# Екрановані послідовності
# шістнадцяткова система числення
s1 = '\xF5A0' # s1 = '\xf5A0'
l1 = len(s1) # l1 = 3 => { '\xf5', 'A', '0' }

# вісімкова система числення
s2 = '\562' # s2 = 'r' - символ у вісімковій системі числення
l2 = len(s2) # l2 = 1

print('s1 = ', s1)
print('l1 = ', l1)
print('s2 = ', s2)
print('l2 = ', l2)

Результат виконання програми

s1 = '\xf5A0'
l1 = 3
s2 = 'r'
l2 = 1

 

6. Представлення символу зворотного слешу \. Приклад

Символ зворотного слешу \ зберігається в рядку у тому вигляді як є у випадку коли після символу \ немає коректного службового символу який відображено в таблиці п.3.

Приклад.

# Екрановані послідовності
# символ зворотного слешу \
s = '\error' # s = \error
s = "12\3562" # s = 12o2, \356 => o
s = 'c:\\myfile.txt' # s = 'c:\myfile.txt', \\=>\
s = 'c:\myfile.txt' # s = 'c:\myfile.txt'

 

7. Відключення механізму екранування. Приклад

При використанні екранованих послідовностей можлива ситуація, коли використання символу \ (звороний слеш) у поєднанні з іншими символами породжує невидимі помилки.

Наприклад, якщо у деяку змінну s потрібно записати повне ім¢я файлу який розміщується за наступним маршрутом

C:\1\textfile.txt

то рядок на мові Python

s = 'C:\1\textfile.txt' # s = 'C:    extfile.txt'

буде містити невидиму помилку: змінна s рівна значенню

C:    extfile.txt

Це пов’язано з тим, що послідовність символів \t розглядається як один символ табуляції (див. таблицю з п. 3).

Щоб уникнути таких негативних випадків потрібно відключити (подавити) механізм екранування. Для відключення екранованих послідовностей у рядках використовуєтсья наступна загальна форма

r'рядок_символів'

або

R'рядок_символів'

тобто, перед рядком потрібно поставити символ r або R.

Приклад.

# Екрановані послідовності. Невидимі помилки
# 1. Помилковий код
s = 'C:\1\textfile.txt' # s = 'C:    extfile.txt'
l = len(s) # l = 15

# 2. Відключення екранованих послідовностей: r або R
# Правильний код
s2 = R'C:\1\textfile.txt' # s2 = 'C:\1\textfile.txt'
l2 = len(s2)

print(s)
print('l = ', l)
print(s2)
print('l2 = ', l2)

Як видно з прикладу, в рядку s формується помилкове повне ім’я файлу, а в рядку s2 формується правильне ім’я файлу завдяки символу R перед ним.

Результат роботи програми

C:    extfile.txt
l = 15
C:\1\textfile.txt
l2 = 17

 

8. Багаторядкові блоки тексту. Приклад

З допомогою потрійних лапок “””…””” можна формувати багаторядкові блоки тексту.

Приклад.

# Екрановані послідовності
# Багаторядкові блоки тексту
s = """First line,
second line,
third line
"""

s2 = """1
2
3
4"""

print(s)
print(s2)

Результат роботи програми

First line,
second line,
third line
1
2
3
4

 


Зв’язані теми