《python学习笔记》 第六节:函数

注:本笔记来自B站黑马程序员的Python课程

第六节:函数

第一节:Python介绍
第二节:pycharm的基本使用
第三节:基础语法
第四节:分支语句



一、函数

1、概念

函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊的功能的代码集。

2、作用

使用函数可以加强代码的复用性,提高程序编写的效率。

二、函数定义

1、函数的使用

函数必须先创建才可以使用,该过程称为函数定义,函数创建后可以使用,使用过程称为函数调用。

定义格式一:

def 函数名():
    函数体
    ……

调用格式一:

函数名()

调用格式一:
函数名()

例如:

def say():
    print("hello world")
    print("hello python")
say()

2、定义规则

函数必须先定义,后调用,否则程序将报错。

3、调用规则

函数定义部分的代码仅用于声明函数,调用时才实际执行函数内容。

三、函数调用过程分析

print("开始")
def say():
    print("1")
    print("2")
    print("小结")
say()
print("函数第一次执行完毕")
say()
say()
print("结束")

四、文档注释

1、文档注释

文档注释可以为函数添加功能说明,方便开发者查阅函数相关信息

2、例如

"""
演示文档注释使用
"""

def say_hello():
    """打印hello python"""
    print("hello world")

def sum_1_100():
    """用于计算1到100的和"""
    i = 1
    sum = 0
    while i <= 100:
        sum += i
        i += 1
    print(sum)
    
say_hello()       #按住Ctrl然后放到这里就能看到它的注释
sum_1_100()       #按住Ctrl然后放到这里就能看到它的注释

五、函数定义—参数

定义格式二:

def 函数名(参数):
    函数体
    ……

调用格式二:

函数名(参数)

例如(单个函数)

def sums(a):  
    """用于计算1到指定数字的和"""
    i = 1
    sums = 0
    while i <= a:
        sums += i
        i += 1
    print(sums)


sum(10)

例如(多个函数)

def add(a,b):
    print(a+b)
    
add(3,4)

六、形参与实参

1、形参

形参是函数定义时规定的函数,仅在函数体内有效

2、实参

实参是函数调用时使用的参数,该值将传递给函数

3、注意

调用函数时,实参的数量必须与形参的数量一一对应,否则将报错

七、完成“最大值”函数程序

1、要求

任意给出两个数字,可以打印最大的数字值

2、思考
  • 选用何种函数的定义格式?
  • 是否具有参数?如果有设置几个参数?
  • 得到最大值后做什么事情?
3、分析
  • 函数必须使用带参数的定义格式,两个参数 def(2个参数)
  • 作比较,求出最大的值
  • 打印最大的值
4、代码
def dx(a,b):
    if a > b:
        print(a)    #如果a>b成立,输出a
    else :
        print(b)    #否则,输出b

dx(3,2)

八、作用域

1、参数的作用域

(1)函数定义的参数(形参)从定义位置开始到定义结束位置有效

(2)函数间不能共享参数(形参)

(3)例如

def max2 (num1, num2):
    if num1 > num2:
        print("%d和%d中的较大的数字是%d"% (num1,num2,num1))
    else:
        print("%d和%d中的较大的数字是%d"% (num1, num2, num2))

def min2(num1, num2):
    if num1 < num2:
        print("%d和%d中的较小的数字是%d" % (num1, num2, num1))
    else:
        print("%d和%d中的较小的数字是%d" % (num1, num2, num1))

max2(1,2)
min2(3,4)

2、变量的作用域

(1)局部变量

函数内部定义的变量从定义位置开始到函数定义结束位置有效

(2)全局变量

函数外部定义的变量在整个文件中有效

(3)注意

①函数间不能共享内部定义的变量,函数内部定义的变量只在函数内部有效

例如(反例)
def max2 (num1, num2):
    a = 10
    print(b)
    if num1 > num2:
        print("%d和%d中的较大的数字是%d"% (num1,num2,num1))
    else:
        print("%d和%d中的较大的数字是%d"% (num1, num2, num2))

def min2(num1, num2):
    b = 20
    print(a)
    if num1 < num2:
        print("%d和%d中的较小的数字是%d" % (num1, num2, num1))
    else:
        print("%d和%d中的较小的数字是%d" % (num1, num2, num1))

max2(1,2)
min2(3,4)

②函数间可以共享全局定义的变量,函数全局定义的变量在函数全局有效

例如
def max2 (num1, num2):
    print(b)
    if num1 > num2:
        print("%d和%d中的较大的数字是%d"% (num1,num2,num1))
    else:
        print("%d和%d中的较大的数字是%d"% (num1, num2, num2))

def min2(num1, num2):
    print(a)
    if num1 < num2:
        print("%d和%d中的较小的数字是%d"% (num1,num2,num1))
    else:
        print("%d和%d中的较小的数字是%d" % (num1, num2, num1))

a = 20
b = 30

max2(1,2)
min2(3,4)

3、全局变量与局部变量的冲突

如果局部变量与全局变量冲突,通过global关键字可以提升局部变量为全局变量,先声明再使用

(1)语法格式
global 变量名
(2)不加global函数,优先使用局部变量

例如

def test():
    x = 10
    print(x)

x = 20
test()
print(x)
(3)加入global函数,优先使用全局变量

例如

def test():
    global x
    x = 10
    print(x)
    
x = 20
test()
print(x)

九、返回值

定义格式三

def 函数名(参数列表):
    函数体
    return 函数运行结果返回值

调用格式三

变量名 = 函数名(参数列表)

例如:

def add(a,b):
    return a + b


def div(a,b):
    return a / b


c = add(1000,2000)
print(c)
d = div(c,2)
print(d)

(1)使用变量接收不存在返回值的函数,结果为None;

(2)同一个函数执行过程中只能执行一次return语句,执行return语句后,return后面的内容将不再执行,函数执行完毕;

(3)同一个函数可以返回多个返回值,使用对应数量的变量接收即可。

例如:

def mul():
    return 3, 4, 5

x,y,z = mul()
print(x)
print(y)
print(z)

十、函数间调用

1、概念

在一个函数中调用另一个函数的过程称为函数间调用

2、例如

def add(a,b):
    return a + b

def div(a, b):
    return a / b

def get(a, b):
    #先计算和
    c = add(a,b)
    #再计算平均值
    d = div(c,2)
    return d

x = get(1000,2000)
print(x)

十一、基于最大值完成“三个数字求最大值”函数

1、要求

任意给出三个数字,可以得到最大的数字值

2、思考

  • 选用何种函数的定义格式?
  • 是否具有参数?如果有设置几个参数?
  • 得到最大值后做什么事情?
  • 是否具有返回值?如果有返回什么?

3、分析

  • 两个函数,一个是求两个数字的最大值,还有一个是求三个数字的最大值
  • 三个数字的最大值函数调用两个数字最大值函数来完成任务
  • 最终结果要使用return返回
# 分析
# 1、两个函数,一个是求两个数字的最大值,还有一个是求三个数字的最大值
# 2、三个数字的最大值函数调用两个数字最大值函数来完成任务
# 3、最终结果要使用return返回

# 两个数字求最大值
def dx2(a,b):
    if a > b:
        return a    #如果a>b成立,返回a
    else :
        return b    #否则,返回b
    
def dx3(a,b,c):
    #先使用两个数字求出最大值
    x = dx2(a,b)
    #使用得到的结果再与第三个数字一起求最大值
    y = dx2(x,c)
    return y

m = dx3(1,3,5)
print(m)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值