函数函数是代码的一种组织形式函数应该能够完成特定的工作,一般一个函数只完成一个工作在某些语言中,有函数和过程两个概念。通俗的解释是,有返回结果的称为函数,不返回结果的称为进程。Python不区分函数的使用。首先需要定义函数的使用。Space#2.函数名,自己定义,name需要遵循顺序的命名规则,作为约定,bighumpCase只用于classes#3.后面的括号和冒号不能省略,参数可以包含在thebrackets#4.函数中的所有代码都缩短了Enterdeffunc():print("Iamafunction")print("Lovelife")print("Thefunctionisover")函数结束了#函数调用#直接写函数名,后面的括号不能省略。括号里的内容视情况而定func()我是一个热爱生活的函数#函数定义deffunc():print('A')print('B')func()AB函数的参数和返回值parameters:负责传递给函数一些必要的数据或信息形参(formalparameter):定义函数时使用的参数,没有具体值,只是一个占位符号实参(actualparameter):调用函数时输入的值函数返回值:调用函数时的执行结果,使用return返回结果。如果没有返回值,我们推荐使用returnNone来表示函数结束。一旦函数执行return,函数立即结束。如果函数没有return关键字,函数默认返回None#参数有实参的情况#参数person只是一个符号#调用的时候用另外一个defhello(person):print("{},怎么样you?".format(person))returnNonep="XiaoMing"#Call函数需要将p作为实参传入hello(p)Xiaoming,howareyou?p="小吴"hello(p)小吴,你好吗?pp=hello("小七")print(pp)小七,你好吗?无#returncasedefhello(person):print("{0},howareyou?".format(person))return"Endearly!"print(1)p="小明"rst=hello(p)print(rst)小明,你好吗?提前关闭!#help负责随时为你提供帮助help(None)#相当于help(peint())helponbuilt-infunctionprintinmodulebuiltins:print(...)print(value,...,sep='',end='\n',file=sys.stdout,flush=False)将值打印到流,或默认打印到sys.stdout。可选关键字参数:file:类文件对象(流);默认为当前sys.stdout。sep:插入值之间的字符串,默认一个空格。end:在最后一个值之后附加的字符串,默认为换行符。flush:是否强制flush流。#九九多达表#version1.0foroinrange(1,10):#控制外循环从1到9foriinrange(1,o+1):#内循环,每次从第一个数字开始,打印到与行数相同的数字print(o*i,end="")print()12436948121651015202561218243036714212835424981624324048566491827364554637281帮助(打印)模块内置函数打印的帮助:打印(...)打印(值,...,sep='',end='\n',file=sys.stdout,flush=False)将值打印到流,或者默认打印到sys.stdout。可选的关键字参数:file:一个类似文件的对象(stream);默认为当前sys.stdout。sep:插入值之间的字符串,默认一个空格。end:在最后一个值之后附加的字符串,默认为换行符。flush:是否强制刷新流。#尝试使用打印九九乘法表的函数defjiujiu():foroinrange(1,10):#控制外层循环从1到9foriinrange(1,o+1):#内层循环,每次从第一个数开始,打印到与行数相同的数print(o*i,end="")print()returnNonejiujiu()jiujiu()1243694812165101520256121824303671421283542498162432404856649182736455463728112436294812016525612182821304361735424981624324048566491827364554637281#将上述函数de变换fprintLine(line_num):'''line_num;代表行号打印一行九九乘法表'''foriinrange(1,line_num+1):print(line_num*i,end="")print()defjiujiu():foroinrange(1,10):#控制外循环从1到9printLine(o)returnNonejiujiu()12436948121651015202561218243036714212835424981624324048566491827364554637281参数详细参考python参考:headfirstpython->零基础学习python(小乌龟),smoothpython->练习参数分类普通参数/positionalparameterDefaultparameterKeywordparametercollectionparameter普通参数c参考上例定义直接定义变量名调用时直接将变量或值放到指定位置def函数名(参数1,参数2,.....):Functionbody#调用函数名(value1,value2,...)#调用时,具体值指的是位置,th默认参数按位置分配。形参有默认值调用时,如果没有给相应的参数赋值,则使用默认值deffunc_name(p1=v1,p2=v2,...):func_blockcalls1func_name()calls2value1=100value2=200func_name(value1,value2)关键字参数语法deffunc(p1=v1,p2=v2....):func_body调用函数;func(p1=value1,p2=value2....)比较麻烦,但也有优点:容易混淆,一般实参和形参只是按照位置一一对应就够了,容易出错使用关键字参数,可以不考虑参数位置来收集参数把没有位置和不能对应定义的参数位置的参数放到具体的数据结构中语法deffunc(*args):func_bady按照List使用方式访问args获取传入参数调用:func(p1,p2,p3....)参数名args不一定要这样写,但是建议使用直接参数。参数名前习惯有星号argsNumber集合参数可以和其他参数共存#普通参数情况defnormal_para(one,two,three):print(one+two)returnNonormal_para(1,2,3)3#默认参数case1defdefault_para(one,two,three=100):print(one+two)print(three)returnNonedefault_para(1,2)default_para(1,2,3)310033#默认参数case2#注册函数,需要知道学生的性别#学python的同学基本上都是男生因此,如果注册时没有特别指定,我们认为是男孩defreg(name,age,gender="male"):ifgender=="male":print("{0}is{1},andheisagoodstudent".format(name,age))else:print("{0}is{1},andsheisagoodstudent".format(name,age))#calldefaultparameterfunctioncasereg("明月",21)reg("小静",23,"女")明月21岁,好学生小静23岁,好学生#关键字参数case1defkeys_para(one,two,three):print(one+two)print(three)returnNonekeys_para(one=1,two=2,three=30)keys_para(three=30,two=2,one=1)330330#关键字参数case2defstu(name,age,addr):print("我是学生")print("我叫{0},今年{1}岁,住在{2}".format(name,age,addr))n="jingjing"a=18addr="我家"#普通参数,只根据位置传,容易出错stu(a,n,addr)defstu_key(name="Noname",age=0,addr="Noaddr"):print("我是学生")print("我叫{0},今年{1}岁,住在{2}".format(name,age,addr))n="jingjing"a=18addr="我家"#普通参数,只根据位置传递,容易出错stu_key(name=n,age=a,addr=addr)我是student我18岁,今年晶晶岁,住在我家我是学生我叫晶晶,今年18岁,我住在我家#收集参数案例#函数模拟了一个student自我介绍一下,具体内容不清楚#args把他当做一个Listdefstu(*args):print("大家好,自我介绍一下,随便说几句:")#type的功能函数是检测变量类型print(type(args))foriteminargs:print(item)stu("柳营",18,"北京大通州区","wangxiaojing","single")stu("ZhouDashen")大家好,让我自我介绍一下:
