本人CSDN博客专栏:https://blog.csdn.net/yty_7
Github地址:https://github.com/yot777/Python-Primary-Learning
7.1 函数概述
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
Python提供了许多内建函数,比如print(),也可以自己创建函数。
创建函数的语法:
def 函数名 (参数名): #注意def关键字和参数名的括号后必须有冒号
函数体
return [返回值] #函数的返回值可以为空(类似于Java的void),也可以为1个或n个变量
调用函数的语法:
函数名(参数值)
或
变量1, 变量2, ...变量n = 函数名(参数值) #变量1, 变量2, ...变量n的个数就是函数返回值的个数,数据类型可以不相同
Python函数调用和返回值举例:
def funcPara(m):
n = 5 + m
s = 3 * n
t = s - 6
q = "Hello"*3
return n,s,t,q
if __name__ == '__main__':
#调用funcPara(m)函数并且输入的参数m的值为10,返回4个变量a,b,c,d
#a,b,c,d的顺序和funcPara(m)函数返回值的顺序n,s,t,q一一对应
a,b,c,d = funcPara(10)
#变量a对应funcPara(m)函数里面的n,执行n = 5 + m的计算
print("a=",a)
#变量b对应funcPara(m)函数里面的s,执行s = 3 * n的计算
print("b=",b)
#变量c对应funcPara(m)函数里面的t,执行t = s - 6的计算
print("c=",c)
#变量d对应funcPara(m)函数里面的q,执行q = "Hello"*3的计算
print("d=",d)
运行结果:
a= 15
b= 45
c= 39
d= HelloHelloHello
上面这个例子请初学者反复学习,揣摩,一定要掌握函数参数、变量、返回值的关系。
7.2 函数调用——传递不可变参数
不可变参数:类似C++的值传递,如整数、字符串、元组。
调用fun(a)的时候,传递的只是a的值,没有影响a对象本身。在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响a本身。
Python传递不可变参数举例:
def ChangeInt(n):
n = 10
return n
a = 2
print(a)
print(ChangeInt(a))
print(a)
运行结果:
2
10
2
Java传递不可变参数举例:
public class Test6 {
public static void main(String[] args) {
int a = 2;
System.out.println(a);
System.out.println(ChangeInt(a));
System.out.println(a);
}
public static int ChangeInt(int n){
n = 10;
return n;
}
}
运行结果:
2
10
2
7.3 函数调用——传递可变参数
可变类型参数:类似C++的引用传递,如 列表,字典。如fun(la),则是将la真正的传过去,修改后fun外部的la也会受影响
Python传递可变参数举例:
def ChangeList(mylist):
mylist.append([99]);
print(mylist)
return #ChangeList()函数无返回值
mylist = [10,20];
print(mylist)
ChangeList(mylist)
print(mylist)
运行结果:
[10, 20]
[10, 20, [99]]
[10, 20, [99]]
参考教程:
廖雪峰的Python教程
https://www.liaoxuefeng.com/wiki/1016959663602400
廖雪峰的Java教程
https://www.liaoxuefeng.com/wiki/1252599548343744
Python3 教程 | 菜鸟教程
https://www.runoob.com/python3/
如果您觉得本篇本章对您有所帮助,欢迎关注、评论、点赞!Github欢迎您的Follow、Star!