编程语言
首页 > 编程语言> > python 高级语法 - 函数

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)

可见,借助抽象,我们才能不关心底层的具体计算过程,而直接在更高的层次上思考问题。



函数的使用

  1. 定义函数
def 函数名(参数):
    代码1
    代码2
    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----

"""



执行流程:
遇到函数不执行,调用函数才执行。

  1. 首先调用了函数 testA()
  2. 执行testA()函数的过程中,遇到函数 testB()
  3. 调用了函数 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()

标签:----,return,函数,python,语法,testB,print,def
来源: https://www.cnblogs.com/wwho/p/15698320.html