Skip to main content

Как конвертировать строковые переменные

How to Convert a String to Other Types

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

Преобразование в Строку

Чтобы преобразовать нестроковый объект в строку в Python, можно использовать функцию str(). Вот несколько примеров, как преобразовать данные:

# convert an integer to a string
num = 42
str_num = str(num)
print(str_num)  # outputs "42"
print(type(str_num))  # outputs "<class 'str'>"

# convert a float to a string
pi = 3.14159
str_pi = str(pi)
print(str_pi)  # outputs "3.14159"
print(type(str_pi))  # outputs "<class 'str'>"

# convert a boolean to a string
flag = True
str_flag = str(flag)
print(str_flag)  # outputs "True"
print(type(str_flag))  # outputs "<class 'str'>"

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

Unicode в Строку

В Python вы можете преобразовать строку в формате Unicode в обычную строку (также известную как байтовая строка) с помощью метода encode.

Вот пример:

unicode_string = "Hello, World! 🌍"
byte_string = unicode_string.encode("utf-8")
print(byte_string) # Output: b'Hello, World! \xf0\x9f\x8c\x8d'

В этом примере метод encode используется для преобразования unicode_string в строку байтов, закодированную в формате UTF-8. Полученная переменная byte_string содержит байтовое представление исходной строки.

Обратите внимание, что префикс b в выводе указывает на то, что значение является строкой байтов, а не обычной строкой. Если вы хотите преобразовать строку байтов обратно в обычную строку, вы можете использовать метод decode:

new_unicode_string = byte_string.decode("utf-8")
print(new_unicode_string) # Output: Hello, World! 🌍

В этом примере метод decode используется для преобразования байтовой строки обратно в строку Unicode, закодированную в формате UTF-8. Полученная переменная new_unicode_string содержит исходную строку.

Преобразование Строки в Список

Для преобразования строки в список её отдельных букв в Python, вы можете использовать встроенную функцию list(). Вот пример:

my_string = "hello"
letters_list = list(my_string)
print(letters_list)

Это выведет:

['h', 'e', 'l', 'l', 'o']

В качестве альтернативы, вы можете использовать цикл, чтобы пройтись по строке и добавить каждую букву в новый список:

my_string = "hello"
letters_list = []
for letter in my_string:
    letters_list.append(letter)
print(letters_list)

Это также выведет:

['h', 'e', 'l', 'l', 'o']

Преобразование Строки в Логическое Значение

Вы можете преобразовать строку в логическое значение, используя встроенную функцию bool().

По умолчанию следующие строки считаются True:

  • Любая непустая строка
  • Строка "True" (без учёта регистра)

С другой стороны, следующие строки считаются False:

  • Пустая строка
  • Строка "False" (без учёта регистра)
  • Любое числовое значение, равное 0 (т.е., "0" или "0.0")

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

>>> bool("hello")
True
>>> bool("")
False
>>> bool("True")
True
>>> bool("false")
False
>>> bool("0")
False
>>> bool("1")
True

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

Преобразование Строки в Шестнадцатеричный Код

Вы можете преобразовать строку в её шестнадцатеричное представление в Python с помощью метода encode() и кодировки 'hex'. Давайте посмотрим, как это сделать на примере:

string = "Hello, world!"
hex_string = string.encode('hex')

print(hex_string) # Output: 48656c6c6f2c20776f726c6421

В Python 3 метод hex() можно использовать для преобразования строки в её шестнадцатеричное представление. Вот пример:

string = "Hello, world!"
hex_string = ''.join([hex(ord(c))[2:] for c in string])

print(hex_string) #Output: 48656c6c6f2c20776f726c6421

Метод join()

Этот метод позволяет соединять элементы итерируемого объекта (такого как список, кортеж или строка) в одну строку, используя строку-разделитель.

Синтаксис использования метода join() следующий:

separator_string.join(iterable)

Здесь, separator_string - это строка, которую вы хотите использовать для разделения элементов в итерируемом объекте, а iterable - это последовательность элементов, которые вы хотите объединить.

Например, если у вас есть список строк и вы хотите объединить их в одну строку, разделённую запятыми, вы могли бы использовать следующий код:

my_list = ['mango', 'pineapple', 'banana']
separator = ', '
result = separator.join(my_list)
print(result)  # Output: "mango, pineapple, banana"

В этом примере метод join() вызывается для строки-разделителя, а список my_list используется в качестве итерируемого аргумента. Полученная строка присваивается переменной result и выводится в консоль.

Обратите внимание, что метод join() также может использоваться с другими типами итерируемых объектов, такими как кортежи или множества. Кроме того, вы можете использовать пустую строку в качестве разделителя, если хотите соединить элементы без какого-либо разделения.

Пишите вместе с нами!

Вы можете внести свой вклад в статьи о Python на GitHub: создайте Fork, внесите правки и отправьте нам Pull request.

Profile picture for user almargit
Python developer, content manager.
Profile picture for user AliaksandrSumich
Aliaksandr Sumichредактор
Обновлено: 05/03/2024 - 21:53
Profile picture for user angarsky
Evgeniy Melnikovрецензент
Проверено и опубликовано