Python基础篇 | 函数

函数

Python中的函数主要分为三种:

  1. 内置函数(内置在解释器中的函数)
  2. 模块函数(定义在(第三方)模块中的函数)
  3. 用户自定义函数(可以在类中可以在类外)

辨析:函数和方法
函数时指类外定义的“函数”,可以直接用函数名调用
方法时指类中定义的“函数”,必须通过对象名调用

内置函数

内置函数(Bulit-In Function,BIF),已内置在解释器中,直接通过函数名调用
如:type()
查看方法:dir(__builtins__)

  • 数学函数
    绝对值abs()
    最大最小值max() min()
    次方pow()
    四舍五入round(数,小数点后有效位数)
  • 功能函数
    强制类型转换int() 等等
    查看数据类型type()
    判断数据类型isinstance()
    查看搜索路径dir()
    查看帮助help()
    计算长度len()
    快速生成序列(迭代器)range(start,stop,step)
    判断函数是否可调用callable()
    进制转换bin()#10->2 hex()#10->16
模块函数

模块函数,定义在模块中的函数,先import所属模块,后通过模块名调用
模块是一个Python文件,其中可以写类、语句和函数
模块分为内置模块和非内置模块,其中内置模块用C语言编写,内置在解释器中,而非内置模块以.py文件的形式存放在对应包的文件夹下

查看内置模块清单的方法:

import sys
sys.builtin_module_names

模块导入方式:

  • 直接导入模块import 模块名 (as 别名)
  • 直接导入函数:from 模块名 import 函数名
自定义函数
定义
  • 单行匿名函数函数名 = lambda 形参 : 函数返回值
    常以另一个函数的参数形式使用,由于返回的是迭代器,要记得强制类型转换
  • 使用关键字def
def fun():
    j = 0
    print("Hello World!")
    def fun2():
        printf("Second")
    return fun2

Python支持嵌套定义函数,如果内嵌函数fun2()中调用了外围函数中的局部变量(不是全局变量),成为“闭包(closure)”
例中内嵌函数fun2()是局部变量,只有在外围函数fun()中可以调用,既return fun2,如果没有这个return,那么这个内嵌函数没有办法调用

  • 帮助文档
    自定义函数也可以设置docString‘’‘ 帮助文档内容 '''
  • 返回值
    如果没有写return语句,函数默认返回None
    Python可以同时返回多个值
实参和形参

函数定义时,形参可以定义为 可选参数 和 必选参数

def fun(x1,*x2,**x3,x4 = 4)
  • 可选参数,指已经给出默认值的参数,如x4,在调用时可以不赋值
    必选参数,指未给定默认值的参数,*参数和**参数分别以元组 和 字典的形式接收参数,在以上两种参数后的形参称为强制命名参数,既调用时必须用“形参 = 实参”的方式指定参数值
    注意:定义时,必选参数在前,可选参数在后

  • 实参分为 关键字实参 和 位置实参
    关键字实参,既已经指定形参名称的实参
    位置实参,既未指定的
    同样,要注意位置实参在前,关键字实参在后
    参数传递时,不可变对象传递的是值,既形参改变不影响实参,
    而可变对象传递是是地址,既实参和形参指向相同的内存空间

  • 参数传递时的原则是对号入座,但self,cls等特殊参数不需要另外传递给形参

  • 变量的可见性
    local:在函数内定义的变量,仅在函数内可见
    global:全局变量
    nonlocal:用于内嵌函数
    (global 和 nonlocal 在声明是必须独占一行)

包由多个与同一个功能相关的模块组成,表现形式为含有_init_.py的文件夹

  • 包管理器
    pip:Python专用包管理器,对应的包服务器为PyPI
    conda:支持多种语言的通用包管理器,对应的包服务器为Conda

  • 基本操作
    安装:pip / conda install
    查看已安装包:pip / conda list
    更新/删除已安装包:
    pip install -- upgrade 包名
    conda update 包名

  • 导入包时,直接import 实际是执行了包下的__init__.py文件
    既不能一次性导入包中所有模块

  • 包的安装查看删除操作在命令行和Jupyter Book中都可以进行,但是更新只能在命令行中进行

帮助文档

  • 最基本方法:help()
  • iPython中的特殊方法:
    查看docString?(放在前后都行)
    查看源代码??(前提:目标对象使用Python编写,否则与?等效)
  • 查看简单描述:使用内置属性_doc_
  • 查看某个对象所支持的属性清单:使用内置函数dir()
  • 在Jupyter notebook中,通过( )或( )方法可以让系统自动提示某个对象可以用的属性和方法名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值