学习python的第十三天(函数基础,函数返回值,函数调用的3中方式,形参与实参)
程序员文章站
2022-04-14 18:50:29
5.29自我总结 一.函数基础 1.什么是函数 2.函数的两个阶段 1.函数的定义 a)有参函数定义 在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。 如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。 b)无参函数 在函数阶段括号内没有参 ......
5.29自我总结
一.函数基础
1.什么是函数
在程序中,函数是具有种功能功能的工具
2.函数的两个阶段
1.函数的定义
a)有参函数定义
在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。
如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。
def 函数名(param1、param2……x=9): #其中paraml1与param2为函数的需要填入的值,x为默认参数 '''对于函数的描述''' 函数功能的描述信息 :param1:描述 :param2:描述 :return:返回值 #return除了返回值的作用还结束进程的作用,不会再接着往下运行 #定义的时候def内的代码块他只会检测代码的语法,语法错误会报错,不会运行里面的代码.
b)无参函数
在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。
如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。
def func(): print('hello nick') func() # hello nick
c)空函数
当你只知道你需要实现某个功能,但不知道该如何用代码实现时,你可以暂时写个空函数,然后先实现其他的功能。
def func(): pass
2.函数简单调用
a)有参函数的调用
def函数名(param1、param2……)) #默认参数可以不用填写,如果填写将覆盖原来参数值
b)无参函数的调用
func()
c)空函数的调用
func()
二.函数的返回值
为函数返回给的值:
如
def than_the_size(num_1,num_2): if num_1>num_2: print(num_1) else: print(num_2) print(than_the_size(3,2)) #这时我们终端看到的是none应为我们没有返回值,print打印只是给终端看的并没有返回值给函数,所有我们看不到值. #我们把print换成return def than_the_size(num_1,num_2): if num_1>num_2: return num_1 #return可以返回任何数据类型,但是只能返回一个 else: return num_2 print(than_the_size(3,2)) #这时候我们看到的返回的值是3,return是把值返还给函数并且停止函数下面的运行.
三.调用函数的三种方式
def max_self(x,y): if x>y: return x else: return y # 1. max_self(1,2) # 2. res = max_self(1,2)*12 # 3. max_self(max_self(20000,30000),40000)
四.形参和实参
1.形参
在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名。
def func(x, y,z=10,d=9): #其中x,y为位置形参,z为默认形参,x,y,z都为形参 print(x) print(y)
2.实参
在函数调用阶段括号内传入的参数,称之为实际参数,简称实参,本质就是变量的值。
func(1,2,z= 30) #其中1,2为实参,z为关键字实参 func(1,2,30) #其中 1,2,30为实参
注意事项
- 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
- 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
func(1,2, y=2) func(y=2, 1,2) # syntaxerror: positional argument follows keyword argument func(1,2,x, x=1) # nameerror: name 'x' is not defined
3.快速导入一串实参的方法
def func(x, y,z=10,d=10): print(x) print(y) print(z) print(d) words_list = [1,2,3,4,5,6,7] words_tuple = [1,2,3,4,5,6,7] func(*words_list) func(*words_tuple) #typeerror: func() takes from 2 to 4 positional arguments but 7 were given #导入的值的数量不能超过他形参的数量 def func(x, y,z=10,d=10): print(x) print(y) print(z) print(d) words_list = [1,2,3,4] words_tuple = [1,2] word_str = '11' words_dict = {'z':2,'d':10} func(*words_list) #将里面的元素安装从左往右全部以位置实参填入 func(*words_tuple) func(*word_str) func(*words_dict) #是以key填入 #成功打印,顺序是从左往右一一填入,位置实参可以以列表,元祖,字典,字符串形式填入 def func(x, y,z=10,d=10): print(x) print(y) print(z) print(d) words_list = [1,2,3,4] words_tuple = [1,2] words_dict = {'z':2,'d':10} func(*words_list,**words_dict) #func(*words_tuple) #typeerror: func() got multiple values for argument 'z',会报错 def func(x, y,z=10,d=10): print(x) print(y) print(z) print(d) words_list = [1,2,3,4] words_tuple = [1,2] words_dict = {'z':2,'d':10} #func(*words_list,**words_dict) func(*words_tuple,**words_dict) #正常打印,且字典里的键值对对应默认形参填入,写法是**+字典
上一篇: 一个asp快速字符串连接类
下一篇: 取得表单提交的所有数据