Lawliet|Python学习笔记3——函数
1.函数的定义
- 函数是一段具有特定功能的、可重用的语句组
- 函数是一种功能的抽象,一般表达特定的功能
- 用于降低编程难度和代码复用
def <函数名>(<参数>):
<函数体>
return <返回值>
#计算n!
def fact(n):s=1for i in range (1,n+1)s*=ireturn s
- 函数定义时,所指定的参数是一种占位符
- 函数定义后,如不被调用,就不会被执行
2.函数的调用
- 调用时要给出实际的参数
- 实际参数替换定义中的参数
- 函数调用后得到返回值(也可以没有返回值)
#与上一段代码接应
a=fact(10)
print(a)
3.函数的参数
a.参数定义
- 函数可以没有参数,但结构必须保留
def <函数名>():
<函数体>
rerurn <返回值> - 可选参数
def <函数名>(<非可选参数>,<可选参数>):
<函数体>
return <返回值>
#如果不给第二个参数m,则m作为1参与计算
def fact(n,m=1):s=1for i in range (1,n+1)s*=ireturn s//m
- 可变参数,不确定参数数量
def <函数名>(<参数>,*b):
<函数体>
return <返回值>
def fact(n,*b):s=1for i in range (1,n+1):s*=ifor item in b:s*=itemreturn s
b.参数传递
- 函数调用时,参数可以按照位置或名称方式传递
c.关于*符号在参数位置
*
- 当*出现在函数定义的参数中时,表示任意数目参数收集
- *是用元组的形式收集不匹配的位置参数。当这个函数调用时,Python将所有位置相关的参数收集到一个新的元组中,并将这个元组赋值给变量args
def f(*args):print(args)
f(1,2,3,4)
------>(1,2,3,4)
def f(a,*args):print(args)
f(1,2,3,4)
------>(2,3,4)
**
- **只对关键字参数有效
- **允许将关键字参数转化为字典,可以使用键调用来进行步进或字典迭代
def f(**args):print(args)
f(a=1,b=2)
------>{'a':1,'b':2}
参数混合
def f(a,*pargs,**kargs):print(a,pargs,kargs)
f(1,2,3,x=4,y=5)
------>1 (2,3) {'x':4,'y':5}
函数调用时出现*
def func(a,b,c,d):print(a,b,c,d)
args=(1,2,3,4)
func(*args)
------>1 2 3 4
def func(a,b,c,d):print(a,b,c,d)
kargs={'a':1,'b':2,'c':3,'d':4}
func(**kargs)
------>1 2 3 4
4.函数的返回值
- 函数可以有返回值,也可以没有,可以有return,也可以没有
- 函数可以返回0个或多个结果
def fact(n,m=1):s=1for i in range(1,n+1):s*=ireturn s//m,n,m
5.局部变量和全局变量
- 局部变量是程序内部使用的变量
- 整个程序使用的变量叫全局变量
a.使用规则
(1)局部变量是函数内部的占位符,与全局变量可能重名但是不同
(2)函数运算结束后,局部变量被释放
(3)global可以用于在函数内部使用全局变量
(4)局部变量为组合数据类型且未创建,等同于全局变量
- 基本数据类型,无论是否重名,局部变量和全局变量都不同
- 组合数据类型,如果局部变量未真实创建,则是全局变量
- 可以通过global保留字在函数内部声明全局变量
6.lambda函数
- 该函数将函数名作为函数结果返回
- 该函数是一种匿名函数,即没有名字的函数
- 使用lambda保留字定义,函数名是返回结果
- lambda函数用于定义简单的、能够在一行内表示的函数
<函数名>=lambda <参数>:<表达式>
f=lambda x,y:x+y
f(10,15)
#输出25
f=lambda:"lambda函数"
print(f())
#输出:lambda函数
7.补充:函数分类
- 内置函数:系统提供
- 非内置函数:import导入使用
导入方法:
import 模块名称
from 模块名称 import*
import math
math.sin(30)
from math import *
sin(30)
导入模块指定的函数或属性
from 模块名 import 函数名
from math import sin
sin(30)
- 自定义函数
- 库函数:内置库函数/非内置库函数
内置库函数:import导入使用
非内置库函数:也叫做第三方库,需要安装使用
Lawliet|Python学习笔记3——函数相关推荐
- Python学习笔记:函数(Function)
Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...
- Python学习笔记12_函数
Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...
- Python学习笔记——一些函数
本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9 基础知识1: input( )函数 input()函数从控制台获得用户输入,无论用户在 ...
- 小甲鱼python003答案_小甲鱼:Python学习笔记003_函数
>>> # 函数 >>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!" ...
- Python学习笔记系列——函数
今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...
- Python学习笔记:匿名函数
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:函数
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- python学习笔记三一 函数学习
函数学习 range函数 •生成有序的序列 •生成数字队列可以定制 # range函数案例1 # 生成一个从1到10的数字序列 # range的生成序列的两个面数字是左包括,右不包括(如下所示只包括1 ...
- Python学习笔记之函数(四)
1.传递任意数量的实参,可以在形参的参数底下加个 * 符号,在我们预先不知道要函数要接受多少实参的时候,就可以使用这种方式,函数就可以从调用语句中收集任意数量的实参. 示例代码如下: #传递任意数量的 ...
最新文章
- 蜘蛛搜索引擎_各大搜索引擎的蜘蛛特点
- AI式剥削:数据标注人员日薪低至51块钱
- vi/vim多行注释和取消注释
- oracle如何写循环日期自增_Oracle动态创建时间分区,以及Oracle12c中快速创建自增列...
- 关于Linux网卡调优之:RPS (Receive Packet Steering)
- java自动封箱_java自动封箱是什么意思
- day20T3改错记
- 获取桌面DC: GetDC(GetDesktopWindow())与GetDC(NULL)
- integnps 数控智能编程v19.3 数控切割机编程 切割机套料编程
- godot正确设置2d像素游戏
- 软考高项之项目变更管理
- dell主板恢复出厂设置_如何清除DELL电脑主板CMOS信息并恢复默认设置
- R语言怎么写积分_2. 角速度的积分
- 分布式定时任务框架---Uncode Schedule
- 抽象代数之S3的自同构群和S3的内自同构群
- Liunx学习笔记--基本网络设定(测试内容)
- Android 辅助服务实战-游戏点击器
- 四次方程根式解+四次以上方程近似解的js实现代码(上)——复数类+复数常量+三角函数简表
- STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)
- 现在有很多第三方的SDK来做直播,那么我们改选择哪一种?
热门文章
- 在 44186 款开源软件中搜索 前端开发者不得不知的 ECMAScript 6 十大特性 oschina 2016年03月16日 前端开发者不得不知的 ECMAScript 6 十大特性
- java获取和风天气_SpringMVC结合天气api实现天气查询
- Photoshop把漂亮湖景照片调成唯美雪景效果
- python 波动率锥_50ETF波动率的统计属性及其对波动率交易策略的启示
- Java 指令与字节码
- 超宽带室内信道模型研究与matlab仿真,复杂室内环境超宽带信号信道模型及仿真结果分析.pdf...
- 幻读和不可重复读的区别
- 赛博朋克版特效shader
- 在矛盾中不断走向灭亡的北宋社会
- 未明学院:双非学生风雨求职路 | 海投过上百封简历,面过券商、咨询、私募等6个方向后我得出的经验与教训