武汉13期吴德军 发表于 2022-4-24 19:30:26

python函数

函数好处代码重复使用保存一致性,易维护函数定义规则函数代码块以def 关键字开头后面接函数标识名称和小括号(),名称不能用纯数字或python保留字符进行定义;不要以文件名命名不能出现特殊字符要简短且见名知意def 函数名():函数体def:通过def来定义函数顶格写def dcs(): 定义了一个函数名称叫dcs 函数名称可以自定义函数体 一个tab键也就是4个空格, 函数体中就是代码块def dcs1(a,b):#定义函数    print(a*b)#函数体def dcs2(a,b):#定义函数    print(a+b)#函数体dcs1(5,2)#调用函数自己来得到函数中的结果dcs2(5,2)#调用函数自己来得到函数中的结果#函数体中要有默认值def dcs1():   pass#占位符,函数体中一定要有值,没有则抛异常dcs1()#函数的调用不受规则约束,在任务位置都可以调用三种调用方式:第一种:def dcs1():    print("dcs13")   dcs1()第二种:主函数直接输入一个main可以关联出来,main 是主函数也是执行入口def dcs():#定义个函数    print('dcs13')def dcs1():    print("dcs15")if __name__ == '__main__':    dcs1()好处:可以在多个函数中调用其中的某一个函数第三种调用方式:模块调用def dcs1(a,b):    print(a*b)def dcs2(a,b):    print(a+b)        from xiaoliu import day6day6.dcs1(2,5)day6.dcs2(9,3)参数列表可以为空,即没有参数,也可以包含单个参数、多个参数、默认参 数、可变长参数、参数之间使用逗号分隔。形参:写在函数声明的位置的变量实参:在函数调用的时候给函数传递的值传参:给函数传递信息的时候将实参交给形参的过程称为传参#函数中带一个形参def dcs(name):#定义函数包含一个形参    print(name)#打印形参dcs("zhangsan")#函数调用并传入实参#函数中带多个形参def dcs(name,age):#定义函数包含一个形参    print(name,age)#打印形参dcs("zhangsan",18)#函数调用并传入实参#如果函数中有形参,函数调用的时候必须赋予实参,且实参个数一定是和形参对等,#一个形参只能有一个实参#带有默认参数def dcs(name="zhangsan"):#定义函数形参带有默认值    print(name)#打印形参dcs()#调用函数未传实参dcs("lisi")#调用函数传入实参#带有默认值的形参可以不用赋予实参,也可以赋予,赋予后会替换原本的默认值#带有默认值参数后面不能放形参def dcs(age,name="zhangsan"):    print(name,age)dcs(18)没有带默认值的形参一定要放在带有默认值参数的前面#多个默认参数def dcs(age=18,name="zhangsan"):    print(name,age)dcs(16,"xiaoli")可变长元组和可变长字典可变长元组: * 一个星号表示可变长字典:** 两个星号表示def dcs(*name):#把name这个形参变为可变长元组类型    print(type(name))#<class 'tuple'>    print(name)dcs()#可变类型可以赋予实参,也可以不赋予实参dcs(1,2,3,4,"zhangsan")#可变类型可以有多个实参#可变长类型的后面不能接普通形参# def dcs(*name,age):#   print(name,age)# dcs(1,2,3,4,"zhangsan")#抛异常因为age没有拿到实参#如果普通形参和可变长类型在一起,一定要放在可变长类型的前面# def dcs(age,*name):#   print(name,age)# dcs(1,2,3,4,"zhangsan")#可变长类型后面一定接的是默认值参数def dcs(*name,age=24):    print(name,age)dcs(1,2,3,4,"zhangsan")可变长字典 def dcs(**name):#定义一个函数,函数中有可变长字典    print(type(name))#<class 'dict'>    print(name)#{}dcs()#可变类型 在调用函数时可不赋予实参def dcs(**name):#定义一个函数,函数中有可变长字典    print(name)#{}dcs(name="zhangsan",age=18)#可变字典赋予实参时一定要满足符合字典的语法规则,否则会抛异常#键值对赋值的时候,键不用加引号,用等于号区分键值对def dcs(**name):#定义一个函数,函数中有可变长字典    print(name)d={'name':"zhangsan","age":18}dcs(**d)#通过** 把已知的字典进行赋值引用#可变长字典类型后不能带普通形参def dcs(**name,*age):    #可变长元组不能放在可变长字典后面        def dcs(*age,**name):    #可变长元组和字典同时存在只能将元组放在字典的前面    print(name,age)dcs(1,2,3,4,name="zhangsan")全局变量和局部变量a=200#全局变量def dcs():#定义函数    a=100#局部变量    print(a)#打印的局部变量100dcs()print(a)#打印的全局部变量200#函数体中有变量则优先引用函数中的变量,#如果函数体中没有变量则引用函数体外的全局变量#全局变量可以被任何函数方法引用#局部变量只能被当前函数本身来引用(如需要用可以用函数传递)#把局部变量变为全局变量a=200#全局变量def dcs():#定义函数    global a #把函数中的局部变量声明成为一个全局变量    a=100#局部变量    print(a)dcs()print(a)def dcs1():    print(a)#引用全局变量dcs1()函数传递return 返回语句def dcs1():#定义函数    a=100#局部变量    return a#返回值 把一个具体的结果赋予给函数就需要用到此方法def dcs2():#定义函数    #a=dcs1()#函数传递 第一种方式    c=50#局部变量    #c +=a    c +=dcs1()#函数传递 第二种方式    print(c)dcs2()def dcs1():#定义函数    a=100#局部变量    c=a/2#除法    return c #返回def dcs2():#定义函数    d=dcs1()#函数传递    d *=2#乘法    return dprint(dcs2())#100format格式化输出#默认顺序输出print("{}{}".format('hello',"duoceshi"))#设置指定索引位置输出print("{1}{0}".format('hello',"duoceshi"))#设置参数输出print("姓名:{name},招呼:{a}".format(a='hello',name="duoceshi"))#对字典进行格式化输出a={"name":'多测师',"url":"www.duoceshi.com"}b="公司名称:{name},网址:{url}".format(**a)print(b)zip函数list1=['name','age','url']list2=['laowang',18,'www.duoceshi.com']list3=list(zip(list1,list2))#通过zip函数打包后,用list函数转换为列表输出print(list3)#如果没有对应的值则不会进行打包print(dict(list3))#转换为字典open函数语法:open(file, mode),模式有r(只读),w(写入覆盖),a(写入追加)a =open('D:\test1\aa.txt')#路径有错误a1 =open('D:/test1/aa.txt')#第一种方法直接将\改为/a2 =open(r'D:\test1\aa.txt')#第二种方法在前面加上r 转译#读取文件 r表示读a =open("D:/xiaoliu12/dcs13.txt",'r',encoding='utf-8')#python默认的编码格式gbk,文件编码默认是utf-8,所以需要更改一下格式# a1=a.read()#read方法读取文件中的所有内容# print(a1)#test1test2test3# a2=a.readline()#读取文件中的第一行内容# print(a2)#test1a3=a.readlines()#获取文件中的所有内容并返回一个列表print(a3)#['test1\n', 'test2\n', 'test3\n', '武汉多测师13班万元户']#覆盖 wa =open("D:/xiaoliu12/dcs13.txt",'w',encoding='utf-8')l ='武汉13班大佬'#a.writelines(l)#替换掉文件中所有内容a.writelines("武汉多测师")#追加 aa =open("D:/xiaoliu12/dcs13.txt",'a',encoding='utf-8')l ='\n13班都是万元户'#(\n表示换行)a.writelines(l)#追加内容
页: [1]
查看完整版本: python函数