Python基础(九)--函数
函数的作用
- 减少重复代码
- 程序易于维护
- 程序易于扩展
函数的定义
>>> def calculate(x,y): #定义函数名为calculate,参数为x和y
result = x+y
return result #返回结果 >>> a = calculate(x=3,y=4) #调用,关键参数x=3,y=4
>>> print(a)
7
函数参数
形参,实参:形参类似与数学函数中的变量,实参是则是运算时变量实际的值
位置参数:调用函数时,可以按照函数定义时的位置顺序给定参数
关键参数:调用函数时,可以不按顺序给行形参,但须指明对应
默认参数:函数定义时,可以给某个形参定义好初始值,调用时可不给定其实参;默认参数必须写在最后
>>> def calculate(x,y,z=3): #默认参数为z=3
res = x+y+z
return res >>> a = calculate(3,4) #位置参数对应,z可以不给定
>>> print(a)
10
非固定参数:可接受额外参数
- *args接收的是元组,实参以位置参数实现
- *kwargs接收的是字典,实参以关键参数实现
- 由于位置参数需要写在最左,*args要能接收值的话,前面的参数都必须以位置参数实现
>>> def register(name,age,cn=00,*args,**kwargs):
print(name)
print(age)
print(cn)
print(args)
print(kwargs) >>> register('xing','55kg','yang','',height=170)
55kg
yang
('',)
{'height': 170}
函数的返回值
返回使用return关键词
- 如果未指定return,则返回None
- 函数执行过程中遇到return语句便会停止执行并返回值
>>> def test():
return 1,2,4,4 >>> test() #返回多个值会将变成元组
(1, 2, 4, 4)
函数的作用域
- 局部变量和全局变量存在不同的内存空间,不会冲突
- 就近原则:函数内部未定义变量时,会去全局变量里调用
- 函数内部可定义全局变量,使用global 声明
- globals(),locals() 可查看全局变量和局部变量
- 函数内不可以修改全局变量
>>> name = 'xing' #全局变量
>>> def test():
name = 'lala' #局部变量
print(name) >>> test()
lala
>>> print(name)
Python基础(九)--函数的更多相关文章
- python基础——匿名函数
python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...
- python基础——返回函数
python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...
- python基础——sorted()函数
python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...
- python基础——filter函数
python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...
- python基础——匿名函数及递归函数
python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...
- 八. Python基础(8)--函数
八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x): ' ...
- python基础之函数详解
Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...
- Python学习笔记(一)python基础与函数
1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world > ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- Python基础__函数
本节将进入函数的介绍,函数是Python基础中最精彩的部分之一,接下来将对函数做详细介绍.函数 函数就是对代码进行一个封装.把实现某一功能的代码进行封装到一起.下次需要使用时不需要进行编写代码直接调用 ...
随机推荐
- [Linux]kali更新/etc/apt/sources.list
vim /etc/apt/sources.list #中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contri ...
- AcWing:178. 第K短路(A*)
给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边. 注意: 每条最短路中至少要包含一条边. 输入格式 第一行包含两个整数N和M. 接下来M行 ...
- Codeforces 1051 D.Bicolorings(DP)
Codeforces 1051 D.Bicolorings 题意:一个2×n的方格纸,用黑白给格子涂色,要求分出k个连通块,求方案数. 思路:用0,1表示黑白,则第i列可以涂00,01,10,11,( ...
- OVS报错:s1.mgmt: version negotiation failed (we support version 0x01, peer supports version 0x04) ovs-ofctl: s1: failed to connect to socket (Broken pipe)
mininet搭建拓扑后,查看流表,发现ovs命令报错 查找原因发现系mininet创建拓扑的命令使用了OpenFlow 1.3版本 ovs dump-flows命令默认是1.0版本,因此需要在ovs ...
- Java中可变参数
从java5开始出现了可变参数,这是对java方法及数组的拓展! 方法中可以接受的参数不再是固定个数的,而是随着具体需求传递的多少来决定. 定义格式: 返回值类型 方法名(参数类型 ... 形式参数 ...
- JAVA之自动内存管理机制
一.内存分配 1.JVM体系结构 2.运行时数据区域 3.内存分配二.内存回收 1.垃圾收集算法 2.垃圾收集器三.相关参考一.内存分配JVM体系结构 在了解自动内存管理的内存分配之前,我们先看下JV ...
- Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知
摘自:https://www.cnblogs.com/qiaogeli/p/12004962.html 程序员乔戈里 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家 ...
- 使用Xshell链接阿里云服务
1.下载Xshell,进入xshell官网 https://xshell.en.softonic.com/,选择免费版本进行下载,在该页面https://www.netsarang.com/zh/fr ...
- macos npm + node 环境启动问题排查
MacOS安装npm全局包的权限问题 解决办法:修改npm包所安装目录的权限:sudo chown -R $USER /usr/local 然后输入密码就可以了 deMBP:~ $ sudo ch ...
- 10分钟梳理MySQL核心知识点
数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 做业务,要懂基本的SQL语句:做性能优化,要懂索引,懂引擎:做分库分表,要懂主从,懂读写分离... 今天我们用10分钟,重 ...