定义函数

#到目前为止,我们用的都是Python内置函数,这些Python内置函数的定义部分对我们来说是透明的。因此,我们只需关注这些函数的用法,而不必关心函数是如何定义的,Python支持自定义函数,即由我们自己定义一个实现某个功能的函数。下面是自定义函数的简单规则。
(1)、函数代码块以def关键词开头,后接函数标识符名称和圆括号“()‘;
(2)、所有传入的参数和自变量都必须放在圆括号中,可以再圆括号中定义参数;
(3)、函数的第一行语句可以选择性使用文档字符串,用于存放函数说明;
(4)、函数内容以冒号开始,并且要缩进;
(5)、return[表达式]结束函数,选择性返回一个值给调用方。不带表达式的return相当于返回None。
#Python定义函数使用def关键字,一般格式如下:
1 #! /usr/bin/python3
2 #-*- conding:UTF8 -*-
3 #def函数格式
4 
5 def 函数名(参数列表):
6     函数体
7 或者更直观的表示为:
8 def <name>(arg1,arg2,...argN):
9     <statements>
#函数的名字必须以字母开头,可以包括下划线”_“。和定义变量一样,不能把Python的关键字定义成函数的名字。函数内的语句数量是任意的,每个语句至少有一个空格的缩进,以表示该语句属于这个函数。函数体必须保持缩进一致,因为在函数中,缩进结束就表示函数结束。
#现在已经知道了定义函数的简单规则和一般格式了。下面进行实际操作,在示例中定义函数并调用:
1 #! /usr/bin/python3
2 #-*- conding:UTF8 -*-
3 #def函数格式
4  
5 def hello():
6 print('hello,world')
7 hello()
#在CMD命令下执行以上py文件,执行结果如下:
1 D:Pythonworkspace>python def_示例模板.py
2 hello,world
#需要注意以下几点:
(1)、没有return语句时,函数执行完毕也会返回结果,不过结果为None;
(2)、return None可以简写为return;
(3)、在Python中定义函数时,需保持函数体中同一层级的代码缩进保持一致。
#根据以上示例,是不是一个函数中只能有一条语句呢?除了输出操作,还能执行其他操作吗?
#在一个函数中可以输出多条语句,并能做相应的运算操作,以及输出运算结果。例如,定义输出多条语句的函数并执行。
 1 #! /usr/bin/python3
 2 #-*- conding:UTF8 -*-
 3 #def函数示例模板_1
 4 
 5 
 6 
 7 def printmore():
 8      print('该函数可以输出多条语句,这是第一条;')
 9      print('这是第二条;')
10      print('这是第三条。')
11 printmore() #调用函数
#执行结果如下:
1 =============== RESTART: C:/Users/DL He/Desktop/def_示例模板_1.py ===============
2 该函数可以输出多条语句,这是第一条;
3 这是第二条;
4 这是第三条。
#定义输出数字和计算的函数并执行:
 1 #! /usr/bin/python3
 2 #-*- conding:UTF8 -*-
 3 #def函数示例模板_2
 4 
 5 def mixoperation():
 6     a=10
 7     b=20
 8     print(a)
 9     print(b)
10     print(a+b)
11     print('a+b的和等于:',a+b)
12 mixoperation()
#执行结果如下:
1 =============== RESTART: C:/Users/DL He/Desktop/def_示例模板_2.py ===============
2 10
3 20
4 30
5 a+b的和等于: 30
#以上示例验证了前面的内容。
#如果想定义一个什么都不做的空函数,可以用pass语句,定义如下函数并执行:
1 #! /usr/bin/python3
2 #-*- conding:UTF8 -*-
3 #def函数示例模板_3
4 
5 def donothing():
6     pass
7 donothing()
#执行结果如下:
1 =============== RESTART: C:/Users/DL He/Desktop/def_示例模板_3.py ===============
2 >>> 
#执行结果为没有任何输出。
#pass语句什么都没有做,有什么用呢?实际上pass可以作为占位符,比如现在还没想好怎么写函数的代码,可以先放一个pass,让代码能运行起来。
#函数的目的是把一些复杂操作隐藏起来,用于简化程序的结构,是程序更容易阅读。函数在调用前必须先定义。
原文地址:https://www.cnblogs.com/DLHe/p/7753877.html