python定义空函数体_Python 2.2 定义函数
定义函数
Python中,定义函数是用def语句,一次写出函数名、括号、括号中的参数、和冒号:,然后在缩进模块中编写函数体,函数的返回值使用return语句返回。
我们以自定义一个求绝对值的my_abs函数为例:
def my_abs(x):
if x>=0:
return x
else:
return -x
注意,函数体内的语句在执行时,一旦执行到return,函数就执行完毕。并将结果返回。如果没有return语句,函数返回结果为none。return none可以简写为return。
在Python交互式命令行下,定义函数python会出现...的提示符,函数定义结束后需按两次会车回到>>>的提示符下。
如果已经把my_abs()的函数定义保存到abstest.py文件,那么可以在该文件当前目录下,使用from abstest import my_abs 导入my_abs()函数。注意abstest是文件名,不包含.py扩展名。
空函数
def nop():
pass
pass语句什么都不做,用作占位符,比如现没想好怎么写函数代码,就可以先放一个pass,让代码能运行起来。
pass还可以用在其他语句里:
if x >0:
pass
参数检查
函数调用的时候,如果函数的参数个数不对,Python解释器能自动检查出来。并抛出TypeError;
但是函数的参数类型不对,Python解释器无法帮我们查出。
>>> my_abs('A')Traceback (most recent call last):
File "", line 1, in
File "", line 2, in my_abs
TypeError: unorderable types: str() >= int()
>>> abs('A')
Traceback (most recent call last):
File "", line 1, in TypeError: bad operand type for abs(): 'str'
当传入了不恰当参数时,内置函数会检查出参数错误,而我们定义的my_abs()没有参数检查,会导致if语句出错。对参数类型做检查可以使用isinstance()函数实现。
def my_abs(x):
if not isinstance(x,(int,float)):
raise TypeError('bad operand type')
if x>=0:
return x
if x<0:
return -x
再次调用:>>> my_abs('A')
Traceback (most recent call last):
File "", line 1, in
File "", line 3, in my_abs
TypeError: bad operand type
返回多值
函数可以返回多个值。
比如这个计算坐标的函数:import mathdef move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx,ny
import math语句,导入math包,并允许后续代码引用math中的sin cos函数。
然后我们就可以同时获得返回值:>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0
但其实这是一个假象,Python返回的仍是一个单值:>>> r = move(100, 100, 60, math.pi / 6)>>> print(r)
(151.96152422706632, 70.0)
返回值是一个tuple。语法上,返回一个tuple可以省略括号,而多个变量可以同时接受一个tuple,按位置赋给对应的值,所以,Python的函数返回的多值就是返回的一个tuple,但写起来更方便。
小结:
定义函数时,需要确定函数名和参数个数;
如果有必要,可以对参数的数据类型做检查;
函数体内可以使用return随时返回函数结果;
函数执行完若没有return,自动return none;
函数可以同时返回多值,但其实就是返回一个tuple。
python定义空函数体_Python 2.2 定义函数相关推荐
- python 定义空集合_Python学习04.16:Python set集合详解
Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同. 从形式上看,和字典类似,Python 集合会将所有元素放在一对大括号 {} 中,相邻元素之间 ...
- python基础入门笔记_Python基础入门笔记:函数
函数 举些你可能已经使用过的函数例子:判断数据类型:type(str) 字符串类型数据转为整数型:int(str) ... 复制代码 通过观察规律不难发现,Python 中所谓的使用函数就是把你要处理 ...
- python主函数调用格式_Python的模块与函数
一.概述Python的程序由包.模块和函数组成. 函数是一段可重用的有名称的代码.通过输入的参数值,返回需要的结果,并可存储在文件中供以后使用.几乎任何Python代码都可放在函数中.Python为函 ...
- python数据分析函数大全_python中数据分析常用函数整理
一. apply函数 作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值.函数既可以使用默认的,也可以自定义.注意:在第二个输出中应用 head() 函数,因为它包含了很多行 ...
- python 如何定义空字典_python字典中如何添加键值对
添加键值对 首先定义一个空字典 1 >>> dic={} 直接对字典中不存在的key进行赋值来添加 1 2 3 >>> dic['name']='zhangsan' ...
- python定义空字典_python字典空值
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为defaul ...
- python怎么定义空矩阵_python 空矩阵
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 稀疏矩阵不必以标准矩阵形式表示. 有很多方法可以缓解这种标准形式给我们的计算系统 ...
- python定义空集合_Python 学习笔记 - 集合
Python 集合 集合(set)是无序的.不重复的元素序列. 创建集合 使用花括号 { } 或者 set() 函数创建集合.但是,创建空的集合必须使用 set(),因为花括号是用于创建字典(Dict ...
- python怎么定义空矩阵_Python创建一个空的稀疏矩阵
我试图将一些真实数据解析为一个.mat对象,以便在我的 matlab脚本中加载. 我收到此错误: TypeError: 'coo_matrix' object does not support ite ...
最新文章
- 用ASP.NET AJAX框架扩展HTML Map控件
- 新建文件的UID和GID
- Django 07. django框架模型之增删改查基本操作
- d3 v5 api select
- 独家 | 一文读懂语音识别(附学习资源)
- 1.2 Linux的网络配置和连接工具
- 使用linux批量引物设计,使用SSRMMD便捷、迅速与准确地进行:SSR位点检测,多态性SSR筛选,与批量SSR引物设计...
- 在Java编程中,为什么char类型数组可以直接用数组名打印,而其他类型数组打印结果而是地址值。
- 94 - 绘制谢尔宾斯基三角形
- 用自己的域名配置动态域名解析(DDNS)
- C++:乱码之字符串编码
- 天池比赛TASK3打卡
- linux搭建ssh服务器,并用xshell远程连接
- tensorflow:自定义op
- Fork/Join框架基本使用
- 某知名支付系统的架构演进权威分析
- .NET 5:.NET Framework和.NET Core的合并意味着什么
- JAVA实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- mysql 中abs函数_Mysql常用函数
- {:0>5d} python format占位输出
热门文章
- Quill – 可以灵活自定义的开源的富文本编辑器
- 的clear会清空内存吗_Python内存分配时有哪些不为你知的小秘密?
- mount: 未知的文件系统类型“vboxsf”_好程序员云计算学习路线教程大纲课件:Mount 挂载详解...
- 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台
- python 多线程读写文件_Python多线程同步---文件读写控制方法
- python有float行吗_python – 有什么方法可以在将pandas系列从str转换为float时跳过不可转换的行?...
- opus在arm的嵌入式平台上的移植和开发
- vs2017 Visual Studio 离线安装方法
- ecshop商品属性价不打折
- html兼容手机浏览器