Python. Засоби перетворення рядків та одиночних символів




Засоби перетворення рядків та одиночних символів. Функції int(), str(), repr(), float(), ord(), chr()


Зміст


Пошук на інших ресурсах:

1. Функція int(). Перетворення в ціле число

Функція int() є конструктором класу int. Ця функція повертає цілочисельний об’єкт, який може бути утворений з:

  • цілого числа чи об’єкту;
  • числа чи об’єкту з плаваючою комою;
  • рядка символів чи рядкового об’єкту, що містить послідовність цифр.

Функція може викликатись одним з двох способів:

  • int() – у цьому випадку функція повертає значення 0;
  • int(x, base) – у цьому випадку обробляється об’єкт x. Значення base визначає систему числення, в яку потрібно конвертувати об’єкт x. За замовчуванням base = 10. Якщо явно задана система числення, то тип об’єкту x повинен бути рядковий, інші типи у цьому випадку забороняються.

Приклад.

# Функція int()
# 1. Виклик без параметрів
a = int() # a = 0

# 2. Виклик з цілочисельним значенням
a = int(15) # a = 15

# 3. Виклик з числом з плаваючою комою
a = int(2.85) # a = 2

# 4. Виклик з рядком
s = '28' 
a = int(s) # a = 28

# 5. Виклик з конвертуванням в іншу систему числення - тільки для рядків

# конвертувати 155 з 16 системи в десяткову
s = '155'
a = int(s, 16) # a = 341, значення 155 в 16-й системі

# конвертувати 111 з двійкової системи в десяткову
s = '111'
a = int(s, 2) # a = 7

# 6. Так не можна 
# a = int(111,2) - помилка, не можна конвертувати число, має бути рядок

 

2. Функція str(). Перетворення в рядок

Функція str() є конструктором класу str. Функція повертає об’єкт у вигляді рядка. Функція використовуєтсья для конвертування з одного типу (наприклад числового) в рядковий тип.

Функція має дві релізації:

  • str() – без параметрів. У цьому випадку функція повертає пустий рядок;
  • str(x) – з параметром x. Параметр x є об’єктом деякого типу. Даний виклик може також містити ще два додаткові параметри, що визначають систему кодування (за замовчуванням система кодування встановлюється utf-8) та схему обробки помилок (за замовчуванням встановлена схема виклику виключення типу UnicodeError).

Результат функції str() може використовуватись для виведення у функції print().

Приклад.

# Функція str()

# 1. Виклик з цілим числом
x = 25
s = str(x) # s = '25' - рядок символів

# 2. Виклик з числом з плаваючою комою
y = 2.338
s = str(y) # s = '2.338'

# 3. Виклик з рядком
s = str("3.778") # s = '3.778'

# 4. Виклик з рядком, що не представляє число
s = str("abcdef") # s = 'abcdef'

# 5. Виклик без параметрів
s = str() # s = ''

 

3. Функція repr(). Перетворення в рядок як літерал

Функція repr() реалізує перетворення в рядок таким чином, якби цей рядок був літералом в програмному коді.
Функція repr() може бути застосована до:

  • цілих чисел;
  • чисел з плаваючою комою;
  • рядків символів.

Приклад 1. Конвертувати ціле число в рядок, який представлений літералом.

# Функція repr()
# конвертувати ціле число в рядок
number = 25
snumber = repr(number) # snumber = '25' - як рядок символів

number = -100029
snumber = repr(number) # snumber = '-100029' - як рядок символів

Приклад 2. Конвертувати в рядок число з плаваючою комою.

# Функція repr()

# конвертувати число з плаваючою комою в рядок
number = 25.233
snumber = repr(number) # snumber = '25.233'

snumber = repr(-1e-2) # snumber = '-0.01'

Приклад 3. Конвертувати рядок символів в інший рядок так якби він був літералом.

# Функція repr()
# конвертувати рядок в рядок
s1 = 'Text string'
s2 = repr(s1) # s2 = "'Text string'"

s1 = "Text string"
s2 = repr(s1) # s2 = "'Text string'"

Приклад 4. Конвертування кортежу.

# Функція repr() - обробка кортежу
x = ( 2.85, 15, 'Hello')
str_x = repr(x) # str_x = "(2.85, 15, 'Hello')"


 

