写在前边
仅作为学习之用,以作记录
错误
- 语法错误
- 运行时错误
- 语义错误
数据类型
python3中有6种标准的数据类型:
Number String List Tuple Sets Dictionary
Number
python3支持3种不同的数值类型:
int float complex(复数)
- 整型
正负数不带小数点,没有限制大小,可以当做
long
来使用;
/
计算结果为float
,//
计算结果为整数 - 浮点型
由整数部分和小数部分组成,也可使用科学计数法表示
整数与浮点数在计算机中的存储方式不同,整数的计算结果永远是精确的,浮点会有误差
- 复数
复数由实数部分和虚数部分组成.如a=1+2j
,实数:a.real
虚数a.imag
结果都为浮点型
数据类型转换
数据类型转换有以下函数:
int(x)
float(x)
complex(x), real = x, imag = 0
complex(x, y)
常量
常量用全部大写的变量名表示常量,
PI
E
内建序列
python有6种内建序列,
列表 元组 字符串 Unicode字符串 buffer对象 xrange对象
通用序列操作
python所有序列可进行一些特定操作
索引 分片 序列相加 乘法 成员资格 长度 最小值 最大值
索引
序列中的元素从0开始
分片
通过分片可对一定范围内的元素进行访问,分片通过冒号分割的两个索引实现
v[1:3] v[3:] v[-3:] v[:] v[0:10:2] v[10::-1]
序列相加
同类型的序列才能用
+
相加
乘法
用一个数字乘以一个序列会生成新的序列
成员资格
数字类型不能在字符串类型中通过检测,而字符串类型可以在数字序列中通过
in
进行检测
长度、最小值、最大值
内建函数
len(a) max(a) min(a)
列表
列表不同于字符串和元组的地方:列表的内容是可变的
更新列表
- 元素赋值
列表中的元素可以有不同的类型 但不能为一个不存在的位置进行赋值
- 增加元素
list.append(obj)
- 删除元素
del list[1]
- 分片赋值
list[1:]=list('1234')
,通过此方式可实现列表插入、删除、重新赋值等操作
嵌套列表
嵌套的列表取出来还是列表
str=[list('2222'), list('ssss')]
列表方法
append
列表末尾添加新对象
count
统计某个元素在列表中出现的次数
extend
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
str.extend(list('222'))
等价于str[len(str):]=list('222')
index
从列表中找出第一个匹配项的索引位置
insert
list.insert(index, obj)
指定位置插入指定元素pop
移除列表中的一个元素,默认最后一个元素,并返回改元素的值,
pop方法是为唯一一个既能修改列表又能返回元素值的列表方法
remove
移除第一次出现的指定元素
reverse
反转列表,改变列表的值但不返回列表,反向迭代使用
函数 reversed(list)
sort
对原列表进行排序,如果指定参数就使用参数指定的比较方法进行排序
list.sort(func)
clear
清空整个列表
copy
list.copy()
类似于a=b[:]
高级排序
sort接受两个参数一个为
key
一为reverse
,list.sort(key=len, reverse=True)
元组
元组的内容不能修改(字符串也不能修改),创建元组的方式:使用逗号分开一些值,会自动创建元组
tuple函数
tuple函数以一个序列作为参数,并把它转换为元组,如果参数是元组则原样返回
元组的基本操作
- 访问元组
使用下标访问元组中的值
- 修改元组
元组的元素值不允许修改,但可以将多个元组进行连接组合 - 删除元组
使用del
删除整个元组 - 元组索引、截取
元组也可以截取类似list
元组内置函数
len max min tuple
字符串
字符串使用
'
"
创建,两者无区别,所有标准序列操作对字符串同样适用;字符串是不可变的,所以不可分片赋值
。单引号输出需要使用转义字符\'
;
字符串格式化
字符串格式化使用操作符
%
实现print('it
s a %s !!!’ % ‘pen’)`
符号 | 描述 | 符号 | 描述 |
---|---|---|---|
%c | 格式化字符以及ASCII码 | %s | 格式化字符串 |
%d | 格式化整数 | %f | 格式化浮点数组,可指定精确值 %.2f |
%e或%E | 科学计数法格式浮点数 | %u | 格式化无符号整型 |
%o | 格式化无符号八进制数 | %x | 格式化无符号16进制 |
%X | 格式化无符号16进制数,大写 | %p | 用16进制数格式化变量的地址 |
字符串格式化元组
`print(‘%10s %.2f %10s’ % (‘历史’,92.234,’张三’)`字符串常用方法
myStr.find(d[, beg, end])
beg
end
默认 beg=1,end=字符串长度se.join(str)
把str
的字符串序列按照指定的连接符se
拼接,如'-'.join('abc')
结果a-b-c
myStr.upper()
转换为大写myStr.lower()
转换为小写myStr.swapcase()
大写转小写,小写转大写myStr.replace(old, new[, max])
将old替换为new,如果有max则最多替换max次myStr.split([se, num])
join
的逆方法;不带入参的时候根据空格
切分,可以指定分割符和分割次数myStr.strip([char])
去掉头尾的指定字符,默认为空格
myStr.translate(table)
替换,可以同时进行多个替换
joinStr = ' abcD|efaaa'
mapX = 'abcdef'
mapY = '123456'
transTab = str.maketrans(mapX, mapY)
print('%-10s : %s' % ('translate ', joinStr.translate(transTab)))
# translate : 123D|56111
字典
字典是一种可变容器,可通过名字引用值,是python的内建映射类型。语法:
d = {k1:v1, k2:v2}
,键是唯一的不可变的(字符串、元组、数字),值可以为任何类型。特性:
- 字典一个键出现两次后者会覆盖前者。
- 键必须不可变,可用字符串、数字、元组
- 消耗内存较多通过函数
dict
可以将其他类型建立字典dict([("A","1"), ("B","2")])
dict(name='A', number='1')
字典的基本操作
- 增加
myDic['新增']=1
- 修改
myDic['新增']=2
- 删除
del myDic['新增']
- 字典的格式化:
myDic = {"A":1, "B":2}
print('A 的值是 %(A)s'% myDic)
字典方法
clear()
清除字典元素copy()
浅复制dict.fromkeys(seq[, value])
创建一个字典,seq字典键值列表,value为每个键的初始值,默认None
myDic.get(key, default=None)
获取指定键的值,若无则返回默认值key in dict
'A' in myDic
, 返回True False
keys()
返回键的列表sedefault(key,value)
如果key
不存在则赋值为value
myDic.update(myDic2)
将myDic2中的键值添加到myDic中,相同覆盖,不同的新增myDic.values()
将字典中的值以列表的形式返回,列表中的值可以有重复