Python学习笔记(五)函数

本文是关于Python函数的学习笔记,涵盖了函数定义、参数设置、函数体、返回值、匿名函数、高阶函数、函数嵌套和闭包。强调了函数在编程中的重要性,特别是闭包的概念和应用,以及如何利用它们实现数据封装和模块化编程。
摘要由CSDN通过智能技术生成

“Life is short, You need Python” – Bruce Eckel

Environment

  • OS: macOS Mojave
  • Python version: 3.7
  • IDE: Jupyter Notebook



0. 写在前面

函数体现的是面向过程的编程,如可以将训练模型的过程写成一个函数;类体现的是面向对象的编程,创造具有属性和方法的对象,如可以将一个模型定义为一个类实例化而来的对象。这里做一点儿学习笔记,内容包括函数相关的操作,需要关注变量的作用域问题,并且理解函数闭包。

使用函数的意义

  • 对一块代码进行封装,模块化地解决问题
  • 使需要重复使用的代码能够方便地被调用,且利于管理和维护

1. 函数的定义

def 语句 实现函数的定义

def 函数名(参数):
	""" 函数文档 """
	函数体
	return 返回值

返回值 = 函数名(参数) # 调用

对于在函数中调用另个函数的情况, Python 允许被调用的函数在之后定义

def bar():
    print('bar')
    
def foo():
    bar() # 之前定义
    baz() # 之后定义
    
def baz():
    print('baz')
    
foo()
  • 使用 “"" xxx """ , 在函数的开头编写函数文档,便于代码的维护。调用 函数名.__doc__ 得到函数文档的内容

计算 sigmoid 函数自变量分别为 0 , 1 0, 1 0,1 − 10 -10 10 的结果
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

import math

def sigmoid(x):
    """sigmoid 函数"""
    return 1 / (1 + math.e**(-x))

print(sigmoid(0)) # 0.5
print(sigmoid.__doc__) # sigmoid 函数



执行一个定义好的函数可分为三步:

  1. 接收输入 —— 参数
  2. 运行处理 —— 函数体
  3. 输出结果 —— 返回值

1.1 设置参数

参数可分为形式参数(形参)和实际参数(实参)

  • 形参是指定义函数时使用的参数
  • 实参是指调用函数时传入的参数

在之前的 sigmoid 函数中

import math

def sigmoid(x): # 此处的 x 为形参
    """sigmoid 函数"""
    return 1 / (1 + math.e**(-x)) # 此处的 x 为形参

res = sigmoid(0) # 传入的 0 为实参



根据函数定义时的形式,参数可以分为位置参数默认参数可变长参数;根据函数调用时的形式,参数可以为关键字参数


1.1.1 位置参数和默认参数

定义函数时,

  • 不设置参数的默认值,则为位置参数
  • 设置参数的默认值,则为默认参数,在调用时可不对该参数传值
  • 使用 *args**kwargs ,则为可变长参数
  • 有严格的顺序要求:位置参数在最前,之后为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值