---恢复内容开始---
一、数据类型及变量总结
1、可变与不可变 修改变量的值,id可不可变
可变:id不变 列表,字典
不可变:id变了 字符串,数字,元祖
2、访问顺序
直接访问:数字
顺序访问(索引):字符串 列表 元祖
映射访问:字典
字典比列表速度快,但是占内存大
3、存放元素个数
容器类型:列表 元祖 字典
原子类型:数字 字符串
二、集合定义基本操作方法set
定义:不同元素组成的集合,是一组无序的,元素类型是不可变类型(数据字符串元祖)
s={1,2,3,33,8,9}
s=set{\'hello\'} 输出s {\'o\',\'e\',\'l\',\'h\'}
1.集合的内置方法
s={1,2,3,4,5,6}
1.添加 add
s.add(\'s\')
s.add(\'3\')
s.add(3)
print(s)
3.清空clear
s.clear()
print(s)
4.复制
s1=s.copy()
5.随机删pop
s.pop()
6.指定删除remove discard
s.remove(\'sb\')
s.remove(\'hellol\') #删除元素不存在会报错
s.discard(\'sbbbb\')#删除元素不存在不会报错
print(s)
2.集合的关系运算交叉并集
有一个笨方法
python_l=[\'lcg\',\'szw\',\'zjw\']
linux_l=[\'lcg\',\'szw\']
python_and_linux_l=[]
for p_name in python_l:
if p_name in linux_l:
python_and_linux_l.append(p_name)
print(python_and_linux_l)
python_l=[\'lcg\',\'szw\',\'zjw\',\'lcg\']
linux_l=[\'lcg\',\'szw\',\'sb\']
p_s=set(python_l)
l_s=set(linux_l
1.求交集&
print(p_s,l_s)
print(p_s.intersection(l_s))
print(p_s&l_s)
2.求并集|
print(p_s.union(l_s))
print(p_s|l_s)
3.差集
print(\'差集\',p_s-l_s)
print(p_s.difference(l_s))
print(\'差集\',l_s-p_s)
print(l_s.difference(p_s))
4.交叉补集^
print(\'交叉补集\',p_s.symmetric_difference(l_s))
print(\'交叉补集\',p_s^l_s)
python_l=[\'lcg\',\'szw\',\'zjw\',\'lcg\']
linux_l=[\'lcg\',\'szw\',\'sb\']
p_s=set(python_l)
l_s=set(linux_l)
print(p_s,l_s)
print(\'差集\',p_s-l_s)
p_s=p_s-l_s
p_s.difference_update(l_s)
print(p_s)
5.isdisjoint:如果s1与s2做交集运算,如果没有交集,就返回True
s1={1,2}
s2={2,3,5}
print(s1.isdisjoint(s2))
6.判断子集父级issubset issuperset
issubset:s1<=s2
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))#s1 是s2 的子集
print(s2.issubset(s1))#False
issuperset:s1>=s2
print(s2.issuperset(s1))#s1 是s2 的父集
7.更新update
s1={1,2}
s2={1,2,3}
s1.update(s2) #更新多个值
s1.add(1,2,3,4) #更新一个值
s1.union(s2) #不更新
print(s1)
8.frozenset 定义不可集合
s=frozenset(\'hello\')
print(s)
不考虑顺序进行列表去重
names=[\'alex\',\'alex\',\'wupeiqi\']
names=list(set(names))
print(names)
三、百分号字符串拼接
1.%s 万能 %d 数字
msg=\'i am %s my hobby is %s\' % (\'lhf\',\'alex\')
print(msg)
msg=\'i am %s my hobby is %s\' % (\'lhf\',1)
msg=\'i am %s my hobby is %s\' % (\'lhf\',[1,2])
print(msg)
name=\'lhf\'
age=19
msg=\'i am %s my hobby is %s\' % (name,age)
2.打印浮点数 percent &.f .后边的保留几位数字 默认保留六位数字
tpl = "percent %.2f" % 99.976234444444444444
3.打印百分比 %%
tpl = \'percent %.2f %%\' % 99.976234444444444444
4.传字典
tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18}
print(tpl)
5.%(names)[+-空格0]占有位数 s
+右对齐,正数前加正好,负数前加负号
—左对齐,正数前无符号,负数前加负号
空格右对齐,正数前加空格,负数前无符号
0左对齐,正数前无符号,负数前加负号,0填空白处
msg=\'i am %(name)+60s my hobby is alex\' %{\'name\':\'lhf\'}
6.加颜色
msg=\'i am \033[43;1m%(name)+60s\033[0m my hobby is alex\' %{\'name\':\'lhf\'}
四、format字符串格式化
tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
tpl = "i am {:s}, age {:d}".format(*["seven", 18])
tpl = "i am {:s}, age {:d}".format("seven", 18) #["seven", 18]
l=["seven", 18]
tpl = "i am {:s}, age {:d}".format(\'seven\',18)
print(tpl)
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%},{}".format(15, 15, 15, 15, 15, 15.87623, 2)
print(tpl)
b二进制 o八进制 d 整型 x小写十六进制 X大写十六进制 %百分号
五、函数
def test(x):
\'\'\'
2*x+1
:param x:整形数字
:return: 返回计算结果
\'\'\'
y=2*x+1
return y
def test():
\'\'\'
2*x+1
:param x:整形数字
:return: 返回计算结果
\'\'\'
x=3
y=2*x+1
return y
a=test()
print(a)
过程:就是没有返回值的函数
def test01():
msg = \'test01\'
print(msg)
def test(x,y,z):#x=1,y=2,z=3
print(x)
print(y)
print(z)
位置参数,必须一一对应,缺一不行多一也不行
test(1,2,3)
关键字参数,无须一一对应,缺一不行多一也不行
test(y=1,x=3,z=4)
混合使用的话:位置参数必须在关键字参数左边
test(1,y=2,3)#报错
test(1,3,y=2)#报错
test(1,3,z=2)
test(1,3,z=2,y=4)#报错
test(z=2,1,3)#报错
默认参数:
def handle(x,type=\'mysql\'):
print(x)
print(type)
handle(\'hello\')
handle(\'hello\',type=\'sqlite\')
handle(\'hello\',\'sqlite\')
def install(func1=False,func2=True,func3=True):
pass
参数组:**字典 *列表
def test(x,*args):
print(x)
print(args)
test(1,2,3,4,5) 输出args=(2,3,4,5) 当做元祖的方式来处理
test(1,{\'name\':\'alex\'})
test(1,[\'x\',\'y\',\'z\']) 整个列表变成了一个整体放入args里
test(1,*[\'x\',\'y\',\'z\']) 元祖方式处理
test(1,*(\'x\',\'y\',\'z\'))
def test(x,**kwargs):
print(x)
print(kwargs)
test(1,y=2,z=3)
test(1,1,2,2,2,2,2,y=2,z=3) 报错
test(1,y=2,z=3,z=3)#会报错 :一个参数不能传两个值
def test(x,*args,**kwargs):
print(x)
print(args,args[-1])
print(kwargs,kwargs.get(\'y\'))
test(1,1,2,1,1,11,1,x=1,y=2,z=3) #报错
test(1,*[1,2,3],**{\'y\':1})