字典
1 dict1 = {'name':'han','age':18,'class':'first'} 2 print(dict1.keys()) #打印所有的key值 3 print(dict1.values()) #打印所有的values值 4 print("dict1['name']:",dict1['name']) #打印name相对应的value值 5 print(dict1.get('name')) #通过字典的get方法得到name相对应的value值 6 7 dict1['age']=28 #字典的修改相当于重新赋值!!! 8 9 dict1['address']='beijing' #字典的增加是:dict[key] = value 这样的形式 10 11 del dict1['name'] #删除字典中的一个元素 12 dict1.clear() #字典的清空,返回一个空字典 13 # del dict1 #删除字典,字典就完全删除了
字典用法注意:
1、键是不允许相同的,如果相同,后面的会覆盖前面的
2、键是不可变的,所以只能用数字、字符串、元组来担当
1 dict2 = {(1,2):5,"元组":(4,5)} #字典里的元素只能用不可变的数据类型!!! 2 print(dict2) 3 print(dict2['元组']) 4 print(dict2[(1,2)]) 5 6 for i in dict2.keys(): #取出的数值更干净!!!谨记老师教导 7 print("字典中的key值为:",i) 8 for j in dict2.values(): 9 print("字典中的values值为:",j)
函数
1、函数的定义
函数是实现特定功能而封装起来的一组语句块,可以被用户调用
2、函数的分类
自定义函数;预定义函数(系统自带,lib自带)
3、使用函数的好处
降低编程难度、将大问题分解为若干小问题、可以多次调用
4、函数语法
定义
def 函数名字(参数):
函数体
return 语句 #不带表达式的return相当于返回none
调用
函数名字
以下是函数的几种:
1 #定义函数,函数名最好以_分割 2 def print_str(str): 3 print(str) 4 return 5 # 调用函数 6 print_str("调用一下")
1 # 函数传递 2 #所有参数在python里都是按引用传递 3 #一句话:要变都变!!! 4 def charge_me(mylist): 5 mylist.append([1,2,3,4]) 6 print("函数内取值:",mylist) 7 return 8 mylist = [10,20,30] 9 charge_me(mylist) 10 print("函数外取值:",mylist) #函数外和函数内打印是相同的!!!
1 #函数的赋值引用 2 def print_info(name,age=3): 3 print("name",name) 4 print("age",age) 5 return 6 # print_info(name="xiao",age=18) 7 print_info(age=50,name="xiao") #python中颠倒是可以的!!! 8 print_info(name='haha')
1 #函数的不定长参数 2 def p_info(arg1,*vartuple): 3 print("输出:",arg1) 4 for var in vartuple: 5 print(var) 6 return 7 p_info(10) 8 p_info(70,60,50,40,30)
1 #匿名函数lambda,了解即可 2 # 1、lambda只是一个表达式,而不是一个代码块,函数体比def简单很多。仅仅能在lambda表达式中封装有限的逻辑 3 # 2、lambda[arg1[,arg2,...argn]]:expression 4 sum1 = lambda arg1,arg2:arg1+arg2 5 print("相加后的值为:",sum1(10,20))
1 # return语句 2 def sum2(arg1,arg2): 3 total = arg1+arg2 4 print("函数内:",total) 5 return total #把total去掉之后返回none 6 abc = sum2(10,40) 7 print("函数外:",abc)
#全局变量和局部变量
#全局变量比较容易出问题,能不用就不用
1 total = 0 2 def sum3(a,b): 3 total = a+b 4 print("函数内(局部变量)的值为:",total) 5 return total 6 # total = sum3(10,400) 7 sum3(20,70) 8 print("函数外(全局变量)的值为:",total)
1 count = 1 2 def do_st(): 3 global count #全局变量:global 4 for i in (3,4,5): #循环三次 5 count += 1 6 # print(count) 7 do_st() 8 print(count) 9 # 思路:当count=1时进入循环+1并赋值给count 10 # 在for循环三次后为3+1=4 11 # count是全局变量,最后打印出的结果为4
小练习
# 不能创建字典的语句是C (字典中的元素不能以列表作为key)
# A、dict1 = {}
# B、dict2 = { 3 : 5 }
# C、dict3 = {[1,2,3]: “uestc”}
# D、dict4 = {(1,2,3): “uestc”}
#以下代码输出什么?输出的是6
# 思路:原始key的值为1,
# copy给另一个字典值为1,
# 重新赋值原来的字典值为5,
# 所以相加等于6
dict1={'1':1,'2':2}
theCopy=dict1.copy()
dict1['1']=5
sum=dict1['1']+theCopy['1']
print(sum)
# 合并生成新的字典
dict1 = {3:"c", 4:"d"}
dict2 = {1:"a", 2:"b"}
dict2.update(dict1) #更新添加dict1进dict2
print(dict2)
# 标准日期输出
a = "20170303"
b = a[:4]
c = a[4:6] #构思:通过列表分割的方式实现
d = a[6:]
print("格式化后输出的日期是:%s年%s月%s日"%(b,c,d))
无return函数,返回什么?
答:在函数中无return函数,返回none
如何在一个function里面设置一个全局的变量?
答:在函数体内定义一个全局的函数global
#随机生成验证码的两种方式:
1 import random 2 list1=[] 3 for i in range(65,91): 4 list1.append(chr(i)) #通过for循环遍历asii追加到空列表中 5 for j in range(97,123): 6 list1.append(chr(j)) 7 for k in range(48,58): 8 list1.append(chr(k)) 9 ma = random.sample(list1,6) 10 print(ma) #获取到的为列表 11 ma = ''.join(ma) #将列表转化为字符串 12 print(ma)
1 import random,string 2 str1 = "0123456789" 3 str2 = string.ascii_letters 4 str3 = str1+str2 5 ma1 = random.sample(str3,6) 6 ma1 = ''.join(ma1) 7 print(ma1) #通过引入string模块和random模块使用现有的方法