python学习笔记_第9天(函数)

函数

函数不仅可以实现代码的复用,更能实现代码的一致性,当修改函数的代码,所有调用该函数的地方都统一修改。

函数的基本概念

  1. 函数是代码的封装,用于实现一个功能
  2. 函数可以反复调用、传递参数、返回计算结果
  • Python 中函数分为如下几类:
  1. 内置函数
    如str()、list()、len()等内置函数,可以拿来直接使用。
  2. 标准库函数
    可以通过import 语句导入库,然后使用其中定义的函数。
  3. 第三方库函数
    从Python 社区下载安装第三方库后,通过import 语句导入,然后使用这些第三方库的函数。
  4. 用户自定义函数
    用户自己定义的函数,适应用户自身需求定义的函数。

函数的定义和调用

定义函数的语法如下:
def 函数名([参数列表]) :
‘’‘文档字符串’’’
函数体/若干语句

  1. 使用def 定义函数,后跟函数名(参数)
    执行def 时,创建一个函数对象,函数名变量指向此对象。
  2. 参数列表
    圆括号内定义函数形参,多个参数用逗号隔开;当无参数时保留圆括号。
    形参–形式参数,定义函数时当做局部变量在函数内部使用,属于函数。不需要声明类型和指定返回值类型。
    调用函数时使用的实参列表必须与形参列表一一对应。
  3. return 返回值
    当函数体中包含return 语句,则结束函数执行并返回值,否则返回None 值。
  4. 调用函数之前,必须先定义函数,即def 创建函数对象
    内置函数对象会自动创建。
    标准库和第三方库函数,通过import 导入模块时,会自动执行模块中的def 语句。
    自定义函数需按需求自己def创建函数。

形参和实参

def printMax(a, b):
    '''实现两个数的比较,并返回较大的值'''
    if a > b:
        print(a, '较大值')
    else:
        print(b, '较大值')


printMax(10, 20)
printMax(30, 5)

形参用于定义,实参用于调用。实参与形参必须一一对应。
函数printMax(a,b)中a和b是形式参数,在定义函数时使用,形式参数命名需符合标识符命名规则(字母、数字、_)。
在调用函数时,传递的参数称为实际参数,printMax(10,20)中10和20就是实际参数。

文档字符串(函数注释)

为提高程序可读性,一般在函数体开始的部分附上函数定义说明,称为文档字符串/函数的注释。在三个单引号或三个双引号之间,可以加入多行文字进行说明。
help(函数名)可以展示函数注释

def printMax(a, b):
    '''实现两个数的比较,并返回较大的值'''
    if a > b:
        print(a, '较大值')
    else:
        print(b, '较大值')

help(printMax)
'''
Help on function printMax in module __main__:

printMax(a, b)
    实现两个数的比较,并返回较大的值
'''

return语句

return 语句的两个功能:

  1. 结束函数执行
  2. 返回指定值,便于后续调用
# 函数体中无return语句或者return语句未赋值时,函数返回值为None
def print_star(n):
    print("*" * n)
    return
    print('python')  # return,结束函数体,后续语句不执行
    
print(print_star(10))  # 运行函数后返回值为None

# 当需返回多个值时可以使用列表/元组/字典/集合将多个值存储后返回
def List(x,y,z):
    return[x+y,y+z,z+x]

print(List(3,5,7))  # [8, 12, 10]

函数在内存中的底层原理

执行def 定义函数后,系统就创建了相应的函数对象。函数名指向函数对象id,从而实现对函数的调用。
在这里插入图片描述

def print_star(n):
    print("*" * n)

print(print_star)  # <function print_star at 0x0000000002BB8620>
print(id(print_star))  # 45844000
c = print_star
c(3)  # ***
print(type(c))  # <class 'function'>
print(id(c))  # 45844000

# Python 中,圆括号意味着调用函数。没有圆括号的情况下,Python 会把函数当做普通对象。
I = int  
print(type(I('356')))  # <class 'int'>

“c=print_star”则将print_star变量的值赋给了变量c,从而变量c和print_star都指向相同的函数对象,则c(3)与print_star(3)调用相同函数
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值