1 def stu1(name = "No name", adr = "NO adr"): 2 print("name:{} adr:{}".format(name,adr)) 3 4 stu1(adr="adr") 5 stu1('adr') 6 7 def stu2(*args): 8 ''' 9 收集参数 10 ''' 11 for a in args: 12 print(a , end=" ") 13 print("") 14 15 stu2("lemon","百草路","大二") 16 17 def stu3(**kvargs): 18 ''' 19 关键字收集参数 20 ''' 21 for k,v in kvargs.items(): 22 print(k,"---",v,end = " ") 23 24 stu3(name="lemon",adr="百草路") 25 print() 26 27 def stu4(name ,*args , adr='NO adr' ,**kwargs): 28 print(name,adr ,end=' ') 29 for a in args: 30 print(a,end=' ') 31 for k,v in kwargs.items(): 32 print(k,'---',v,end=' ') 33 34 stu4('lemon','百叶计划',adr = 'adr', pc ='联想')
- 使用关键字参数调用函数时,参数顺序可以不一致
- 可以设置形参默认值,当没有传入参数时,使用这个默认值.
- *args收集参数,可以收集多余的参数
- **args关键字收集参数,可以收集多余的关键字参数
- 如果使用可变混合参数,请按 (参数 *args 关键字参数 **kwargs)的顺序使用,更多:https://www.cnblogs.com/harden13/p/8782782.htm
1 def up(): 2 ''' 3 利用global将局部变量提升为全局变量 4 ''' 5 a = 101 6 global a 7 a = 100 8 9 up() 10 print(a)
- global可以将局部变量提升到全局范围
- 全局声明前不可分配变量
1 a = [a for a in range(1,10)] 2 for num in a: 3 if(num == 5): 4 break 5 print(num) 6 else: 7 print("break") 8 9 10 print(" ") 11 12 for num in a: 13 if(num == 5): 14 continue 15 print(num) 16 else: 17 print("continue")
- for正常结束时(不受break影响),会执行else中的代码块
1 list = [1,'lemon',3,1] 2 print(list) 3 4 print('append():在末尾添加元素') 5 list.append(4) 6 print(list) 7 8 print('\ninsert(1,"百草路"):在第1处插入"百草路"') 9 list.insert(1,"百草路") 10 print(list) 11 12 print('切片list[1:5:2]:',list[1:5:2]) 13 print('切片list[2:10:]',list[2:10:]) 14 print('切片list[1:2]',list[1:2]) 15 16 17 print('\npop():删除最后一个元素') 18 list.pop() 19 print(list) 20 21 print('\ndel list[3]:删除第4个元素') 22 del list[3] 23 print(list) 24 25 print('\nremove("l"):移除匹配到的第一个1') 26 list.remove(1) 27 print(list) 28 29 print('\nlen(list):返回列表长度') 30 print(len(list)) 31 32 print('\nreverse():反向列表元素') 33 list.reverse() 34 print(list) 35 36 print('\nextend(序列):在列表后面追加序列元素') 37 list.extend(i for i in range(1,10)) 38 print(list) 39 40 print('\nsort():排序') 41 list.remove('百草路') 42 list.remove('lemon') 43 list.sort() 44 print(list)
- list有索引可以进行切片操作
- list可以收集不同类型的元素
- list可被修改
1 # dictionary元组 2 a = {'name' : 'lemon' , 'adr' : '百草路' ,} 3 print(a) 4 # Python3遍历 5 for k in a.keys(): 6 print(k,'----',a[k],end='') 7 print() 8 9 for v in a.values(): 10 print(k,end='') 11 print() 12 13 for k,v in a.items(): 14 print(k , '----' , v) 15 16 # 不允许key出现两次,出现多次最后一个key会被记住 17 b = {'name' : 'lemon' , 'name' : 'lemon-Xu'} 18 print(b) 19 20 # key的值必须是可哈希的,列表就不行 21 try: 22 c = {[1,] : '123'} 23 except : 24 print('list不可哈希') 25 26 27 c = {'name' : 'lemon' , 'adr' : '百草路'} 28 # 修改dictionary的值 29 c['name'] = 'lemon-Xu' 30 # 修改,如果没有key就添加一个 31 c['class'] = '6' 32 print(c) 33 34 # 删除 35 del c['name'] 36 print(c)
- dictionary,没有索引不可进行切片操作
- 多个kv队最后一个kv会被保存