当前位置: 首页 > 编程日记 > 正文

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&#xff0c;Service服务,Content Provider内容提供者&#xff0c;BroadcastReceiver广播接收器。 一:了解四大基本组件 Activity : 应用程序中&#xff0c;一个Activity通常就是一个单独的屏幕&#xff0c;它上面可以显示一些控件也可以监听…

【快速入门系列】简述 for...in 和 for...of 区别

引言 在对数组或对象进行遍历时&#xff0c;我们经常会使用到两种方法&#xff1a;for...in 和 for...of&#xff0c;那么这两种方法之间的区别是什么呢&#xff1f;让我们来研究研究。 一、for...in 首先我们看下MDN对for...in方法的解释&#xff1a;for...in | MDN for...in …

【新周报(050)】Datawhale组队学习

记录&#xff1a; 按照Datawhale第33期组队学习的规划&#xff0c;六门课程 《吃瓜教程——西瓜书南瓜书》、《动手学数据分析》、《李宏毅机器学习&#xff08;含深度学习&#xff09;》、《数据可视化&#xff08;Matplotlib&#xff09;》、《LeetCode刷题》、《Scratch&am…

PyInstaller库的使用

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

myeclipse 遇到的一些问题及解决方案

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

电子学会青少年编程等级考试案例:曲奇饼干

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 案例&#xff1a;曲奇饼干 代码 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组合数据类型之集合类型

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

MVC系列1-MVC基础

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

洛谷 P1816 忠诚

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

电子学会青少年编程等级考试Python案例08

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

Python组合数据类型之序列类型

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

hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树

题目链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid3071 题目大意&#xff1a; 给定一个长度为n的序列m次操作&#xff0c;操作的种类一共有三种 查询 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 组队学习活动马上就要开始啦&#xff01; 02月09日&#xff08;星期三&#xff09;&#xff0c;宣发&#xff0c;2月组队学习计划&#xff01;。02月12日&#xff08;星期六&#xff09;&#xff0c;进入学习群、开营仪式。 本次组队学习的内容为&#xff1a…

Python组合数据类型之字典类型

单元概述 主要解决问题&#xff1a;让程序更好地处理一组数据 三类重要组合数据类型&#xff1a;集合类型、序列类型和字典类型 学完本章&#xff0c;我们能够在头脑中建立集合、序列和字典的模式来表达对一组数据的表达和处理 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…

电子学会 软件编程(图形化)二级训练营

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

MacOS无法登录App Store修复

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

Python文件的使用

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

datagridview 点击列标题排序

开发winform中&#xff0c;平时经常用到数据列表&#xff0c;我们大多选用datagridview&#xff0c;但是此控件本身没有排序的功能。参阅网上资料。留下标记&#xff0c;以后备用。 datagridview的数据显示一般是通过数据绑定来实现&#xff0c; 即&#xff1a;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期】阿里云天池在线编程训练营

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

Python一维二维数据的格式化和处理

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

让你的网站提速:图片优化网站推荐

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

JAVA对图片的任意角度旋转,以及镜像操作

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

【组队学习】【34期】百度飞桨AI达人创造营

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

安装Python第三方库的三个方法

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

java 基础---继承

继承 一&#xff0c;概述 a) 使用extends关键字可以让一个类继承另一个类&#xff0c;继承的类为子类&#xff0c;被继承的类是父类&#xff0c;子类会自动继承父类的所有方法和属性。 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.…