Python 基本数据类型#
Python 内置了一些基本数据类型,极大的方便描述的任务。
Python 中带有关键字的结构,用于表达特定的语义,被称为 语句。
Python 的 表达式 表示那些可以被求值的对象。换句话说,一个表达式就是表达元素例如字面值、名称、属性访问、运算符或调用,它们最终都会返回一个值。本文主要介绍 Python 基本数据类型所代表的表达式。
赋值语句用于将名称(重)绑定到特定值,以及修改属性或可变对象的成员项:
标识符(或者标识符列表)= 表达式
此时的标识符一般被称为 变量
。
标识符#
标识符 (也称为 名称)是由特定的 Unicode 字符(包含英文、汉字等,且英文字母区分大小写)、(十进制)数字和下划线组成,但不能以数字作为开头。
示例:
长度 = 100 # 单位 m
宽度 = 400 # 单位 m
面积 = 长度 * 宽度 # 单位 m^2
面积
40000
可以看出:标识符大大地简化了表达丰富语义的过程。
警告
如果变量未定义(即,未赋值),使用该变量会提示错误(在 Python 中被称为 “异常”):
小马
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[2], line 1
----> 1 小马
NameError: name '小马' is not defined
数字#
数字字面值与运算符 +
(正号,一般被省略)、-
(负号) 组成了数学中的数字(名称为 numbers.Number
)。按照数域范围分为:整型(名称为 numbers.Integral
表示)、分数型(名称为 numbers.Rational
)、浮点型(名称为 numbers.Real
表示)以及复数型(名称为 numbers.Complex
表示)。整型、分数型、浮点型以及复数型支持数学运算。
数学运算#
Python 提供有基本的数学运算:
+
(加法)、-
(减法)、*
(乘法)、/
(除法)、//
(向下取整除法)、%
(求余)、**
(乘方);使用
()
分组表达式,用于改变运算的优先级。
可看一些例子(以整数为例):
27 + 49 # 整数加法
76
100 - 1 # 整数减法
99
45 * 3 # 整数乘法
135
75 / 6 # 整数除法
12.5
75 / 15 # 除法返回的值总是浮点数
5.0
(3 + 7) * 5 # 使用 () 分组表达式
50
50 // 5, 53 // 5, 57 // 5 # 向下取整
(10, 10, 11)
73 % 9 # 求取余数
1
2 ** 10 # 乘方
1024
复数#
看看 Python 是如何表达 复数 的。
7j # 纯虚数字面量
3 + 5j # 复数字面量
(3+5j)
复数的运算:
# 定义复数变量
a = 3 + 4j
b = 7 + 1j
a + b, a - b, a * b, a / b, a ** b
((10+5j),
(-4+3j),
(17+31j),
(0.49999999999999994+0.5j),
(-7542.58226836217+29973.54852192689j))
对象的属性、方法以及函数#
由于 Python 一切皆是对象,故而每个对象都可能绑定了一些属性(通过 .
获取其值)、方法 以及 函数。
比如,复数 \(z\) 有一些属性值:
z = 6 + 8j
z.real # 复数的实部
6.0
z.imag # 复数的虚部
8.0
方法 可以理解为对象自有的行为,一般带有 (参数列表)
调用其行为。比如,复数 \(z\) 有一个求取共轭复数的方法:
a.conjugate()
(3-4j)
Python 内置了许多函数用于处理对象。函数 可以理解为通用的行为,一般带有 (参数列表)
调用其行为。
比如,求取复数 \(z\) 的模:
abs(z)
10.0
序列#
本次仅仅讨论几个常用的序列:字符串(不可变)、元组(不可变)和列表(可变)。
字符串#
Python 使用 字符串 记录对象的“语义”信息。字符串通常使用双引号、单引号等表示。如:
晓明 = '小马'
say = "小马,说 '你好!'"
字符串可以使用函数 print()
显示信息:
print(晓明)
小马
print(say)
小马,说 '你好!'
可能会有一些特殊字符,需要 \
进行转义:
ss = '你好\n世界'
ss # 直接显示,则换行符 `\n` 没有被转义
'你好\n世界'
# 使用 print 显示转义
print(ss)
你好
世界
还有一种情况,你不想将一些转义符号转义,可以使用原始字符串 r"..."
模式:
st = r'你好\n世界'
print(st) # 转义被忽略
你好\n世界
其实原始字符串,等同于将 \
“逃逸”:
st
'你好\\n世界'
有时,想要在字符串中嵌入变量,可以使用 f"...{变量}"
(被称为 格式字符串,此类字符串是 表达式,而不是常量):
h = 160 # 身高
小小 = f"小小的身高是 {h}"
print(小小)
小小的身高是 160
字符串的运算#
字符串也支持一些特殊的运算。比如,拼接:
'A' 'a'
'Aa'
'A' + 'a'
'Aa'
'A' * 5
'AAAAA'
如果字符串很长很长,可以使用如下方法拼接(以空白符分隔的多个相邻字符串或字节串字面值,可用不同引号标注,等同于合并操作):
('a'
'b'
'c')
'abc'
还有一种特殊的字符串,叫做文档字符串,使用 '''...'''
表示:
a = '''iter
djkf
fkd
'''
print(a)
iter
djkf
fkd
可以看出,字符串是自动换行的。此类字符串常用于注释代码块。
列表 & 元组#
使用 [...]
包裹的 Python 类型称为 列表;使用 (...)
包裹的 Python 类型称为 元组。不同项使用 ,
隔开。
例如:
四季 = ('春', '夏', '秋', '冬') # 元组
猫屋 = ['小猫1', '小猫2'] # 列表
print(四季)
print(猫屋)
('春', '夏', '秋', '冬')
['小猫1', '小猫2']
提示
元组的定义真正起作用的是 ,
。
2, 4, 's' # 这也是元组
(2, 4, 's')
集合#
- 集合
此类对象表示由不重复且不可变对象组成的无序且有限的集合。因此它们不能通过下标来索引。但是它们可被迭代,也可用内置函数
len()
返回集合中的项数。集合常见的用处是快速成员检测,去除序列中的重复项,以及进行交、并、差和对称差等数学运算。
集合分为两类:
例如:
字母集 = {'a', 'w', 'a', 'e', 'r'}
# 等价于 字母集 = set('a', 'w', 'a', 'e', 'r')
字母集
{'a', 'e', 'r', 'w'}
可以看到,已经自动去除重复项。
字典#
Python 使用字典表示对象之间的关系。表示方法有:
{key: value, key1: value2, ...}
键值对的形式dict
(key=value, key1=value2)
例如:
字母表 = {
'a': 'A',
'b': 'B'
}
字母表2 = dict(a='A', b='B')
字母表
{'a': 'A', 'b': 'B'}
对象的编号与类型#
一个 Python 对象的编号和类型是唯一的,可以分别使用 id()
与 type
获取其值。
比如:
h = 450 # 高度
地址 = id(h) # 获取标识符 h 的所在地址,即编号
地址
140045866078384
类型 = type(h) # h 的类型是整数 int
类型
int