Строковые и байтовые литералы в Python
Как строковые, так и байтовые литералы могут быть заключены в соответствующие одинарные кавычки ( ‘ ) или двойные кавычки ( » ). Они также могут быть заключены в соответствующие группы из трех одинарных или двойных кавычек ( »’ ) или ( «»» ), они обычно называются строки в тройных кавычках.
Символ обратной косой черты ( \ ) используется для экранирования символов, которые имеют особое значение, такие как например новая строка \n .
Байтовые литералы всегда начинаются с префикса ‘b’ или ‘B’ , они производят экземпляр bytes тип вместо str типа. Они могут содержать только символы ASCII. Байты с числовым значением 128 или более должны быть выражены с помощью экранирования \ .
Как строковые, так и байтовые литералы могут дополнительно иметь префикс в виде буквы ‘r’ или ‘R’ . Такие строки называются необработанными (сырыми) строками и обрабатывают обратную косую черту как символ литерала. В результате, в сырых строках, экранирование символов Юникода ‘\U’ и ‘\u’ специально ни как не обрабатываются и учитывая, что необработанные литералы Unicode в Python-2.x ведут себя иначе, чем в Python-3.x, синтаксис ‘ur’ не поддерживается.
- ‘rb’ префикс сырых байтов литералов был добавлен как синоним ‘br’ .
- Поддержка устаревшего литерала Юникода ( u’value’ ) была вновь введена для упрощения обслуживания двух кодовых баз Python-2.x и Python-3.x.
Строковый литерал с префиксом ‘f’ или ‘F’ является форматированным строковым литералом. Префикс ‘f’ может быть объединен с префиксом ‘r’ , но не может быть объединен с префиксом ‘b’ или ‘u’ .
В тройных кавычках допускаются и сохраняются escape-последовательность новой строки \n и кавычки, за исключением того, что три неэкранированные кавычки в строке завершают литерал. «Кавычка» — это символ, используемый для открытия литерала, т. е. либо ‘ или » .
>>> """"Открывать" строку 4 кавычки могут""" # '"Открывать" строку 4 кавычки могут' >>> """А вот закрывать строку подряд "4 кавычки не могут"""" # File "", line 1 # """А вот закрывать строку подряд "4 кавычки не могут"""" # ^ # SyntaxError: EOL while scanning string literal >>> """В этом случае кавычки нужно экранировать \"обратным слешем\"""" # 'В этом случае кавычки нужно экранировать "обратным слешем"'
Если префикс ‘r’ или ‘R’ отсутствует, [escape-последовательности][escape-sequence] в строковых и байтовых литералах интерпретируются в соответствии с правилами, аналогичными тем, которые используются стандартом языка C .
В сырой строке кавычки можно экранировать с помощью обратной косой черты, но в результате обратная косая черта останется. Например, строковый литерал r»\»» , состоящий из двух символов — обратной косой черты и двойной кавычки будет интерпретироваться в ‘\\»‘ . В сырых строках необработанный литерал не может заканчиваться одним обратным слешем, так как обратный слеш будет экранировать следующий символ кавычки. Также обратите внимание, что escape-последовательность новой строки \n , интерпретируется как \\n , а не как новая строка.
Пример особенностей сырых строк:
# Необработанные (сырые) строки >>> r"пробуем экранировать \" кавычку" # 'пробуем экранировать \\" кавычку' >>> print(r"пробуем экранировать \" кавычку") # пробуем экранировать \" кавычку >>> r"escape-последовательность новой \nстроки не работает" 'escape-последовательность новой \\nстроки не работает' >>> print(r"escape-последовательность новой \nстроки не работает") # escape-последовательность новой \nстроки не работает # Простые строки >>> "пробуем экранировать \" кавычку" # 'пробуем экранировать " кавычку' >>> print("пробуем экранировать \" кавычку") # пробуем экранировать " кавычку >>> "escape-последовательность новой \nстроки работает как положено" 'escape-последовательность новой \nстроки работает как положено' >>> print("escape-последовательность новой \nстроки работает как положено") # escape-последовательность новой # строки работает как положено
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- ESCAPE последовательности
- Объединение строковых литералов
Что такое литералы в Python?
Литерал — это краткий и легко видимый способ написать значение. Литералы представляют собой возможные варианты примитивных типов для этого языка. Некоторые из вариантов типов литералов часто являются целыми числами, плавающей точкой, булевыми и символьными строками. Python поддерживает следующие литералы:
- String literals :: «halo» , ‘12345’
- Int literals :: 0,1,2,-1,-2
- Long literals :: 89675L
- Float literals :: 3.14
- Complex literals :: 12j
- Boolean literals :: True or False
- Special literals :: None
- Unicode literals :: u»hello»
- List literals :: [], [5,6,7]
- Tuple literals :: (), (9,),(8,9,0)
- Dict literals :: <>,
- Set literals ::
(Пока оценок нет)
Похожие новости
![]()
Вопросы по Python — 1
![]()
Как создать копию объекта в Python?
![]()
Как определить тип экземпляра и наследование в Python
- Книги по 1С
- Книги по Assembler
- Книги по Android
- Книги по C#
- Книги по C++
- Книги по CSS
- Книги по Delphi
- Книги по HTML
- Книги по JavaScript
- Книги по Java
- Книги по MySql
- Книги по Php
- Книги по Python
- Книги по Pascal
Django Fan
. в книге под термином литерал подразумевается выражение, создающее объект, который иногда также называется константой. Следует иметь в виду, что термин «константа» не означает объекты и переменные, которые никогда не изменяются.
То есть это вообще как, литерал подразумевает выражение, создающее объект, но в тоже время литерал может быть константой, но которая не означает объекты.
Получается к примеру: 4+5 = 9 -это выражение создающее объект а именно 9 ? Но литералом может быть и строка, тогда как создается здесь литерал, конкатенацией?? Дальше хуже, к спискам я вообще не понимаю тогда как.
Это определение выше одно из первых с которым я столкнулся, потом читал дальше и еще один пример: В таблице 5.1 показано, как выглядят числа различных типов в языке Python в тексте программы(то есть в виде литералов) и там идут целые числа, вещественные и т.д. но если это все должно быть результатом выражения, то почему в таблице это просто 9999999999, 1234, или же 1.23.
Ответ
Это одна из базовых концепций, но именно поэтому ее непросто объяснить «в сферической форме в вакууме». Я тоже помню, как не сразу понял что это означает. Взялся было отвечать читателю в почте, но когда увидел, что текст получился довольно объемный, решил запостить его в блоге, может еще кому-то пригодится.
Если простыми словами, то литерал в Python – это простейший способ создания объектов. Например:
1 # числовой литерал
"I'am a string" # строковый литерал
[1, 2, 4, 6] # литерал списка
# литерал словаря
Но, поскольку такая запись не имеет смысла, так как с созданным объектом нужно что-то сделать или чему-то присвоить, то обычно все примеры в литературе пишутся в виде:
a = 1
На этом месте у новичка уже глаза разбегаются – где здесь что. Так вот, слева – переменная, справа – литерал.
Далее, по письму:
. под термином литерал подразумевается выражение, создающее объект.
Не верно. В Python выражение и литерал – две большие разницы, как говорят в Одессе. Литерал – это форма записи (см. примеры выше).
Получается к примеру: 4+5 = 9 -это выражение создающее объект а именно 9…
То же самое, 4 + 5 – это выражение, не литерал.
Таким образом, чтобы как-то называть общим названием такие простейшие записи, как 4.5 , ‘my string’ , [1, ‘abc’, 45] , применяют слово литерал.
В большинстве случаев смысл этого термина не играет большой роли для понимания сути, часто его можно просто игнорировать. Возможно, он ближе к области лингвистики. Например, нужно понимать разницу, когда кто-то скажет: «А давайте-ка создадим этот словарь не с помощью литерала, а с помощью builtin«. Разница будет выглядеть так:
mydict = dict(a=1, b=2, c=3)
mydict =
В первом случае мы создаем словарь с помощью встроенной функции dict(), а во втором – с помощью литерала словаря.
Как сказал кто-то из великих (автор цитаты — Н. И. Лобачевский, спасибо, подсказали в комментариях), что сама
. Математика – не наука, а язык для выражения научных идей.
Так что, да – к терминам надо относиться с уважением.
И спасибо посетителю за вопрос!
Литералы в Python – все известные типы
Литералы Python можно определить как данные, заданные в переменной или константе.
Python поддерживает несколько типов литералов.
Строковые
Строковые литералы можно сформировать, заключив текст в кавычки. Мы можем использовать как одинарные, так и двойные кавычки для создания строки.
"Aman" , '12345'
В Python поддерживаются два типа строк:
a) Однострочные строки. Строки, которые заканчиваются одной строкой, называются однострочными строками.
text1='hello'
б) Многострочная строка. Фрагмент текста, состоящий из нескольких строк, известен как многострочная строка.
Есть два способа создать многострочные строки:
1) Добавление черной косой черты в конце каждой строки.
text1='hello\ user' print(text1)
'hellouser'
2) Использование тройных кавычек.
str2='''welcome to SSSIT''' print str2
welcome to SSSIT
Числовые литералы
Числовые литералы неизменяемы. Числовые литералы могут принадлежать к следующим четырем различным числовым типам.
| Int(числа с целым знаком) | Long(длинные целые числа) | float(с плавающей запятой) | Complex(сложные) |
|---|---|---|---|
| Числа(могут быть как положительными, так и отрицательными) без дробной части, например: 100 | Целые числа неограниченного размера, за которыми следует строчная или прописная буква L, например: 87032845L | Действительные числа с целой и дробной частью, например: -26,2 | В форме a + bj, где a – действительная часть, а b – мнимая часть комплексного числа. например: 3.14j |
Пример числовых литералов:
x = 0b10100 #Binary Literals y = 100 #Decimal Literal z = 0o215 #Octal Literal u = 0x12d #Hexadecimal Literal #Float Literal float_1 = 100.5 float_2 = 1.5e2 #Complex Literal a = 5+3.14j print(x, y, z, u) print(float_1, float_2) print(a, a.imag, a.real)
20 100 141 301 100.5 150.0(5+3.14j) 3.14 5.0
Логические литералы
Логический литерал может иметь любое из двух значений: True или False.
Пример логических литералов:
x =(1 == True) y =(2 == False) z =(3 == True) a = True + 10 b = False + 10 print("x is", x) print("y is", y) print("z is", z) print("a:", a) print("b:", b)
x is True y is False z is False a: 11 b: 10
Специальные литералы
Python содержит один специальный литерал – None.
None используется для указания того поля, которое не создается. Он также используется для конца списков в Python.
Пример специального литерала:
val1=10 val2=None print(val1) print(val2)
10 None
Литеральные коллекции
Python предоставляет четыре типа коллекции литералов, такие как литералы List, литералы Tuple, литералы Dict и литералы Set.
- Список содержит элементы с разными типами данных. Списки изменяемы.
- Значения, хранящиеся в List, разделяются запятой(,) и заключаются в квадратные скобки([]). Мы можем хранить различные типы данных в списке.
Пример списка литералов:
list=['John',678,20.4,'Peter'] list1=[456,'Andrew'] print(list) print(list + list1)
['John', 678, 20.4, 'Peter'] ['John', 678, 20.4, 'Peter', 456, 'Andrew']
- Словарь Python хранит данные в паре ключ-значение.
- Он заключен в фигурные скобки <>, а каждая пара отделяется запятыми(,).
dict = print(dict)
- Кортеж Python – это набор данных разных типов. Он неизменяемый, что означает, что его нельзя изменить после создания.
- Он заключен в круглые скобки(), а каждый элемент отделяется запятой(,).
tup =(10,20,"Dev",[2,3,4]) print(tup)
(10, 20, 'Dev', [2, 3, 4])
- Набор Python – это набор неупорядоченного набора данных.
- Он заключен в <>, и каждый элемент отделяется запятой(,).