第六天
1.程序用来表示运动状态的,而状态是用变量来表示的
2.数据类型l中可以改变的:列表和字典;不可以改变的有:字符串、元组、数字。
3.数据l类型中按照下表索引进行访问的有:列表、字符串、元组;映射访问的是:字典;直接访的是:数字,
4.数据类型中存放容器的是:列表、元组、字典;原子的是:数字和字符串。
5.集合是由不同的元素组成,里面的元素是无序的,并且里面的元素只能是数字、字符串、元组等数据类型。
6.由字符串转化成集合的方法是:set(字符串的变量名)注:如果由重复的元素删除。
NAME = 'jflkj' set_1 =set(NAME) print(set_1) 结果是 {'l', 'f', 'j', 'k'}
7.集合的灰魔法由:add (添加元素,但是每次只能添加一个元素);clear(清空集合中的所有元素,只剩下一个空列表);del(删除此集合)discard(删除集合中的元素,如果不存在不执行任何操作)
NAME = 'jflkj' set_1 =set(NAME) set_1.add('jflk') print(set_1) set_1.discard('f') print(set_1) 结果是 {'k', 'jflk', 'f', 'l', 'j'} {'k', 'jflk', 'l', 'j'}
NAME = 'jflkj' set_1 =set(NAME) set_1.clear() print(set_1) 结果是: set() NAME = 'jflkj' set_1 =set(NAME) del set_1 print(set_1) 结果是: Traceback (most recent call last): File "D:/python 程序/练习题.py", line 64, in <module> print(set_1) NameError: name 'set_1' is not defined
8. 集合里的操作:交(&)、并(|)、差(—)交叉补集(^)
python_1 = ['hrl','pd','oymk'] linux_1 = ['hrl','oymk','slx'] python_set =set(python_1) linux_set =set(linux_1) print(python_set,linux_set) v1 =python_set&linux_set 交操作是取两个共有的部分 v2 =python_set|linux_set 并操作是将两个集合中所有的元素放在一起并把重复的元素剔除 v3 =python_set-linux_set 差操作是前面一个元素的总元素减去共有的元素 v4 = linux_set-python_set 同上 v5 =linux_set^python_set 交叉补集是用所有的元素减去共有的元素 print(v1,v2,v3,v4,v5) 结果是: {'hrl', 'oymk', 'pd'} {'slx', 'hrl', 'oymk'} {'hrl', 'oymk'} {'slx', 'hrl', 'oymk', 'pd'} {'pd'} {'slx'} {'slx', 'pd'}
9.列表中的元素是允许重复的,怎样去除列表里相同的元素:1是使用for循环2.是使用集合;程序如下:‘
方案一 lie = ['fjk',123,'jfklj','fjk',123,'jfkl','jflk',3344,'kjkj'] li = [] for i in lie: if i not in li: li.append(i) print(li) 结果是 ['fjk', 123, 'jfklj', 'jfkl', 'jflk', 3344, 'kjkj'] 方案二: lie = ['fjk',123,'jfklj','fjk',123,'jfkl','jflk',3344,'kjkj'] li =frozenset(lie) list_li =list(li) print(list_li) 结果是 ['fjk', 'jfklj', 3344, 'kjkj', 'jflk', 123, 'jfkl']
10字符串的格式化:如果只有格式化的内容超过一个则需要使用括号括起来:并和字符串使用%s 数字使用%d浮点数使用%f(如果f前面有小数点则数字代表保留的位数,默认保留6位数字)
tp1 = 'iam %s,myhobbyis alex'%'lhf' print(tp1) tp2 = 'iam %s,myageis %s' %('lhf',15) print(tp2) print('percentage %.3f'%444.34556655) tp3 ='i am %(name)s ,age%(age)d'%({'name':'alex','age':15}) 字典的传入方式 结果是: iam lhf,myhobbyis alex iam lhf,myageis 15 percentage 444.346
11.第二种格式化的方式:
tp1 = 'i am {}, age {},{} '.format('seven',123,'alex') 第一种必须一一对应,元组里的元素可以多但是不能比前面个数少否则报错 tp2 = 'i am {0},age{1},{2}'.format('seven',234,'alex') 这个可以改变序号(注次序号是和后面元组的序号保持一致的) tp3 ='i am {name},age{age},really'.format(name= 'alkkjf',age=12) tp4 ='i am {name},age{age}really'.format(**{'name':'alkkjf','age':12}) (如果遇到**kwage形式则可以使用**字典变成上一个形式 tp5 = 'i am {:s},age {:d}'.format('seven',15) print(tp1,tp2,tp3,tp4,tp5) 结果是 i am seven, age 123,alex i am seven,age234,alex i am alkkjf,age12,really i am alkkjf,age12really i am seven,age 15
12.函数:
def test (x): def 是函数的关键字 test是函数名 括号里面是形参 #函数功能定义 x =x+1 代码块 return x 返回值
13.使用函数的好处:减少代码的重复率、保持代码的一致性、可扩展性好。
14.过程就是没有返回值的函数
15.在函数中如果没有return 则默认返回none
16.return的总结
1.返回值 =0 返回none
2.返回值=1 返回object
3.返回值多个 以元组形式返回
17.形参在调用时才分配空间看,调用结束后,释放内存空间,形参只在函数调用时有效,函数调用结束,返回主函数后,不能在使用形参
18实参可以时变量、常量、表达式、函数等
19.函数遇到return 就结束
20定义函数:
def test(x,y,z) 位置参数必须一一对应,如果多了或者少了都会报错 test(1,3,5) def test1 (x,y,z) 关键字参数,顺序可以颠倒 test1(y=1,x=3,z=4) def test2(x,y=2) 默认参数可以传入,也可以不传入 test2(3) test2(1,y=4)
21.
定义函数中函数组:元组或者列表
def test(x,*arge): print(arge) test(1,333,'fjkj',234) def test1(x,*arg): print(arg) test1(1,[11,33,'fkl','jfkj','jfklj']) def test2 (x,*argx): print(argx) test2(1,*['fjfklj','jfkj','j',333,555]) (*【】)代表的是将列表中的数遍地取出放到括号里 结果是 (333, 'fjkj', 234) ([11, 33, 'fkl', 'jfkj', 'jfklj'],) ('fjfklj', 'jfkj', 'j', 333, 555)
22.字典:
def test(x,**arge): print(arge) test(1,name='jfkj',age='jfj') def test1 (x,**arg): print(arg) test1(1,**{'name':'jfkj','age':354}) 结果是: {'name': 'jfkj', 'age': 'jfj'} {'name': 'jfkj', 'age': 354}