其他分享
首页 > 其他分享> > 030 函数的定义与使用

030 函数的定义与使用

作者:互联网

目录


一、概述

二、函数的理解与定义

# DayDayUpQ4.py


def dayUp(df):
    dayup = 1
    for i in range(365):
        if i % 7 in [6, 0]:
            dayup = dayup * (1 - 0.01)
        else:
            dayup = dayup * (1 + df)
    return dayup


dayfactor = 0.01
while dayUp(dayfactor) < 37.78:
    dayfactor += 0.001
print("工作日的努力参数是:{:.3f} ".format(dayfactor))
工作日的努力参数是:0.019

2.1 函数的定义

函数是一段代码的表示

def <函数名>(<参数(0个或多个)>) :
    <函数体>
    return <返回值>

030-函数的定义与使用-01.jpg?x-oss-process=style/watermark

y = f(x)

三、函数的使用及调用过程

3.1 函数的调用

调用是运行函数代码的方式

def fact(n):  # 函数的定义
    s = 1
    for i in range(1,n+1):
        s *= i
    return s
fact(10)  # 函数的调用

3.2 函数的调用过程

030-函数的定义与使用-02.jpg?x-oss-process=style/watermark

四、函数的参数传递

函数可以有参数,也可以没有,但必须保留括号

def <函数名>(<非可选参数>,<可选参数>) :
    <函数体>
    return <返回值>

4.1 可选参数传递

030-函数的定义与使用-03.jpg?x-oss-process=style/watermark

4.2 可变参数传递

函数定义时可以设计可变数量参数,既不确定参数总数量

def <函数名>(<参数>,*args) :
    <函数体>
    return <返回值>
def fact(n, *args):
    """计算机n!乘数"""
    s = 1
    for i in range(1, n + 1):
        s *= i
    for item in args:
        s *= item
    return s


fact(10, 3, 5, 8)
435456000

4.3 参数传递的两种方式

函数调用时,参数可以按照位置或名称方式传递

def fact(n, m=1):
    s = 1
    for i in range(1, n + 1):
        s *= i
    return s // m
fact(10, 5)  # 位置传递
725760
fact(m=5, n=10)  # 名称传递
725760

五、函数的返回值

函数可以返回0个或多个结果

def fact(n, m=1):
    s = 1
    for i in range(1, n + 1):
        s *= i
    return s // m, n, m


a, b, c = fact(10, 5)
a, b, c
(725760, 10, 5)

六、局部变量和全局变量

030-函数的定义与使用-04.jpg?x-oss-process=style/watermark

030-函数的定义与使用-05.jpg?x-oss-process=style/watermark

6.1 规则1

规则1:局部变量和全局变量是不同变量

030-函数的定义与使用-06.jpg?x-oss-process=style/watermark

使用global后

030-函数的定义与使用-07.jpg?x-oss-process=style/watermark

6.2 规则2

规则2:局部变量为组合数据类型且未创建,等同于全局变量

030-函数的定义与使用-08.jpg?x-oss-process=style/watermark

030-函数的定义与使用-09.jpg?x-oss-process=style/watermark

6.3 使用规则

七、lambda函数

lambda函数返回函数名作为结果

<函数名> = lambda <参数>: <表达式>

等价于

def <函数名>(<参数>) :
    <函数体>
    return <返回值>
f = lambda x, y: x + y
f(10, 15)
25
f = lambda: 'lambda函数'
f()
'lambda函数'

7.1 lambda函数的应用

谨慎使用lambda函数

八、小结

标签:return,定义,函数,030,全局变量,def,lambda
来源: https://blog.51cto.com/u_13804357/2709923