好创意网站有哪些方面,ui设计软件图标,地方商城网站,大兴智能网站建设哪家好一、函数的定义及调用
1.函数的定义#xff1a;
函数的定义#xff1a;函数是将一段能实现某种特定功能的代码#xff0c;使用函数名进行封装#xff0c;并通过函数名称进行调用。从而达到一次编写#xff0c;多次调用的目的。
2.函数类型分为两类#xff1a;
#…一、函数的定义及调用
1.函数的定义
函数的定义函数是将一段能实现某种特定功能的代码使用函数名进行封装并通过函数名称进行调用。从而达到一次编写多次调用的目的。
2.函数类型分为两类
1内置函数
输出函数print()
输入函数input()
列表定义函数list()
2自定义函数
def 函数名称参数列表:函数体[return返回值列表]
注函数名称是自己去定义的参数列表里面有多个参数。
注return不是必须需要的可以省略不写。
3.函数调用
函数名参数列表
注通过函数名进行调用函数。
注对函数的个个参数进行实际的赋值。
注使用实际参数参与函数功能的实现。 二、函数的参数传递
1.位置参数
1位置参数的定义是指调用时的参数个数和顺序必须与定义的参数个数和顺序相同。
2位置参数的运用
def happy_birthday(name,age):print(祝name生日快乐)print(str(age)生日快乐)#调用
happy_birthday(wjl,18)
2.关键字参数
1关键字参数的定义是在函数调用时使用”形参名称值“的形式进行传参传递参数可以与定义时的参数顺序不同。
2关键字参数的运用
def happy_birthday(name,age):print(祝name生日快乐)print(str(age)生日快乐)#关键字传参
happy_birthday(age18,namewjl)
#使用的关键字传参是打乱自定义函数中参数的顺序但是参数的关键字还是和对应的数据类型相对应happy_birthday(wjl,age18)
#函数调用的过程中位置传参和关键字传参是可以同时使用的。
#上面的两种传参方式的同时使用有个条件就是必须位置传参在前关键字传参在后。注使用的关键字传参是打乱自定义函数中参数的顺序但是参数的关键字还是和对应的数据类型相对应。
注函数调用的过程中位置传参和关键字传参是可以同时使用的。
注上面的两种传参方式的同时使用有个条件就是必须位置传参在前关键字传参在后。
3.默认值参数
1默认值参数的定义是在函数定义时直接对形式参数进行赋值在调用时如果该参数不传值将使用默认值如果该参数传值则使用传递的值。
注但是这里有一个输入参数的顺序必须是按照函数定义时的顺序传递。
2默认值参数的运用
def happy_birthday(namewjl,age18):print(祝name生日快乐)print(str(age)生日快乐)#调用
happy_birthday()#不用传参
happy_birthday(ljw)#位置传参
happy_birthday(age19)#关键字传参name采用默认值
3.可变参数
可变参数分为两种
1个数可变的位置参数在参数前加一颗星*parapara为形式参数的名称函数调用时可接收任意个数的实际参数并放到一个元组中。
个数可变的位置参数的运用
def fun(*para):print(type(para))for item in para:print(item)#调用
fun(10,20,30,40)
fun(10)
fun(10,20)
fun([10,20,30,40])#实际上传的是一个参数
#在调用时参数前加一颗星分将列表进行解包
fun(*[11,22,33,44]) 注个数可变的位置参数就是可以输入多个值将这些值一起输入到函数中输入的这些参数都是元组类型。
注将一个包含多个元素的列表作为实际参数输入fun函数只能将其整体看作一个参数。但是可以使用解包将其不被看做一个参数。
#在调用时参数前加一颗星分将列表进行解包
fun(*[11,22,33,44])
2个数可变的关键字参数在参数前加两颗星**para在函数调用时可接收任意多个”参数值“形式的参数并放到一个字典中。
注参数的类型是字典类型输入参数的时候要使用关键字传参得是赋值的形式这也就与其类型相对应上了因为参数输入到函数后的类型为字典型传参结构与构建字典时的结构就很相似。
注个数是可以发生改变的所以可根据自己的情况进行输入。 个数可变的关键字参数的运用
#个数可变的关键字参数
def fun2(**kwpara):print(type(kwpara))for key,value in kwpara.items():print(key,----,value)#调用
fun2(namewjl,age19,weight120)#关键字参数如果上面传参为一个字典时会出现异常我们就需要对这个字典进行解包操作。
5.讨论有关参数的混合使用的几个问题
关于参数这部分我们已经在前面提到过了有些参数是可以同时使用的比如在调用函数传递参数时我们使用到了位置参数和关键字参数同时使用的情况。
前面遇到混合使用参数的情况有以下几种情况 1在调用函数输入实际参数时我们用到了位置参数和关键字参数的混合使用。
happy_birthday(wjl,age18)
#函数调用的过程中位置传参和关键字传参是可以同时使用的。
#上面的两种传参方式的同时使用有个条件就是必须位置传参在前关键字传参在后。注函数调用的过程中位置传参和关键字传参是可以同时使用的。上面的两种传参方式的同时使用有个条件就是必须位置传参在前关键字传参在后。
在这个注意事项里为什么必须位置参数在前而关键字参数在后呢这是因为定义函数时我们把参数的顺序给定了下来这个参数好比就是通道传递一样这个只能是这个类型的参数不能是其他的类型。我们在考虑起那面说的位置传参在前关键字传参在后就印证了上面的说法因为前一个参数的类型是字符型而第二个参数类型是整型如果这两参数顺序搞错的化就会异常。
2在定义函数时我们能将位置参数和默认参数一起使用。
def fun(a,b20):pass 但是使用时要注意的是位参在前而默认参在后。
def fun(a,b20):passdef fun(a20,b):#报错了pass
#a位置参数b为默认值参数。
#在定义函数时位置参数和默认值参数可以混合的使用。
# 但是必须是位置参数在前默认值参数在后。这个底层逻辑和我们刚才讨论的一样也就是通道对应情况问题这个未知参数和实际参数是一一对应的不能将其顺序搞混了。再说回来为什么关键字可以交换顺序呢这是因为它采用的是一种给参数赋值的形式针对性就在那不用考虑对应问题。
三、函数的返回值
返回值的定义如果函数的运行结果需要在其他的函数中运用的话那么这个函数就应该被定义为带返回值的函数。
函数的运行结果使用return关键字进行返回。return可以出现在函数中的任意一个位置用于结束函数。返回值可以是一个值或多个值如果返回的值是多个结果是一个元组。
当返回值是一个的时候
#函数的返回值
def calc(a,b):print(ab)calc(10,20)
print(calc(1,2))#Nonedef calc2(a,b):sabreturn sprint(-*10)
get_scalc2(1,2)
print(get_s)get_s2calc2(calc2(1,2),3)
print(get_s2)当返回值是为多个的时候
注返回值为多个的时候返回的是一个元组类型的值。如果想一个一个获得返回值的话需要进行解包操作。
def get_sum(num):s0odd_sum0#奇数和even_sum0#偶数和for i in range(1,1num):if i%2!0:odd_sumielse:even_sumisireturn odd_sum,even_sum,s#三个值resultget_sum(10)
#解包就值
a,b,cget_sum(10)
print(a,b,c)四、变量的作用域
变量作用域的定义指变量起作用的范围根据作用的大小可分为局部变量和全局变量。
局部变量
定义在函数定义处的参数和函数内部定义的变量
作用范围仅在函数内部函数执行结束局部变量的生命周期也结束
全局变量
定义在函数外定义的变量或函数内部使用global关键字修饰的变量
作用范围在整个程序程序运行结束全局变量的生命周期才结束