Python 字面量或常量是在源代码中表示固定值的符号。与变量不同,字面量(如 123、4.3、"Hello")是静态值或者说常量,在整个程序或应用运行期间不会改变。例如,在以下赋值语句中:
x = 10
这里 10 是一个字面量,作为数值代表 10,并直接存储在内存中。然而,
y = x * 2
即使这个表达式计算结果为 20,它并不是字面地包含在源代码中。你也可以使用内置的 int()
函数声明一个 int 对象。但是,这也是间接的方式,并不是通过字面量进行实例化。
x = int(10)
不同类型的 Python 字面量
Python 提供了以下字面量,将在本教程中解释:
Python 整数字面量
任何仅涉及数字符号(0 到 9)的表示都会创建一个 int 类型的对象。所声明的对象可以通过赋值运算符由变量引用。
整数字面量包含三种不同类型的字面量值:十进制、八进制和十六进制字面量。
十进制字面量
十进制字面量代表有符号或无符号的数字。数字 0 到 9 用来创建一个十进制字面量值。
看下面的语句,将十进制字面量赋给变量:
x = 10
y = -25
z = 0
八进制字面量
Python 允许整数表示为八进制数或十六进制数。只有八个数字符号(0 到 7),但以 0o 或 0O 作为前缀,这就是 Python 中的八进制数。
看下面的语句,将八进制字面量赋给变量:
x = 0O34
十六进制字面量
类似地,一系列十六进制符号(0 到 9 和 a 到 f),前缀为 0x 或 0X,表示 Python 中的十六进制形式的整数。
看下面的语句,将十六进制字面量赋给变量:
x = 0X1C
然而,需要注意的是,即使你使用八进制或十六进制字面量表示法,Python 内部仍然把它们视为 int 类型。
示例
x = 0O34
print("0O34 in octal is", x, type(x))
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
x = 1.23
print("1.23 in normal float literal is", x, type(x))
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" ((\sqrt{-1}))。在字面量表示中 ((\sqrt{-1})) 由 "j" 或 "J" 表示。因此,复数的字面量表示形式为 x + yj。
复数类型字面量示例
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"}