Найти тему
Будни питониста

Создание строки.

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

>>> а = "hello"; а

'hello'

>>> b "hi!"; b

'hi ! '

Данные строки ничем не отличаются, и вы можете использовать любой способ, какой вам больше нравится. В РНР есть разница между строками, заключенными в кавычки и в апострофы. В Python разницы никакой нет. Мой совет следующий: если строка содержит апострофы, заключайте ее в кавычки, если же строка содержит кавычки, то заключайте ее в апострофы. Все специальные символы в этих строках (что в кавычках, что в апострофах) интерпретируются, например, \t - это символ табуляции, \n - символ новой строки и т.д. Если нужно вывести символ \ как есть, его нужно экранировать:

>>> s = "Hello\\nworld"; s

'Hello\\nworld'

При использовании кавычек и апострофов вы не можете разместить объект на нескольких строках. Если нужно присвоить переменной многострочный текст, используйте тройные апострофы:

>>> s = '' 'Hello,

****

world! **** '''

Также создать строку можно с помощью функции str():

str(<строка>, <кодировка>, <обработка ошибок> )

Преимущество этой функции - вы сразу можете указать кодировку, в которой находится текст:

>>> s = str(b'\xd0\x9f\xdl\x80\xd0\xb8\xd0\xb2\xd0\xb5\ xdl \х82', 'utf-8') ; s

'Привет'

Обратите внимание: ранее мы использовали пример, в котором мы переменной str присваивали значение. Этим мы переопределили идентификатор str и при вызове функции str вы можете получить сообщение:

Traceback (most recent call last):

File "<pyshell#4", line 1, in <module>

s = str(b'\xd0\x9f\xdl\x80\xd0\xb8\xd0\xb2\xd0\xb5\ xdl\x82', 'utf-8');

TypeError: 'str' object is not callable

По привычке многие из нас используют идентификатор str для хранения какой-то промежуточной строки. В отличие от РНР, где можно использовать переменную $str и функцию str(), в Python этого лучше не делать, иначе вы не сможете использовать функцию str().

Да, РНР более гибкий язык и в нем вы легко можете использовать следующий код:

<?php

function str ($str)

echo $str;

}

$str = "Hello";

str($str);

?>

Одни сплошные идентификаторы str, но в Python так делать нельзя. Зато в Python есть строки документирования, которые сохраняются в атрибуте _doc_. Пример:

>>> def funcl():

""" Краткое описание “””

Pass

>>> print(funcl._doc )

Traceback (rnost recent call last):

File "<pyshell#9", line 1, in <module>

print(funcl._doc_)

AttributeError: 'function' object has no attribute ' doc '

>>> print(funcl._doc

Краткое описание

>>>

Обратите внимание, что имя атрибута содержит четыре знака подчеркивания - два до doc и два после, иначе вы получите ошибку.

Перед некоторыми строками необходимо разместить модификатор r. Специальные символы внутри строки будут выводиться как есть, например, \t не будет преобразован в символ табуляции. Такой модификатор будет полезен, если вы работаете с регулярными выражениями, а также при указании пути к файлу и каталогу:

>>> print(r"c:\test\test.py")

c:\test\test.py

Если модификатор не указать, то слеши нужно экранировать:

>>> print("c:\\test\\test.py")

c:\test\test.py