Python 函数知识汇总

news/2024/9/20 9:43:35

1. 函数的理解和定义

① 是什么 函数是一段具有特定功能、可重用的语句组,是一种功能的抽象。
② 作用 降低编程难度和代码复用
③ 怎么用
def <函数名>(<参数(0个或多个)>):
<函数体>
return <返回值>

说明:
-函数定义时,所指定的参数是一种占位符
-函数定义后,不经调用,不会被执行
-函数定义时,参数是输入、函数体是处理、结果是输出(IPO)

2. 函数的使用及调用过程

调用:运行函数代码的方式
调用时要给出实际参数,替换定义中的参数
调用后得到实际参数运行的返回值

3. 函数的参数传递

① 无参数
函数可以无参数,但定义时括号不可省略
② 可选参数
函数定义时可以为某些参数指定默认值,构成可选参数(即调用函数时,可以不提供的参数)
注意:Python强制约定所有可选参数必须放在必选参数之后
例:

def fact(n,m=1):s = 1for i in range(1,n+1):s *= ireturn s//ma = fact(4)
print(a)b = fact(4,2)
print(b)

③ 可变参数
格式

def <函数名>(<参数>,*b):
<函数体>
return <返回值>

def fact(n,*b):s = 1for i in range(1,n+1):s *= ifor item in b:s *= itemreturn sa = fact(10,3)
print(a)
b = fact(10,3,5,8)
print(b)

④ 参数传递的两种方式
默认:按照位置传递
另:按照名称传递

def fact(n,m=1):s = 1for i in range(1,n+1):s *= ireturn s//ma = fact(10,5)#位置传递
print(a)
b = fact(m=5,n=10)#名称传递
print(b)

4. 函数的返回值

函数可以返回0个或多个结果
-return后面可以不加任何返回信息,也可以不使用return

def fact(n,m=1):s = 1for i in range(1,n+1):s *= ireturn s//m,n,ma,b,c = fact(10,5)
print(a,b,c)
d = fact(10,5)
print(d)
输出
725760 10 5
(725760, 10, 5) (该类型为元组类型)

5. 局部变量和全局变量

全局变量:函数之外的变量
局部变量:函数内部的变量

记住如下两条规则:

① 局部变量和全局变量是不同变量
-局部变量是函数内部的占位符,可能与全局变量重名,但一定不同
-函数运算结束后,局部变量被释放
-可以使用global保留字在函数内部使用全局变量

n,s = 10,100def fact(n):global s#之后函数内出现的s全都是全局变量for i in range(1,n+1):s *= ireturn sprint(fact(n),s)
输出
362880000 362880000

② 局部变量如果是组合数据类型且未在函数内部创建,等同于全局变量
例1 组合数据类型+未创建

ls = ["F","f"]
#通过使用[]真实创建了一个全局变量列表ls
def func(a):ls.append(a)#此处ls是列表类型,未真实创建则等同于全局变量return
func("C")
#全局变量ls被修改
print(ls)
输出
['F', 'f', 'C']

例2 组合数据类型+已创建

ls = ["F","f"]
#通过使用[]真实创建了一个全局变量列表ls
def func(a):ls = []#此处ls是列表类型,真实创建,ls是局部变量ls.append(a)return ls
ls1 = func("C")
#局部变量ls被修改
print(ls,ls1)
输出
['F', 'f'] ['C']

6. lambda函数

是一种匿名函数,即没有名字
-使用lambda保留字定义,返回函数名作为结果
-用于定义简单的、可以在一行内表示的函数

<函数名> = lambda <参数>:<表达式>
等价于
def <函数名>(<参数>):
<函数体>
return <返回值>
不同的是,只能使用表达式而不能使用
例1

f = lambda x,y:x+y
print(f(5,10))
输出 15

例2

f = lambda : "lambda函数"
print(f())
输出 lambda函数

建议:
lambda函数要谨慎使用,主要用作一些特定函数或方法的参数,建议使用def定义普通函数
lambda函数有一些固定使用方式,建议逐渐掌握

出处:北理工Python慕课


http://lihuaxi.xjx100.cn/news/242453.html

相关文章

oracle time格式化比较,ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)

ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)[more]原著作者&#xff1a;James KmannTIMESTAMP数据的格式化显示和DATE 数据一样。注意&#xff0c;to_char支持date和timestamp&#xff0c;但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极度重要…

java对cookie的操作

原文&#xff1a;http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html java对cookie的操作比较简单&#xff0c;主要介绍下建立cookie和读取cookie&#xff0c;以及如何设定cookie的生命周期和cookie的路径问题。 建立一个无生命周期的cookie&#xff0c;即随着…

PyInstaller库的使用

1.简介 是第三方库&#xff0c;需要额外安装 使用其可以让Python以可执行文件而非源码形式运行 2.安装方式 在命令行输入 pip install pyinstaller 3.使用方式 在命令行输入 pyinstaller -F <文件名.py> 看到多出三个文件夹&#xff0c;其中_pycache_和build可以安全…

oracle触发器初始化,oracle – 触发器无法初始化变量

我有触发审计,它存储了对任何EMP表行执行的操作.这个触发器工作正常,除了在某些情况下(很少发生,我无法确定确切的条件)它给了我Oracle错误&#xff1a;ORA-01400&#xff1a;无法插入NULL(“MY_SCHEMA”.“HIST_EMP”.“操作”)CREATE OR REPLACE TRIGGER HIST_EMP_AIUDAFTER …

肠子的小心思(二):你坐在马桶上的姿势很可能不正确

为什么80%的码农都做不了架构师&#xff1f;>>> 作者&#xff1a;汪娇娇 时间&#xff1a;2017年4月19日 1、不管坐着还是站着&#xff0c;肠道周围都有一块肌肉像套索一样包裹着它、向一个方向牵引着它&#xff0c;这就产生了一道弯曲的折痕。这样的肌肉套索为肛门…

Python组合数据类型之集合类型

单元概述 主要解决问题&#xff1a;让程序更好地处理一组数据 三类重要组合数据类型&#xff1a;集合类型、序列类型和字典类型 学完本章&#xff0c;我们能够在头脑中建立集合、序列和字典的模式来表达对一组数据的表达和处理 1. 定义 集合是多个元素的无序组合 集合中的元…

matlab svr 预测,SVR 多目标预测

程序代码&#xff1a;close all;clear;clc;format compact;load i_source.mat;% 提取数据[m,n] size(B);ts B(1:180,1);tsx B(1:180,2:n);figure;plot(ts,LineWidth,2);title(点信源波达方向随时间的变化规律,FontSize,12);xlabel(时间,FontSize,12);ylabel(波达方向,FontSi…

前端中的this,指的是什么?

想要学习前端&#xff0c;短时间内是比较困难的&#xff0c;web前端要学习的内容有很多&#xff0c;今天小编就为大家详细的介绍一下前端中的this&#xff0c;指的是什么?来看看下面的详细介绍。 前端中的this&#xff0c;指的是什么? 1.this是什么 this 是 JavaScript 中的一…