4. Яка відмінність між функцією repr() та функцією str()?

У мові Python функції repr() та str() перетворюють довільні об’єкти в їх рядкове представлення.

Різниця між функціями проявляється у тому, як вони конвертують рядок.

Функція repr() повертає представлення рядкового об’єкту у вигляді рядка програмного коду, який можна виконати щоб відтворити цей об’єкт. Іншими словами, функція repr() повертає рядок у вигляді рядка. При використанні такого об’єкту в функції print() буде виведено лапки, які обмежують рядок (рядок у вкладених лапках).
В свою чергу, функція str() використовується для конвертування рядка в рядок без його відтворення у попередню форму. При використанні результату функції str() у функції print() буде виведено звичайний рядок в одинарних лапках.

Наприклад.

# Функції repr() та str()
# конвертувати рядок в рядок
s1 = 'Text string'

# функція repr()
s2 = repr(s1) # s2 = "'Text string'"

# функція str()
s3 = str(s1) # s3 = 'Text string'

Як видно з вищенаведеного коду, функція repr() повертає рядок як літерал

"'Text string'"

а функція str() повертає звичайний рядок

'Text string'

 

5. Функція float(). Перетворення в число з плаваючою комою

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

  • float() – без параметру. У цьому випадку повертається значення 0.0;
  • float(x) – де параметр x задає число або рядок, який потрібно конвертувати.

В якості вхідного параметру або вихідного результату функція може використовувати граматичні символи:

  • “Infinity” або “inf” – позначають нескінченість. Нескінченість може бути від’ємною: “-Infinity” або “-inf”;
  • “nan” – позначає невизначеність.

Приклад.

# Функція float() - повертає число з плаваючою комою
# 1. Результат отримується з числа
a = 25 # ціле число
x = float(a) # x = 25.0

b = 21.555e-2 # число з плаваючою комою
x = float(b) # x = 0.21555

# 2. Результат отримується з рядка
# s = 'abcdef' - помилка, рядок не має вигляд числа
# x = float(s)

# рядок в експоненційному форматі
s = '-1.23e-2'
x = float(s) # x = -0.0123

# рядок в звичайному форматі
s = "288.75"
x = float(s) # x = 288.75 - як число

# використання у виразі
x = float(5.2)+float(3.8)*float(-2.1) # x = -2.7799999999999994

# використання з знаком +
x = float('+2.34') # x = 2.34

# використання з словом "Infinity" або "inf"
x = float("Infinity") # x = inf
x = float('-inf') # x = -inf - з від'ємним знаком

# використання з словом "nan"
x = float("nan") # x = nan

x = float() # x = 0.0

 

6. Функції ord() та chr(). Перетворення кодів одиночних символів

Функції ord() та chr() використовуються для одиночних символів. Ці функції є інверсні одна до одної.
Функція chr() дозволяє отримувати символ на основі його коду. Функція ord() дозволяє отримати код на основі представлення символу.

Загальна форма виклику функції chr() наступна

c = chr(i)

де c – символьне представлення символу з Unicode-кодом i.

Загальна форма виклику функції ord()

i = ord(c)

де i – код символу c.

Приклад.

# Функції chr() та ord()
# 1. Функція chr()

code = 49 # код в десятковій системі числення
symbol = chr(code) # symbol = '1' - цифра '1'

code = 100
symbol = chr(code) # symbol = 'd'

code = 7785
symbol = chr(code) # symbol = 'ṩ' - кодування Unicode

# 2. Функція ord
symbol = '5'
code = ord(symbol) # code = 53

symbol = 'ṩ'
code = ord(symbol) # code = 7785

symbol = ' ' # символ пробіл
code = ord(symbol) # code = 32

 

7. Чи можна в Python додати рядок з числом?

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

Приклад.

# Додавати рядок з числом не можна
s = '25' # це є рядок
a = 30 # це є число

# Випадок 1. Додати два числа
# Попередньо потрібно конвертувати рядок в число
b = int(s)
res = a + b

print('As numbers: a + s = ', res)

# Випадок 2. Додати два рядки
# Попередньо потрібно конвертувати число в рядок
res_str = str(a) + s

print('As strings: a + s = ', res_str)

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

As numbers: a + s = 55
As strings: a + s = 3025

 


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