这一次霖小白的主题分享是Python的使用函数。话不多说,进入正题。今天这一篇主要分享的是定义函数、还有函数的一些参数,思维导图后面再放上来。
1.函数基础
在编写python程序的过程中,可以将完成某个指定功能的语句提取出来,将其编写为函数,这样在程序中可以方便地调用函数来完成这个功能,并且可以多次调用、多次完成这个功能,而不必重复的复制粘贴代码。1.1定义函数
在python程序中,在使用函数之前必须先定义(声明)函数,然后才能调用它。在使用函数时,只要按照函数定义的形式,向函数传递必须的参数,就可以调用函数完成相应的功能,或者获得函数返回的结果。在python程序中使用关键字的可以定义一个函数,定义函数的语法格式:def(参数列表):return
在上述格式中,参数列表和返回值不是必需的,return后也可以不跟返回值,甚至连return也没有。如果return后没有返回值,并且没有return语句,这样的函数都会返回None值,有些函数可能既不需要传递参数,也没有返回值。在python程序中,完整的函数是由函数名、参数以及函数实现语句(函数体)组成的,在函数声明中,也要使用缩进以表示语句属于函数体,如果函数有返回值,那么需要在函数中使用return语句返回计算结果。我们可以总结出定义python函数的语法规则。函数代码块以def关键字开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性的使用文档,字符串----用于存放函数说明。
函数内容以冒号起始,并且缩进。
return[表达式]结束函数,选择性地返回一个值给调用方,不带表达式的return相当于返回None。
下面举一个小例子-----定义一个基本的函数def hello():
print("霖小白")
hello()霖小白
1.2调用函数
调用函数就是使用函数,在python程序中,当定义一个函数后,就相当于给了函数一个名称,指定了函数里包含的参数和代码块结构。完成这个函数的基本结构定义工作后,就可以通过调用的方式来执行这个函数,也就是使用这个函数。比如上面这一个例子就是前两行代码定义了函数hello(),最后一行代码调用了函数hello()不过还是来举一个小例子,计算元组内的元素的和def tpl_sum(T): # 定义函数tup_sum()
result = 0 # 定义result的初始值为0for i in T :# 遍历T中的每一个元素
result += i # 计算各个元素i的和return result # 返回计算值
print(tpl_sum((1,2,3,4))) # 计算元组内的元素的和
print(tpl_sum([3,4,5,6])) # 计算列表中的元素和
10
18
2.函数的参数
在python程序中,参数是函数的重要组成元素,Python中函数的参数有多种形式,在调用某个函数,既可以向其传递参数,也可以不传递参数,但是这都不影响函数的正常使用。2.1形参和实参
在前面的例子中,参数“ T ”是形参而“(1,2,3,4)”,“[3,4,5,6]”都是实参。在python中,形参表示函数完成其工作所需的一项信息,而实参是调用函数时传递给函数的信息。下面是调用函数时可以使用的正式实参类型。必需参数
关键字参数
默认参数
不定长参数
2.2必需参数
在Python中,必需参数也称为位置参数,在使用时必须以正确的顺序传入函数,在调用函数时,必须参数的数量必须和声明时的一样,在下面霖小白即将举例的错误代码中,在调用printme()函数时必须传入一个参数,不然会出现语法错误。def printme(str):
print(str)return
printme()TypeError Traceback (most recent call last)-8-f98d103ad94f> in 2 print(str)3 return
----> 4 printme()
TypeError: printme() missing 1 required positional argument: 'str'
2.3关键字参数
在python程序中,关键字参数和函数调用关系紧密,在调用函数时,通过使用关键字参数,可以确定传入的参数值,在使用关键字参数时,允许在调用函数时参数的顺序与声明时不一致,因为python解释器能够用参数名匹配参数值。下面咱们还是通过一个小例子来理解理解吧def printme(str):
print(str)return
printme(str = "霖小白")
霖小白
再来一个小例子def printinfo(name,age): # 定义一个函数printinfo()
print("名字:",name)
print("年龄:",age)return
printinfo(age = "永远18",name="霖小白")
名字: 霖小白
年龄: 永远18
从这个代码和运行的结果的顺序是不同的,所以不需要指定函数参数的顺序。2.4默认参数
当在python程序中调用函数时,如果没有传递参数,则会使用默认参数(也称为默认值参数)。在下面的实例中,如果没有传入参数age,则使用默认值。def printinfo(name,age=18): # 定义一个函数printinfo(),参数age的默认值是18
print("名字:",name)
print("年龄:",age)return
printinfo(age = 16,name="霖小白")
printinfo(name = "一本正经的霖小白") # 默认值
名字: 霖小白
年龄:16
名字: 一本正经的霖小白
年龄:18
2.5不定长参数
在python程序中,可能需要一个函数,能处理比当初声明时更多的参数,这些参数叫作不定长参数,不定长参数也称为可变参数。在自定义函数时,如果参数名前加一个星号“*”,则表示该参数就是一个可变长参数,在调用该参数时,如果依次序将所有的其他变量都赋予值之后,剩下的参数将会收集在一个元组中,元组的名称就是前面带星号的参数名。小实例贴上def displayinfo(var1, *varstr):
print(var1)for var in varstr:print (var)
displayinfo('霖小白', '关注', '在看')
霖小白
关注
在看
今天就到这里啦,最近因为霖小白在模拟数模,所以更新会比较慢一些,而且内容会相对少一些。记得给在看,点赞,分享哦