当前位置: 首页 > news >正文

调用函数

#在程序设计中,函数是指用于进行某种计算的一系列语句的有名称的组合。定义函数时,需要指定函数的名称并编写一系列程序语句,之后可以使用名称‘调用’这个函数。
#前面已经了解了函数调用,例如:
1 >>> print('hello world')
2 hello world
3 >>> type('hello')
4 <class 'str'>
5 >>> int(12.1)
6 12
以上代码就是函数的调用。函数括号中的表达式称之为函数的参数。函数‘接收’参数,并‘返回’结果,这个结果称为返回值(return value)。比如上面的示例中的int*(12.1),12.1就是接收的参数,得到的结果是12,12就是返回值。
#Python3内置了很多有用的函数,可以直接调用。要调用一个函数,就需要知道函数的名称和参数,比如求绝对值的函数abs只有一个参数。可以直接从Python的官方网站查看文档: https://docs.python.org/3/library/functions.html
#进去官方网站可以看到,这里显示了Python3内置的所有函数,abs()函数在第一个位置
#单机abs()函数,页面会跳到如下图所示的位置,有对abs()函数的说明。图中的意思是:返回一个数的绝对值,参数可能是整数或浮点数。如果参数是一个复数,就返回他的大小。
#除了到Python官方网站查看文档,还可以在交换式命令行通过help(abs)查看abs的函数帮助信息。示例如下:
1 >>> help(abs)
2 Help on built-in function abs in module builtins:
3  
4 abs(x, /)
5 Return the absolute value of the argument.
#可以看到,输出了对应的帮助信息,但是没有官方网站的详细。
#下面实际操作abs()函数,在交互模式输入:
1 >>> abs(20)
2 20
3 >>> abs(-20)
4 20
5 >>> abs(3.14)
6 3.14
7 >>> abs(3.14)
8 3.14
#从上面的输出结果可以看到,abs函数用于求绝对值。
#调用abs()函数时,如果传入的参数数量不对,就会报TypeError的错误,Python会明确告诉你:abs()有且只有一个参数,但给出了两个,例如:
1 >>> abs(7,8)
2 Traceback (most recent call last):
3 File "<pyshell#19>", line 1, in <module>
4 abs(7,8)
5 TypeError: abs() takes exactly one argument (2 given)
#如果传入的参数数量是对的,但参数类型不能被函数接收,也会报TypeError的错误。给出错误信息:str是错误的参数类型,例如:
1 >>> abs('hello')
2 Traceback (most recent call last):
3 File "<pyshell#20>", line 1, in <module>
4 abs('hello')
5 TypeError: bad operand type for abs(): 'str'
#函数名其实是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个’别名‘,在交换式输入如下:
1 >>> target=abs #变量target指向abs函数
2 >>> target(-5) #通过变量target调用abs函数
3 5
4 >>> target(3.14) #通过变量target调用abs函数
5 3.14
6 >>> target(-3.14) #通过变量target调用abs函数
7 3.14
#调用Python中的函数时,需要根据函数定义传入正确的参数。如果函数调用出错,就要会看错误信息。
 

转载于:https://www.cnblogs.com/DLHe/p/7753867.html

相关文章:

  • Linux运维之道之admin1.4(权限和归属,LDAP认证)
  • 001大数据简介
  • 使用ADO.NET查询和操作数据库(合集)
  • php json_decode无法解析特殊问好字符
  • Android RecyclerView (一) 使用完全解析
  • 多列等高布局
  • 前端小姿势
  • 杀死进程命令
  • Android******Context******
  • 推荐几款专门为Github党量身定做的Chrome插件
  • 算法导论Java实现-二分查找运用(习题2.3-7)
  • [20171102]视图v$session中process字段含义
  • [SDOI2010]大陆争霸
  • centos模板机制作前修改配置
  • 编程之用户体验
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • classpath对获取配置文件的影响
  • css选择器
  • Docker容器管理
  • es6(二):字符串的扩展
  • MySQL数据库运维之数据恢复
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • React as a UI Runtime(五、列表)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 看域名解析域名安全对SEO的影响
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一天一个设计模式之JS实现——适配器模式
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • const的用法,特别是用在函数前面与后面的区别
  • 阿里云ACE认证之理解CDN技术
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # Java NIO(一)FileChannel
  • #FPGA(基础知识)
  • #laravel 通过手动安装依赖PHPExcel#
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $GOPATH/go.mod exists but should not goland
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (多级缓存)多级缓存
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (力扣)循环队列的实现与详解(C语言)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .Net MVC4 上传大文件,并保存表单
  • .NET/C# 使窗口永不获得焦点
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net程序集学习心得
  • .NET与 java通用的3DES加密解密方法
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • [3300万人的聊天室] 作为产品的上游公司该如何?