Python 函数知识汇总
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慕课
相关文章:

Android四大基本组件介绍与生命周期
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。 一:了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听…

【快速入门系列】简述 for...in 和 for...of 区别
引言 在对数组或对象进行遍历时,我们经常会使用到两种方法:for...in 和 for...of,那么这两种方法之间的区别是什么呢?让我们来研究研究。 一、for...in 首先我们看下MDN对for...in方法的解释:for...in | MDN for...in …

【新周报(050)】Datawhale组队学习
记录: 按照Datawhale第33期组队学习的规划,六门课程 《吃瓜教程——西瓜书南瓜书》、《动手学数据分析》、《李宏毅机器学习(含深度学习)》、《数据可视化(Matplotlib)》、《LeetCode刷题》、《Scratch&am…

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

myeclipse 遇到的一些问题及解决方案
1.、提示键配置一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发者不清楚的话&#…

电子学会青少年编程等级考试案例:曲奇饼干
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 案例:曲奇饼干 代码 import turtlet turtle.Pen()t.speed(6) t.p…

linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
2)对于.gz结尾的文件 gzip -d all.gz gunzip all.gz转载于:https://blog.51cto.com/13203181/2115527

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

MVC系列1-MVC基础
终于决定写一个系列的文章了,最开始其实是准备写一下WPF的,因为我这两年一直在做WPF,对WPF的喜爱自然是无以言表。但是由于我所在的地区对WPF的普及不是很广泛,所以,被迫又开始做起来web,但是我又不想在传统…

洛谷 P1816 忠诚
题目描述 老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一…

电子学会青少年编程等级考试Python案例08
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 案例:绘制兔子时钟 代码 import turtlet turtle.Pen()# 表盘 t.p…

Python组合数据类型之序列类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型、序列类型和字典类型 学完本章,我们能够在头脑中建立集合、序列和字典的模式来表达对一组数据的表达和处理 1. 定义 序列是具有先后关系的一组元素 -序列是…

hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所有的数的最小公倍数modpG :查询一个区间的所有的数的最大公约数modp修改 C :将给定位置…

一个比较保守的404页面
<HTML><HEAD><TITLE>您访问的页面不存在 请转到首页进入</TITLE> <META http-equivContent-Type content"text/html; charsetGB2312"> <META http-equivrefresh content"5;URL /"> <STYLE typetext/css></S…

【组队学习】【34期】组队学习内容详情
第34期 Datawhale 组队学习活动马上就要开始啦! 02月09日(星期三),宣发,2月组队学习计划!。02月12日(星期六),进入学习群、开营仪式。 本次组队学习的内容为:…

Python组合数据类型之字典类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型、序列类型和字典类型 学完本章,我们能够在头脑中建立集合、序列和字典的模式来表达对一组数据的表达和处理 1. 定义 首先理解“映射”的概念 -映射是一种键…

maven 插件:Tomcat7
配置 Tocmat 用户 > vim $TOMCAT_PATH%/conf/tomcat-users.xml <tomcat-users><role rolename"manager-gui"/><role rolename"manager-script"/><user username"tomcat" password"linuxmint" roles"mana…

电子学会 软件编程(图形化)二级训练营
电子学会 软件编程(图形化)二级训练营 试题来源 青少年软件编程(Scratch)等级考试试卷(二级)【2019.09】青少年软件编程(Scratch)等级考试试卷(二级)【2019…

MacOS无法登录App Store修复
MacOS无法登录App Store修复 2017-03-10 21:13:39 by:SemiconductorKING 先上图: 惨红色的提示信息,把你拒之App Store门外,但是对之放弃、不与之斗争不是我们的节奏,请看破敌攻略: 1.查看你的“关于本机”…

Python文件的使用
本章导言 什么是数据格式化 前言: -学完本章,看待数据会有一种规范/格式化的视角 -方法论:从Python角度理解文件和数据表示 -实践能力:学会编写带有文件输入输出的程序 1. 文件的使用 文件的类型 -文件是数据的抽象和集合,可理解为存储在…

datagridview 点击列标题排序
开发winform中,平时经常用到数据列表,我们大多选用datagridview,但是此控件本身没有排序的功能。参阅网上资料。留下标记,以后备用。 datagridview的数据显示一般是通过数据绑定来实现, 即:this.datagridvi…

围绕圆心形旋转
2019独角兽企业重金招聘Python工程师标准>>> 实现了围绕圆心旋转功能 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Roation : MonoBehaviour {public float range 10;void Update () {float x Mathf.Sin(Mathf.…

【组队学习】【34期】阿里云天池在线编程训练营
阿里云天池在线编程训练营 航路开辟者:陈信达、杨世超、赵子一、马燕鹏领航员:武帅、初晓宇、叶前坤、邱广坤、朱松青航海士:宁彦吉、肖桐、汪超、陈信达、杨世超、赵子一、武帅、初晓宇、叶前坤、邱广坤、朱松青、马燕鹏 基本信息 学习平…

Python一维二维数据的格式化和处理
本章导言 什么是数据格式化 前言: -学完本章,看待数据会有一种规范/格式化的视角 -方法论:从Python角度理解文件和数据表示 -实践能力:学会编写带有文件输入输出的程序 1. 数据组织的维度 维度:一组数据的组织形式-线性还是二维或更高维…

让你的网站提速:图片优化网站推荐
页面的加载时间是每一个设计师都担心的数据,或者至少是每个设计师都应该担心的问题。图片的大小肯定是一个需要留意的问题。这就是为什么在这里写了几个有助于优化页面中的图片的小技巧,这些小技巧将有助于大家解决这个问题,这些小技巧也可以…

JAVA对图片的任意角度旋转,以及镜像操作
package relevantTest;/* * 该代码实现了对图像的水平镜像变换,垂直镜像变换,任意角度旋转,jtf的实时监控,以及对图像的缩放变换,以及按钮的若隐若现效果。 * 在对图像进行任意角度旋转时最好是在原始图片未进行任何操…

【组队学习】【34期】百度飞桨AI达人创造营
百度飞桨AI达人创造营 航路开辟者:百度飞桨领航员:六一航海士:阿水、颜鑫、宋泽山、刘洋、张文恺 基本信息 内容属性:合作课程练习平台:https://aistudio.baidu.com/aistudio/course/introduce/25259?ad-frompdg-1…

安装Python第三方库的三个方法
方法一: (cmd命令行) pip 方法【主要方法,适用于99%的情况】【依赖网络状况】 在命令行输入pip -h 可查看该命令帮助信息 常用pip命令 ① pip install <第三方库名> 安装指定第三方库 参数 -U :update对已经安装的进行版本更新 ② pip uninstall <第三方…

java 基础---继承
继承 一,概述 a) 使用extends关键字可以让一个类继承另一个类,继承的类为子类,被继承的类是父类,子类会自动继承父类的所有方法和属性。 b) 继承使得类和类之间产生了关系 c) 子类可以使用super调用父类成员…

建立CentOS 6.9 的Yum本地源
1、建立一个本地Yum的软件仓库1mkdir /media/cdrom2、把CentOS6.9光盘装载到/media/cdrom1mount /dev/cdrom /media/cdrom3、安装createrepo1 rpm -ivh /media/cdrom/Packages/createrepo-[按tab键] deltarpm-[按tab键] python-deltarpm-[按tab键] createrepo-0.9.9-26.…