目录
1、查看所有内置函数和内置对象:print(dir(_builtins_))
回顾:上章提到内置对象不需要做任何的导入操作就可以直接使用,那什么是内置对象?让我们一起来认识一下吧🧐
一、常用的内置数据类型
1、数据类型:特定类型的值及其支持的操作组成的整体
(1)整型对象支持加、减、乘、除、幂运算以及求余数;
(2)列表、元组、字符串支持与整数相乘;
(3)字典支持通过“键”作为下标获取相应的“值”;
2、内置对象
在Python中,一切都可以称作对象,包括整数、浮点数、复数、字符串和zip对象、map对象、range对象、生成器对象等内置函数,以及大量标准库对象和扩展库对象,自定义函数和类也可以称作对象
对象类型 | 类型名称 | 示例 | 说明 |
---|---|---|---|
数值 | int float complex | 88888888888 9.8,3.14,6.62e-34 5+6j,5j | 数值大小没有限制,且内置支持复数及其运算 |
字符串 | str | "I'm a Python student" "'Tom sai,"let's go.""' r'C:\Windows\note\notepad.exe | 使用单引号、双引号、三引号(三单引号或三双引号)作为定界符,不同定界符之间可以互相嵌套;前面加字母r或R表示原始字符串,任何字符串都表示字面含义,不再进行转义 |
字节串 | bytes | b'hello world' | 以字母b引导 |
列表 | list | [79,89,99] ['a',{3},(1,2),['e',2],{65:'A'}] | 所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型 |
元组 | tuple | (1,0,0) (0,) | 所有元素放在一对圆括号中,元素之间使用逗号分隔,元组中只有一个元素时后面的逗号不能省略 |
字典 | dict | {‘red’:(1,0,0),'green':(0,1,0),'blue':(0,0,1)} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值”,其中“键”不允许重复并且必须为不可变类型,“值”可以是任意类型的数据 |
集合 | set | {'bread','beer','orange'} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复且必须为不可变类型 |
布尔型 | bool | True,False | 逻辑值,首字母必须大写 |
空类型 | NoneType | None | 空值,首字母必须大写 |
异常 | NameError ValueError TypeError KeyError ...... | Python内置异常类 | |
文件 | f=open('test.txt','w',encoding='utf8') | 具有惰性求值的特点,空间占用小,适合大数据处理 | |
其他可迭代对象 | 生成器对象、range对象、zip对象、enumerate对象、map对象、filter对象等 | 具有惰性求值的特点,空间占用小,适合大数据处理 |
注意:
(1)Python属于动态类型编程语言(强类型编程语言),变量的值和类型随时可以发生改变
(2)变量不直接存储值,而是存储值的内存地址或者引用,同时变量类型随时可以改变,但每个变量在任意时刻的类型都是确定的
(3)可以不事先声明变量名及其类型,用复制语句可以直接创建任意类型的变量,其类型取决于等号右侧表达式值的类型
二、运算符与表达式
运算符 | 功能说明 |
---|---|
+ | 算术加法,列表、元组、字符串合并与连接,正号 |
- | 算术减法,集合差集,相反数 |
* | 算术乘法,序列重复 |
/ | 真除法 |
// | 求整商 |
% | 求余数 |
** | 幂运算 |
<、<=、>、>=、==、!= | (值)大小比较,集合的包含关系比较 |
and、or、not | 逻辑与、逻辑或、逻辑非 |
in | 成员测试 |
is | 测试两个对象是否为同一个对象的引用 |
|、^、&、<<、>>、~ | 位或、位异或、位与、左移位、右移位、位求反 |
&、|、^ | 集合交集、并集、对称差集 |
1、算术运算符
(1)算术运算符都是双目运算符,每个运算符可以与两个操作数组成一个表达式
(2)支持对相同或不同类型的数字进行混合运算,在对不同类型的对象进行运算时,会强制将对象的类型进行临时类型转换
①布尔类型进行算术运算时,被视为数值0或1
②整型与浮点型运算时,将整型转化为浮点型
③其它类型与复数运算时,将其它类型转换为复数类型
(3)+运算符:除了用于算术加法以外,还可以用于列表、元组、字符串的连接
(4)-运算符:除了用于整数、实数、复数之间的算术减法和相反数之外,还可以计算集合的差集
注意:在进行实数之间的运算时,有可能会出现误差
(5)*运算符:除了表示整数、实数、复数之间的算术乘法,还可用于列表、元组、字符串这几个类型的对象与整数的乘法,表示序列元素的重复,生成新的列表、元组或字符串
(6)/和//运算符:在Python中分别表示真除法和求整商。在使用时,要特别注意整除运算符(//)“向下取整”的特点
(7)%运算符:可以用于求余数运算,还可以用于字符串格式化,在计算余数时,结果与%右侧的运算数符号一致
(8)**运算符:表示幂运算,使用时应注意该运算符具有右结合性(如果有两个连续的**运算符,那么先计算右边的再计算左边的,除非使用圆括号明确修改表达式的计算顺序)
2、比较运算符
比较运算符同样是双目运算符,它与两个操作数构成一个表达式
3、赋值运算符
(1)将一个表达式或对象赋给一个左值,其中左值必须是一个可修改的值,不能为一个常量
(2)“=”是基本的赋值运算符,此外“=”可与算术运算符组合成复合赋值运算符
4、逻辑运算符
(1)or、and、not这三个关键字作为逻辑运算“或”、“与”、“非”的运算符
(2)or与and为双目运算符,not为单目运算符
5、位运算符
(1)程序中的所有数据在计算机内存中都以二进制形式存储,位运算即以二进制位为单位进行的运算
(2)主要有按位左移、按位右移、按位与、按位或、按位异或、按位取反这6种,如下图
6、运算符优先级
(1)默认情况下,运算符的优先级决定了复杂表达式中的哪个单一表达式先执行,但用户可使用圆括号“()”改变表达式的执行顺序
(2)运算符一般按照自左向右的顺序结合,赋值运算符的结合性为自右向左
7、关系运算符
8、成员测试运算符
in用于测试一个对象是否包含另一个对象
9、集合运算符
&交集,|并集,对称差集^,差集-
10、逻辑运算符
(1)常用来连接多个子表达式构成更加复杂的条件表达式
(2)false:0、0.0、0j、None、False、空列表、空元组、空字符串、空字典、空集合、空range对象或其他空的容器对象
(3)注意:and和or具有惰性求值或逻辑短路的特点,例子如下:
三、常用内置函数
1、查看所有内置函数和内置对象:print(dir(_builtins_))
2、常用的内置函数如下表所示:
函数 | 功能说明 |
---|---|
abs(x) | 返回数字x的绝对值或复数x的模 |
all(iterable) | 如果可迭代对象iterable中所有元素都等价于True,则返回True,否则返回False |
any(iterable) | 只要可迭代对象 iterable中存在等价于True的元素就返回True,否则返回 False |
bin(x) | 返回整数x的二进制形式,例如表达式 bin(3)的值是'0b11' |
complex(real, [imag]) | 返回复数,其中 real是实部,imag是虚部 |
chr(x) | 返回Unicode编码为x的字符 |
dir(obj) | 返回指定对象或模块obj的成员列表,如果不带参数,则返回包含当前作用域内所有可用对象名字的列表 |
enumerate(iterable[, start]) | 返回包含元素形式为(0. iterable[0]) ,(1, iterable[1]),(2,iterable[2]),...的可迭代对象,start表示索引的起始值 |
eval(s[,globals[,locals]]) | 计算并返回字符串s中表达式的值 |
filter(func, seq) | 使用函数 func描述的规则对seq序列中的元素讲行过滤,返回 filter对象,其中包含序列seq中使得函数 func返回值等价于True的那些元素 |
float(x) | 把整数或字符串x转换为浮点数 |
help(obj) | 返回对象 obj的帮助信息 |
hex(x) | 返回整数x的十六进制形式 |
input([提示]) | 接收键盘输入的内容,以字符串形式返回 |
int(x[,d]) | 返回浮点数x的整数部分,或把字符串x看作d讲制数并转换为十讲制整数,d省略时,默认为十进制 |
isinstance(obj,class-or-type-or-tuple) | 测试对象obj是否属于指定类型(如果有多个类型的话需要放到元组中)的实例 |
len(obj) | 返回对象obi包含的元素个数,适用于列表、元组、集合、字典、字符串以及range对象,不适用于具有惰性求值特点的生成器对象和map、zip等迭代对象 |
list([x])、set([x])、tuple([x])、dict([x]) | 把对象x转换为列表、集合、元组或字典并返回,或生成空列表、空集合、空元组、空字典 |
map(func, *iterables) | 返回包含若干函数值的 map对象,函数func的参数分别来自于 iterables指定的一个或多个迭代对象 |
max(...)、min(...) | 返回最大值、最小值,允许指定排序规则 |
next(iterator[, default]) | 返回迭代器对象iterator 中的下一个元素 |
oct(x) | 返回整数x的八进制形式 |
open(name[, mode]) | 以指定模式mode打开文件name并返回文件对象 |
ord(x) | 返回1个字符x的 Unicode编码 |
print(value,..., sep='',end='\n', file=sys.stdout,flush=False) | 基本输出函数,sep参数表示分隔符,end 参数用来指定输出完所有值后的结束符 |
range([start,] stop [, step]) | 返回具有惰性求值特点的 range对象,其中包含左闭右开区间[start,stop)内以step为步长的整数 |
reduce(func, seq[, initial]) | 将双参数的函数func 以迭代的方式从左到右依次应用至序列seq中每个元素,并把中间计算结果作为下一次计算的操作数之一,最终返回单个值作为结果。注意,在 Python 3.x中,reduce()不是内置函数,需要从标准库 functools中导入再使用 |
reversed(seq) | 返回seq中所有元素逆序后的可迭代对象 |
round(x[,小数位数]) | 对x进行四舍五入,若不指定小数位数,则返回整数 |
sorted(iterable, key=None,reverse=False) | 返回排序后的列表,其中 iterable表示要排序的序列或迭代对象;key用来指定排序规则或依据,默认为None;reverse用来指定升序或降序,默认为升序False |
str(obj) | 把对象obj直接转换为字符串 |
sum(x, start=0) | 返回序列x中所有元素之和,参数start 默认为0 |
type(obj) | 返回对象obj的类型 |
zip(seq1 [, seq2 [...]]) | 返回zip对象,其中元素为(seq1[i], seq2[i],...)形式的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个 |