python 高级语法 - 函数
2021/12/16 17:13:42
本文主要是介绍python 高级语法 - 函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言:
圆的面积计算公式为:
S = πr2
假设我们需要计算3个不同半径的圆的面积:
r1 = 1.1 r2 = 2.2 r3 = 3.3 s1 = 3.14 * r1 * r1 s2 = 3.14 * r2 * r2 s3 = 3.14 * r3 * r3
观察 s1,s2,s3 的计算过程,π 的值 3.14 是不变的,只是半径变而已,所以计算的过程中就会出现重复使用 π。
写一个圆面积计算函数:
def area_of_circle(x): return 3.14*x*x # x 为半径 r = area_of_circle(1.1) # 调用 area_of_circle 函数,只需要输入半径即可 print(r)
函数area_of_circle本身只需要写一次,就可以多次调用。
Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。
抽象
抽象是数学中非常常见的概念。举个例子:
计算数列的和,比如:1 + 2 + 3 + ... + 100,写起来十分不方便,于是数学家发明了求和符号∑,可以把1 + 2 + 3 + ... + 100记作:
100 ∑n n=1
这种抽象记法非常强大,因为我们看到 ∑ 就可以理解成求和,而不是还原成低级的加法运算。
而且,这种抽象记法是可扩展的,比如:
100 ∑(n2+1) n=1
还原成加法运算就变成了:
(1 x 1 + 1) + (2 x 2 + 1) + (3 x 3 + 1) + ... + (100 x 100 + 1)
可见,借助抽象,我们才能不关心底层的具体计算过程,而直接在更高的层次上思考问题。
函数的使用
- 定义函数
def 函数名(参数): 代码1 代码2 return 表达式
定义函数的过程中,需要注意以下几点:
- 函数代码块以def关键词开头,一个空格之后接函数标识符名称和圆括号(),再接个冒号。
- 任何传入的参数必须放在圆括号中间。
- 函数内容以冒号起始,并且缩进。
- 使用return结束函数。默认返回None。
- return语句依然在函数体内部,不能回退缩进。直到函数的所有代码写完,才回退缩进,表示函数体结束。
如何调用函数
函数写出来就是给其他地方调用的,要调用一个函数,必须使用函数名后跟圆括号的方式才能调用函数。
函数名(参数)
根据实际情况,参数可有可无。
先定义函数,后调用函数。
函数的参数作用
完成需求如下:完成两个数 3 和 5 的相加
# 定义函数 def add(): return 3 + 5 print(add()) # 调用函数
上诉函数只完成了 3 和 5 的相加,如果想要这个函数变得更灵活,可以计算任何用户指定的两个数字的和,要进行以下修改。
把两个值设置为变量
# 定义函数时同时定义了接收用户数据的参数a和b,a和b是形参 def add(a, b): return a + b print(add(3, 8)) # 调用函数的时候,需要传入两个参数,分别传给 a 和 b
- 形参:函数定义时书写的参数(非真实数据)
- 实参:函数调用时书写的参数(真实数据)
def add(a, b): return a + b x, y = 8 ,9 print(add(x, y)) # 17 使用变量,传递参数。 print(add(8, 9)) # 17 直接传递值也是可以的。
在上面的例子中,a,b叫做形式参数,简称形参。
而x,y和8,9 叫做实际参数,简称实参,也就是实际要传递的值。
我们通常讨论的参数,指的都是形参。
函数嵌套使用
def testB(): print('---- testB start----') print('这里是testB函数执行的代码......') print('---- testB end----') def testA(): print('---- testA start----') testB() # 调用函数testB print('---- testA end----') testA() """ 执行结果: ---- testA start---- ---- testB start---- 这里是testB函数执行的代码...... ---- testB end---- ---- testA end---- """
执行流程:
遇到函数不执行,调用函数才执行。
- 首先调用了函数 testA()
- 执行testA()函数的过程中,遇到函数 testB()
- 调用了函数 testB(),执行 testB()
函数的应用
计算三个数之和
def sum_num(a, b, c): return a + b + c result = sum_num(1, 2, 3) print(result) # 6
计算三个数的平均值
def sum_num(a, b, c): return a + b + c def average_num(a, b, c): sumResult = sum_num(a, b, c) return sumResult / 3 result = average_num(1, 2, 3) print(result) # 2.0
随机生成20个学生的成绩,判断这20个学生成绩的等级.
import random def get_level(score): if 90 < score <= 100: return '非常优秀' elif 80 < score <= 90: return '优秀' elif 60 < score <= 80: return '及格' else: return '不及格' def main(): # scores = [] # 生成所有的成绩; # for count in range(20): # scores.append(random.randint(1, 100)) for i in range(20): score = random.randint(1, 100) # 调用函数 level = get_level(score) print("成绩:%s, 等级: %s" % (score, level)) if __name__ == "__main__": main()
这篇关于python 高级语法 - 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Python编程基础
- 2024-11-01Python 基础教程
- 2024-11-01用Python探索可解与不可解方程的问题
- 2024-11-01Python编程入门指南
- 2024-11-01Python编程基础知识
- 2024-11-01Python编程基础
- 2024-10-31Python基础入门:理解变量与数据类型
- 2024-10-30Python股票自动化交易资料详解与实战指南
- 2024-10-30Python入行:新手必读的Python编程入门指南
- 2024-10-30Python入行:初学者必备的编程指南