1.数据类型和变量总结
(1)五大基本数据类型:字符串 数字 列表 元组 字典
按元素可变不可变可分为:
可变:列表、字典
不可变:字符串、数字、元组
按访问顺序:
1.直接访问:数组
2.顺序访问:字符串、列表、元组
3.映射访问:字典(无序,但查询速度比较快,但占内存高,因为内部维护字典的映射关系)
按存放元素个数:
容器类型(可存放多个值):列表、元组、字典
原子:数字、字符串
2.集合(由不同元素组成(会去重复值),集合中是一组无序排列的可hash值,既不可变类型(数字、字符串、元组),可以作为字典的key)
定义字典 s={1,2,3,4,5} 或者 s=set(‘hello’) 输出时为: h l o e 无序的,内部做了一次for循环
s=set([‘alex’, ’alex’, ‘sb’])
print(s) 输出值为{‘alex’,’sb’}
3.集合内置功能
(1)add(添加) s.add(‘sb’)
(2)clear(清空)
(3)copy(拷贝一份) v=s.copy()
(4)pop(随机删除) s.pop()
(5)remove(指定删除) s.remove(‘sb’) 若没有这个元素 就会报错
(6)discard(指定删除) s.discard(‘ssss’) 若没有这个元素,不会报错
4.集合关系运算
1. 求交集
a={1,2,4,5,8}
b={2,3,4}
print(a.intersection(b)) 或者 print(a&b)
2.求并集
a={1,2,4,5,8}
b={2,3,4}
print(a.union(b)) 或者 print(a|b)
3.求差集
a={1,2,4,5,8}
b={2,3,4}
print(a.difference(b)) a有b没有的 print(a-b)
4.交叉补集
Print(a.symmetric_difference(b)) 或者 print(a^b)
双方除去交集
5.difference.update() 把a-b的差集赋值给a
Intersection.update() 把交集赋值给a
6.isdisjoint() 若两个集合交集为空,则返回True print(a.isdisjoint(b))
7.issubset() print(a.issubset(b)) 判断a是不是b的子集 True
Issuperset() 判断是否是父集
8.update() a.update(b) 更新多个值 把b有a没有的加入给a
9.集合是可变类型
如要不可变,有另一种设置方法 s=frozenset(‘hello’)
10.简单去重
a={1,2,3,2}
s=set(a)
print(s)
a=list(s)
a=list(set(a))
5.字符串格式化
字符串拼接
a=’I am %s ,I am from %s’ % (’chris’, ‘Shenzhen’) %s表示拼接一个字符串类型,万能,其他值的类型也可传输。%d 只能用来传输数字,最好对应,可读性较强
6,.打印浮点数(既小叔)
a=’percent is %.2f’ %99.2345
print(a)
.2表示保留两位小数 会四舍五入 基础为%f
7.打印百分比
a=’sgag %.2f %%’ 两个百分号
8.传输字典
a=’I am %(name)s %(age)d ’ %{‘name’:’chris,’age’:21}
9.百分号方式
- 左对齐
+ 右对齐
例子:a=’I am %-20s’ 左对齐缩进20个位置
如要加颜色: a=’I am 33[43;1m %-20s 33[0m’
10. format 字符串格式化
a=’I am {},age{}’.format(‘chris’,21) 这要一一对应,不可少
或者a=’I am {1},age{0}’.format(‘chris’,21) 此时值相反
或者字典的方式
a=’I am {name},age{age}’.format(name=‘chris’,age=21)
字典类型时:等同于a=’I am {name},age{age}’.format(**{name:‘chris’,age:21})
a=’I am {:s},age{:d}, d{:f}’.format( ‘chris’,21,99.6)
列表形式传输值时
a=’I am {:s},age{:d}.format(*[‘chris’,21])
11.定义函数(返回值可以是多个,以元组来承载)
def test(函数名) (x):
‘’‘’注释
X+=1 指代码块或程序处理逻辑
Return X
使用:
def test(x):
‘’
y=2*x+1
return y
a=test(3)
print(a) 此时输出结果就为7
11.定义一个过程
过程就是不包含返回值
12.函数参数 形参 实参
def test(x,y): 此时X Y就为形参 不占内存
a=x**y
return a
b=test(2,3)此时2,3就是实参 也称位置参数 与X Y一一对应
关键字参数 b=test(y=3,x=2) 此时XY就是关键字参数 无需一一对应 缺一不行多一不行
如果混合使用,位置参数必须在关键字参数左边
13.默认参数
def sql(x,y=’chris’): 此时y为默认参数,可以后期覆盖
print(x)
print(y)
sql(26,y=’joe’)
14.参数组 **字典(**kwargs) *列表(*args) 增加了可扩展性 可以不传值
def test(x,*a):
print(x)
print(a)
test('采集',2,453,54,{‘sfsag’:’sfg’})
若要传列表,且以原形式输出, 则需加* test(8,*[‘a’,’d’,’c’])
若要传多个值,以字典形式,可以用索引
def test(x,**kwargs):
print(x)
print(kwargs,kwargs[z])
test('采集',y=2,z=453,t=54) 记住一个参数不能传两个值
此时输出值为:
采集
{'y': 2, 'z': 453, 't': 54}
混合使用时:
Def test(x,*args,**kwargs) 顺序必须是这样,应为args接收的是位置参数 test(2,214,213,44,name=’fsf’,ss=’asggg’)
也可以这种方式 test(1,*[2,3,1],**{‘a’:2}