Python - 字面量



什么是Python字面量?

Python字面量或常量是在源代码中表示固定值的表示法。与变量相反,字面量(123, 4.3, "Hello")是静态值,或者可以说是在程序或应用程序运行过程中不会改变的常量。例如,在下面的赋值语句中。

x = 10

这里10是一个数字字面量,表示10,直接存储在内存中。然而,

y = x*2

这里,即使表达式计算结果为20,它也没有直接包含在源代码中。你也可以使用内置的int()函数声明一个int对象。但是,这也是一种间接的实例化方式,而不是使用字面量。

x = int(10)

不同类型的Python字面量

Python提供了以下字面量,本教程将对它们进行解释

Python整数字面量

任何只包含数字符号(0到9)的表示法都会创建一个int类型的对象。可以使用赋值运算符通过变量引用声明的对象。

整数字面量包含三种不同类型的字面值:十进制、八进制和十六进制字面量。

1. 十进制字面量

十进制字面量表示带符号或无符号的数字。使用0到9的数字来创建十进制字面值。

查看下面将十进制字面量赋值给变量的语句:

x = 10
y = -25
z = 0

2. 八进制字面量

Python允许将整数表示为八进制数或十六进制数。在Python中,只有八个数字符号(0到7)但以0o或0O为前缀的数字表示是八进制数。

查看下面将八进制字面量赋值给变量的语句:

x = 0O34

3. 十六进制字面量

类似地,一系列十六进制符号(0到9和a到f),以0x或0X为前缀,表示Python中的十六进制整数。

查看下面将十六进制字面量赋值给变量的语句:

x = 0X1C

但是,需要注意的是,即使你使用八进制或十六进制字面量表示法,Python内部仍然将它们视为int类型。

示例

# Using Octal notation
x = 0O34
print ("0O34 in octal is", x, type(x))
# Using Hexadecimal notation
x = 0X1c
print ("0X1c in Hexadecimal is", x, type(x))

运行此代码时,将产生以下输出

0O34 in octal is 28 <class 'int'>
0X1c in Hexadecimal is 28 <class 'int'>

Python浮点数字面量

浮点数由整数部分和小数部分组成。按照惯例,小数点符号(.)在浮点数的字面量表示中分隔这两个部分。例如,

浮点数字面量的示例

x = 25.55
y = 0.05
z = -12.2345

对于过大或过小的浮点数,如果小数点前或后的位数过多,则使用科学计数法进行紧凑的字面量表示。E或e符号后跟正整数或负整数,紧跟在整数部分之后。

浮点数科学计数法示例

例如,数字 1.23E05 等同于 123000.00。类似地,1.23e-2 等同于 0.0123

# Using normal floating point notation
x = 1.23
print ("1.23 in normal float literal is", x, type(x))
# Using Scientific notation
x = 1.23E5
print ("1.23E5 in scientific notation is", x, type(x))
x = 1.23E-2
print ("1.23E-2 in scientific notation is", x, type(x))

在这里,您将得到以下输出

1.23 in normal float literal is 1.23 <class 'float'>
1.23E5 in scientific notation is 123000.0 <class 'float''>
1.23E-2 in scientific notation is 0.0123 <class 'float''>

Python 复数字面量

复数由实部和虚部组成。虚部是任何数字(整数或浮点数)乘以“-1”的平方根。

(√ −1)。在字面表示中,($\sqrt{−1}$) 由 "j" 或 "J" 表示。因此,复数的字面表示形式为 x+yj。

复数类型字面量示例

#Using literal notation of complex number
x = 2+3j
print ("2+3j complex literal is", x, type(x))
y = 2.5+4.6j
print ("2.5+4.6j complex literal is", x, type(x))

此代码将产生以下输出

2+3j complex literal is (2+3j) <class 'complex'>
2.5+4.6j complex literal is (2+3j) <class 'complex'>

Python 字符串字面量

一个字符串对象是Python中序列数据类型之一。它是一个不可变的Unicode代码点序列。代码点是根据Unicode标准对应于字符的数字。字符串是Python内置类'str'的对象。

字符串字面量通过将一系列字符用单引号 ('hello')、双引号 ("hello") 或三引号 ('''hello''' 或 """hello""") 括起来来编写。

字符串字面量示例

var1='hello'
print ("'hello' in single quotes is:", var1, type(var1))
var2="hello"
print ('"hello" in double quotes is:', var1, type(var1))
var3='''hello'''
print ("''''hello'''' in triple quotes is:", var1, type(var1))
var4="""hello"""
print ('"""hello""" in triple quotes is:', var1, type(var1))

在这里,您将得到以下输出

'hello' in single quotes is: hello <class 'str'>
"hello" in double quotes is: hello <class 'str'>
''''hello'''' in triple quotes is: hello <class 'str'>
"""hello""" in triple quotes is: hello <class 'str'>

包含双引号的字符串字面量示例

如果需要将双引号作为字符串的一部分嵌入,则字符串本身应放在单引号中。另一方面,如果要嵌入单引号文本,则字符串应放在双引号中。

var1='Welcome to "Python Tutorial" from TutorialsPoint'
print (var1)
var2="Welcome to 'Python Tutorial' from TutorialsPoint"
print (var2)

它将产生以下输出

Welcome to "Python Tutorial" from TutorialsPoint
Welcome to 'Python Tutorial' from TutorialsPoint

Python 列表字面量

Python中的列表对象是其他数据类型对象的集合。列表是一个有序的项目集合,这些项目不一定属于同一类型。集合中的各个对象通过从零开始的索引访问。

列表对象的字面表示是用一个或多个项目完成的,这些项目用逗号分隔并用方括号 [] 括起来。

列表类型字面量示例

L1=[1,"Ravi",75.50, True]
print (L1, type(L1))

它将产生以下输出

[1, 'Ravi', 75.5, True] <class 'list'>

Python 元组字面量

Python中的元组对象是其他数据类型对象的集合。元组是一个有序的项目集合,这些项目不一定属于同一类型。集合中的各个对象通过从零开始的索引访问。

元组对象的字面表示是用一个或多个项目完成的,这些项目用逗号分隔并用圆括号 () 括起来。

元组类型字面量示例

T1=(1,"Ravi",75.50, True)
print (T1, type(T1))

它将产生以下输出

[1, 'Ravi', 75.5, True] <class tuple>

无括号的元组类型字面量示例

Python序列的默认分隔符是圆括号,这意味着没有圆括号的逗号分隔序列也相当于元组的声明。

T1=1,"Ravi",75.50, True
print (T1, type(T1))

在这里,您也将得到相同的输出

[1, 'Ravi', 75.5, True] <class tuple>

Python 字典字面量

与列表或元组一样,字典也是一种集合数据类型。但是,它不是序列。它是一个无序的项目集合,每个项目都是一个键值对。值通过 ":" 符号绑定到键。一个或多个用逗号分隔的键值对放在花括号内以形成字典对象。

字典类型字面量示例

capitals={"USA":"New York", "France":"Paris", "Japan":"Tokyo",
"India":"New Delhi"}
numbers={1:"one", 2:"Two", 3:"three",4:"four"}
points={"p1":(10,10), "p2":(20,20)}

print (capitals, type(capitals))
print (numbers, type(numbers))
print (points, type(points))

键应该是不可变对象。数字、字符串或元组可以用作键。键在一个集合中不能出现多次。如果键出现多次,则只保留最后一个。值可以是任何数据类型。一个值可以分配给多个键。例如,

staff={"Krishna":"Officer", "Rajesh":"Manager", "Ragini":"officer", "Anil":"Clerk", "Kavita":"Manager"}
广告