Python学习——函数及调用

经过之前Python学习——十分钟入门Python一文的学习相信大家对于Python都有了大概的了解。这节课芒果带大家一起来学习Python函数。

函数是带名字的代码块,用来完成某项具体任务的。当我们要执行函数定义的某个任务时,调用该函数即可,不用再反复编写该代码了。

定义函数

Python用def关键字来告诉Python我们将要定义一个函数,后面跟函数名以及参数等,定义以冒号结尾(注意:Python是以缩进来识别语句范围,而不是C系的花括号{})。

例1:

1#定义一个打印"Hello testops!"的函数
2def hello():
3    print("Hello testops!")
4
5#调用函数
6hello()
7
8#显示结果
9Hello testops!

函数参数

当我们的函数需要一定的参数值来被函数体使用时,我们就需要向函数传递参数了。

例2:

1#定义一个传入name来打印Hello name值的函数
2def hello(name):
3    print("Hello " + name + "!")
4
5#调用函数,传入name值为”testops”
6hello("testops")
7
8#显示结果
9Hello testops!

这里说明一下函数定义时,括号里的参数(例子中的name)为形参,而调用时用到的值为实参(例子中的”testops”)。

位置参数

当我们调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的对应形参。为此最简单的关联方式就是按照参数的顺序,也就是位置参数。

例3:

1#定义一个可以传入name和age的函数,用来打印某人的年龄
2def print_info(name,age):
3    print(name + " is " + str(age) + " years old!")
4
5#调用函数,传入name为Mango,年龄为18
6print_info("Mango",18)
7
8#显示结果为
9Mango is 18 years old!

这里需要注意一下,我们在调用时,第一个参数必须为姓名,第二个参数必须为年龄,这样才是形参与实参位置对应。还有就是因为age为int型,所以需要强转为字符型。ps:芒果确实只有18岁

默认参数

在编写函数时,我们可以给形参指定默认值。在调用函数时,如果我们给该参数提供了实参时,函数使用该参数,否则使用形参的默认值。

例4:

1#为定义一个可以传入name和age的函数,用来打印某人的年龄,age设置默认值为18
2
3def print_info(name,age=18):
4    print(name + " is " + str(age) + " years old!")
5
6#调用函数,传入name为Lemon,年龄为20
7print_info("Lemon",20)
8#调用函数,传入name为Mango
9print_info("Mango")
10
11#显示结果为:
12Lemon is 20 years old!
13Mango is 18 years old!

这里我们要注意一点,默认参数要放在位置参数后面。

关键字参数

关键字参数是指传递给函数时,实参与形参关联起来了,这样不按照顺序传参数也不会出错。

例5:

1#定义一个可以传入name和age的函数,用来打印某人的年龄
2def print_info(name,age):
3    print(name + " is " + str(age) + " years old!")
4
5#调用函数,传入name为Mango,年龄为18
6print_info("Mango", 18)
7
8#调用函数,传入name为Mango,年龄为18
9print_info(name="Mango", age=18)
10
11#调用函数,传入name为Mango,年龄为18
12print_info(age=18, name="Mango")
13
14#显示结果为:
15Mango is 18 years old!
16Mango is 18 years old!
17Mango is 18 years old!

通过例子我们可以看到,当实参与形参关联后,不按照顺序也不会出错。ps:Mango is 18 years old!重要的事情说三遍

可变参数

在Python中,函数可以传递可变参数,可变参数是指实参的个数是可变的,在这里只需要将形参前面加上*,则表示实参为可变参数。

例6:

1#定义一个将传入的参数求和的函数
2def mysum(*nums):
3    sum = 0
4    for num in nums:
5        sum = sum + num
6    print(sum)
7
8#调用函数,传入的变量值为1、3、5、7、9
9mysum(1,3,5,7,9)
10#调用函数,传入变量为一个列表
11n = [2,4,6,8,10]
12mysum(*n)
13#调用函数,传入变量为一个元组
14n1 = (2,4,6,8,10)
15mysum(*n1)
16
17#显示结果为:
1825
1930
2030

这里要注意一下,如果默认参数与可变参数同时存在,可变参数放在默认参数后面。

可变关键字参数

有时候函数需要接受任意数量的实参,但是预先不知道会传递什么样的值给函数。这时候我们就需要将函数编写成能够接受任意数量的键-值对,这就是可变关键字参数。在这里只需要将形参前面加上**,则表示实参为可变关键字参数。

例7:

1#定义一个将任意学生信息打印出来的函数
2def student_info(**info):
3    print("student info:")
4    for k,v in info.items():
5        print(str(k) + ": " + str(v))
6
7#调用函数,传入的变量值为name="Mango",age=18,city="changsha"
8student_info(name="Mango",age=18,city="changsha")
9
10#调用函数,传入一个字典
11info = {"name":"Lemon","age":20,"city":"shanghai","height":170}
12student_info(**info)
13
14#显示结果为:
15student info:
16name: Mango
17age: 18
18city: changsha
19
20student info:
21name: Lemon
22age: 20
23city: shanghai
24height: 170

返回值

函数并非总是直接输出,一般它总是处理一些数据,返回一个或者一组值,这个或者这组值被称为函数的返回值。在函数中用return将值返回到函数的代码行。

返回一个值

例8:

1#定义一个将传入的参数求和的函数
2def mysum(*nums):
3    sum = 0
4    for num in nums:
5        sum = sum + num
6    return sum
7
8#调用函数,传入参数为一个列表
9n = [2,4,6,8,10]
10#获取返回值,并打印
11sum = mysum(*n)
12print("数值和为:" + str(sum))
13
14#显示结果为:
15  数值和为:30

返回多个值

例9:

1#定义一个传入的姓和名字分别返回函数
2def split_name(name):
3    #将传入的姓名用空格分开
4    temp = name.split(" ")
5    if len(temp)>=2:
6        first_name = temp[0]
7        last_name = temp[1]
8    return  first_name,last_name
9
10#调用函数
11name = "Han Meimei"
12first_name,last_name = split_name(name)
13#获取返回值,并打印
14print(name +"\'s" + "first_name is " + first_name)
15print(name +"\'s" + "last_name is " + last_name)
16
17#显示结果:
18"Han Meimei'sfirst_name is Han"
19"Han Meimei'slast_name is Meimei"

这里需要注意一下,Python返回值为多个时,返回的其实是一个列表,不相信的同学可以打印一下试试看哟~

好了关于Python函数、函数调用、参数以及返回值的介绍就到这里啦,大家学得怎么样呢?有疑问或者想要学习更多Python相关知识的话可以加芒果微信,一起讨论学习哟~

点击原文可以到达我们Python自动化课程学习的目录哟

TestOps|测试运维

精益技术 赋能过程

(0)

相关推荐