本篇介绍常用内置对象。
本篇介绍常用内置对象。
目录
- 常量与变量
- 1.基本介绍
- 2.数字和字符串
- 3.列表、元组、字典、集合
- 4.运算符与表达式
- 其他常用内置函数
- 类型转换与类型判断
- 最值与求和
- 基本输入输出
- 排序与逆序
- range()
- eval()
- 枚举
常量与变量
1.基本介绍
在python中,不需要事先声明变量名及其类型,直接赋值即可创建任意类型的对象变量。变量的类型和值可以随时转化。
在赋值之后,想可以通过type()来查看变量的类型
# 执行dir(__builtins__)可以查看所有内置函数和内置对象
x=3
print(type(x))
#结果 <class 'int'>
在定义变量名时,注意以下问题:
1. python对英文字母大小写敏感
2. 不能用关键字作为变量名
3. 变量名中不能有空格或者标点符号
4. 变量名必须以字母或下划线开头
2.数字和字符串
数字:python支持任意大的数字(受内存限制)
字符串:python3.x全面支持中文,中文和英文字母都作为一个字符对待,甚至可以使用中文作为变量名
0.3+0.2==0.5
#结果 True
0.4-0.1==0.3
#结果 False
abs(0.4-0.1-0.3)<le-6 #这里le-6表示10的-6次方
#结果 True
#对str类型的字符串调用其encode()方法获得bytes字节串
#对bytes字节串调用其decode()方法并指定正确的编码格式则得到str字符串
在进行实数运算时应该尽量避免实数之间直接进行相等性测试
相反可以以两者之差的绝对值是否足够小作为两个诗书是否相等的依据
3.列表、元组、字典、集合
几种重要的序列分类示意图:
- 列表:是最重要的内置对象之一,包含若干元素的有序连续内存空间。
当列表增加或删除元素时,列表对象自动进行内存的扩展或收缩,保证相邻元素之间没有缝隙。应尽量从列表尾部进行元素的追加与删除操作。以下介绍列表的常用方法
- 增添元素append()、insert()、extend()
append(指定元素)用于向列表尾部追加一个元素
insert(指定位置,插入元素)用于向列表任意指定位置插入一个元素
extend([插入列表])用于在尾部追加多个元素或另一个列表
这三个方法都属于原地操作,不影响列表对象在内存中的起始地址 - 删除元素pop()、remove()、clear()
pop(指定位置)用于删除并返回指定位置上的元素
remove(指定位置)用于删除列表中第一个值与指定值相等的元素
clear()用于清空列表中的所有元素
同理不影响列表对象的内存地址 - count()、index()
count(指定元素)用于返回列表中指定元素出现的次数
index(指定元素)用于返回指定元素在列表中首次出现的位置 - sort()、reverse()
sort()用于按照指定规则对所有元素进行排序
reverse()用于将列表所有元素逆序或翻转 - copy()
返回列表的浅复制。所谓浅复制,是指生成一个新的列表并把原列表中所有元素的引用都复制到新列表中 - 切片
切片使用两个猫好分割的3个数字来完成
[start : end : step]
切片也得到的是列表的浅复制
- 元组:轻量级列表
如果元组中只有一个元素,必须在最后增加一个逗号
因为元组属于不可变序列,不可以直接删改元组中元素的值,也无法增加或删除元素。但是在python内部元组有大量优化,访问速度比列表更快 - 字典:反应对应关系的映射类型
- 集合:元素之间不允许重复
x_list=[1,2,3] #创建列表对象
x_tuple=(1,2,3) #创建元组对象
x_dict={'a':97,'b':12,'c':23} #创建字典对象
x_set={1,2,3} #创建集合对象
4.运算符与表达式
一般python运算符与其他运算符没有区别,可用圆括号()改变运算顺序
- 算术运算符
基本运算不做过多讲解,只讲解一些其他要点:
- python内部把True当做1处理,把False当做0处理
- 不支持字符与数字相加,会抛出异常
- ‘+’除了用于算数加法,还可用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接
- ‘*’除了用于算术乘法,还可用于列表、元组、字符串这几种序列,表示序列元素的重复。字典和集合不支持与整数相乘(元素不允许重复)
#算术运算符
True+3
#4
False +3
#3
'A'+1
#TypeError: can only concatenate str (not "int") to str
[1,2,3]+[4,5] #连接两个列表,其他同理
#[1,2,3,4,5]
[1,2]*3 #序列元素的重复,生成新的序列对象,其他同理
#[1,2,1,2,1,2]
- 关系运算符
在python中关系运算符可以连用,且操作数之间必须课比较大小。例如把字符串和数字进行大小比较是毫无意义的。
#关系运算符
1<3<5
#True
3<5>2
#True
1>6<8
#False
{1,2,3}<{1,2,4} #集合之间的包含测试
#False
- 位运算符
位运算符只能用于整数。位运算符将整数转换为二进制数,然后右对齐,必要时左侧补0,按位进行运算,最后再把计算结果转换为十进制数字返回。
- 移位计算:<<或>>
- 位与计算: &(全1为1,有0为0)
- 位或计算: |(有1为1,全0为0)
- 位异或运算:^(相同为0,不同为1)
#位运算符
3<<2 #将3换算成二进制11,左移两位为1100,再换算为十进制为12
#12
3&7 #3为011,7为111,按照每一位进行与计算得011,所以结果为3
#3
3|8 #3为0011,8为1000,按照每一位进行位或计算得1011,所以结果为11
#11
3^5
#6
- 集合运算符
集合的交集,并集,对称差集借助位运算符来实现。差集使用减号运算符实现。
#集合运算符
{1,2,3}|{3,4,5} #并集,自动去除重复元素
#{1,2,3,4,5}
{1,2,3}-{3,4,5} #差集
#{1,2}
- 逻辑运算符
and和or具有惰性求值得特点,当连接多个表达式时只计算必须要计算的值。
运算符and和or并不一定会返回True或者False,而是得到最后一个被计算的表达式的值
#逻辑运算符
3<5 or a>3 #虽然没有定义a,但是因为惰性求值的特点不需要考虑or之后的表达式
#True
3 and 5 #最后一个计算的表达式值作为整个表达式的值
#5
3 is not 5 #not的计算结果只能是True或是False之一
#True
其他常用内置函数
类型转换与类型判断
内置函数bin()、oct()、hex()用来将整数转换为二进制、八进制和十六进制。这三个函数要求参数必须为整数
内置函数int()用来将其他形式的数字转换为整数
内置函数float()用来将其他类型数据转换为实数
complex()可以用来生成复数
内置函数list()、tuple()、dict()、set()、frozenset()用来把其他数据转换为列表,元组,字典,可变集合和不可变集合。
内置函数type()和isinstance()可用来判断数据类型
最值与求和
内置函数max(),min(),sum()用于计算列表、元组或其他包含有限个元素的可迭代对象中所有元素的最大值、最小值和所有元素之和。
基本输入输出
imput()基本输入函数,不论用户输入什么内容一律按照字符串处理
print()基本输出函数
排序与逆序
sorted()函数对列表、元组和其他可迭代对象进行排序并返回新列表
range()
基本格式:range([start,]end[,step]),其中包含左闭右开区间[start,end)内以step为步长的整数
eval()
次函数用来计算字符串的值,也可用于实现类型转换的功能
枚举
enumerate()函数用来枚举可迭代对象中的元素,期中每个元素都是包含索引和值得元组。