介绍
Python3中主要的内置类型为:数字、列表、字典、类、实例和异常。
通常使用到的基本数据类型有:
- 数字(
int
、float
、complex
):int
表示整数;float
表示浮点数;complex
表示复数,并用j
或J
表示虚数部分。
- 布尔值(
bool
):实际上bool
是int
的子类型,其只有两种取值(True
和False
),并支持直接与int
类型的变量做运算(True
表示为1,False
表示为0)。
- 文本字符串(
str
):用单引号''或双引号""包围的变量,表示文本。
- 二进制列(
bytes
):属于文本类型的高级数据类型,除了bytes
之外还有bytearray
等类型,一般形式是b''
。
- 列表(
list
、tuple
):被[]
包围的是列表list
,属于可变数据类型;被()
包围的是元组tuple
,属于不可变数据类型。
- 集合(
set
):被{}
包围的若干个数据,其中不能包含重复的元素。
- 字典(
dict
):被{}
包围的若干个数据,但是其中的元素形如a:b
,a
,b
分别是基本数据类型,表示一种映射。在一个字典内,不能存在相同的a
。
- 空值(
NoneType
):只有一个取值None
。
- 其他,例如“类和类的实例”、“异常”等。
可变类型和不可变类型
与Java类似,像int
、float
、bool
、str
、tuple
等类型的数据属于不可变数据类型;list
、set
、dict
属于可变数据类型。
- 不可变数据类型:变量被修改时,内存地址也发生改变;
- 可变数据类型:变量被修改时,直接在内存地址上修改,修改之后内存地址不会发生改变。
可以通过id()
函数获取变量的唯一标识值,以此来表征内存地址。
| id(object) |
| ''' |
| 返回对象的“标识值”,在此对象的生命周期中保证是唯一且恒定的。 |
| :param object: 变量。 |
| :rtype: int。 |
| ''' |
| a = 12 |
| print(id(a)) |
| a = 3 |
| print(id(a)) |
| b = 'str' |
| print(id(b)) |
| b += 'a' |
| print(id(b)) |
| |
| c = ['abcd', 'efg'] |
| print(id(c)) |
| c += ['hij'] |
| print(id(c)) |
对于可变数据类型的比较,在已经
获取变量的类型
Python中内置了函数type()
和isinstance()
来获取判断变量的类型。
| type(object) |
| ''' |
| 获取变量的数据类型。 |
| :param object: 变量。 |
| :return: 返回object的类型。 |
| ''' |
| |
| |
| print(type(10)) |
| print(type('python')) |
| print(type(True)) |
| isinstance(object, classinfo) |
| ''' |
| 判断变量的数据类型。 |
| :param object: 变量。 |
| :param classinfo: 类型。 |
| :return: True: object是classinfo或者其子类的实例。 |
| False: object不是给定类型的对象。 |
| ''' |
| |
| |
| print(isinstance('player', str)) |
| print(isinstance(12, int)) |
| print(isinstance(10, float)) |
| print(isinstance(True, int)) |
| print(isinstance(True + 1, int)) |
| print(type(True) == int) |
数字、布尔值以及运算符
布尔取值
None
、False
、任何数值类型的0(包括0
、0.0
、0j
)、空列表(''
、[]
、{}
、()
、range(0)
)等具有“空/假”意义的变量被判断为False
;其他值为True
。
基本运算
含义 |
Python表示 |
数学表示 |
备注 |
加 |
a + b |
a+b |
|
减 |
a − b |
a−b |
|
乘 |
a ∗ b |
a×b |
|
除 |
a / b |
a÷b |
返回float类型 |
整数除 |
a // b |
⌊a÷b⌋ |
返回int类型 |
取余 |
a % b |
a mod b |
|
乘方 |
a ∗∗ b |
ab |
|
比较运算
比较运算的返回值是bool
类型。
含义 |
Python表示 |
含义 |
Python表示 |
等于 |
a == b |
不等于 |
a != b |
小于 |
a < b |
大于 |
a > b |
小于等于 |
a <= b |
大于等于 |
a >= b |
赋值运算
含义 |
Python表示 |
解释 |
直接赋值 |
a = b |
|
加法赋值 |
a += b |
a=a+b |
减法赋值 |
a −= b |
a=a−b |
乘法赋值 |
a ∗= b |
a=a×b |
除法赋值 |
a /= b |
a=a÷b,返回float类型 |
整除赋值 |
a //= b |
a=⌊ab⌋,返回int类型 |
取模赋值 |
a %= b |
a=a mod b |
乘方赋值 |
a ∗∗ b |
a=ab |
海象运算 |
a := b |
Python3.8新增 |
位运算
含义 |
符号 |
含义 |
符号 |
按位与 |
& |
按位或 |
| |
按位异或 |
∧ |
按位取反 |
∼ |
左移 |
<< |
右移 |
>> |
逻辑运算
含义 |
Python表示 |
与 |
a and b |
或 |
a or b |
非 |
not a |
成员运算
Python表示 |
描述 |
in |
如果在指定的序列中找到值返回True,否则返回False。 |
not in |
如果在指定的序列中没有找到值返回True,否则返回False。 |
| 10 in [10, 11, 12] |
| 10 in ['10', '11', '12'] |
| 'a' in ('a', 'b') |
| 10 not in range(10) |
| [3] in [[1], [2], [3]] |
身份运算
Python表示 |
描述 |
解释 |
is |
判断两个标识符是否引用自同一对象 |
x is y,类似id(x) == id(y) |
is not |
判断两个标识符是否引用自不同对象 |
x is not y,类似id(x) != id(y) |
不推荐对int
、float
、str
类型使用成员运算符,比较关系尽量使用==
运算符。
| d1, d2 = [2, 3], [2, 3] |
| d = d1 is d2 |
| e1 = e2 = [3, 4, 5] |
| e = e1 is e2 |
| print(d, e, [2, 3] is [2, 3]) |
参考成员运算:
| a = [3] |
| b = [[1], [2], [3]] |
| print(a in b) |
内置数学函数
-
| abs(x) |
| ''' |
| 返回数的绝对值。 |
| :param x: 整数、浮点数或者任何实现了__abs__()的对象。 |
| :return: 绝对值;若x是复数,则返回模。 |
| ''' |
-
| all(iterable) |
| ''' |
| 若iterable的所有元素均为真值则返回True。 |
| :param iterable: 可迭代对象。 |
| ''' |
| |
| def all(iterable): |
| for element in iterable: |
| if not element: |
| return False |
| return True |
-
| any(iterable) |
| ''' |
| 若iterable中某个元素为真值则返回True。 |
| :param iterable: 可迭代对象。 |
| ''' |
| |
| def any(iterable): |
| for element in iterable: |
| if element: |
| return True |
| return False |
-
| max() |
| ''' |
| 返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。 |
| 如果有多个最大元素,则此函数将返回第一个找到的。 |
| ''' |
存在三种形式,这里给出两种: | max(iterable, *, key = None) |
| ''' |
| :param iterable: 如果只提供了一个参数,则其必须是非空可迭代对象(例如列表、字符串)。 |
| :param key: 可选关键字,指定排序函数。 |
| ''' |
| |
| |
| max(arg1, arg2, *args, key = None) |
| |
-
| min() |
| ''' |
| 返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。 |
| 如果有多个最小元素,则此函数将返回第一个找到的。 |
| ''' |
存在三种形式,类似于上述的max()
。
-
| pow(base, exp, mod = None) |
| ''' |
| 计算(base ** exp) % mod。 |
| :param base: 底数。 |
| :param exp: 指数。 |
| :param mod: 可选参数,对结果取模。 |
| |
-
| round(number, ndigits = None) |
| ''' |
| 返回number舍入到小数点后ndigits位精度的值。 |
| :param ndigits: 可选参数,默认None(返回最接近输入值的整数)。 |
| ''' |
其他数学函数
其他数学函数可以引入math
模块;随机值函数可以引入random
模块。
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统