python的函数???????
序言Python中的函数是个很重要的东西,那么对于这个很重要又很基础的东西我们应该如何去理解它,如何去掌握它呢?就像作为一个火影忍者学忍术一样,要掌握它的奥义才能一击必杀!
奥义一:
函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:
>>> a = abs # 变量a指向abs函数>>> a(-1) # 所以也可以通过a调用abs函数1
可以将任意函数名字改名。
奥义二:
定义一个函数要使用def语句,同时要有冒号,函数体放在缩进里面。
奥义三:
如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。
return None可以简写为return。
奥义四:
定义一个什么事也不做的空函数,可以用pass语句。还没想好怎么写函数的代码,就可以先用pass代替,让代码先运行起来。
奥义五:
Python的函数返回多值其实就是返回一个tuple。
奥义六:
默认参数:由于我们经常计算x2,所以,完全可以把第二个参数n的默认值设定为2:
def power(x, n=2):s = 1 while n > 0:n = n - 1s = s * x return s
这样,当我们调用power(5)时,相当于调用power(5, 2):
奥义七:
当不按顺序提供部分默认参数时,需要把参数名写上。
奥义八:
定义默认参数要牢记一点:默认参数必须指向不变对象!
奥义九:
把函数的参数改为可变参数:
def calc(*numbers):sum = 0 for n in numbers:sum = sum + n * n return sum
定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*
号。在函数内部,参数numbers
接收到的是一个tuple,因此,函数代码完全不变。
奥义再临:
Python允许你在list或tuple前面加一个*
号,把list或tuple的元素变成可变参数传进去
奥义必杀:
尾递归优化,尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。
return fact_iter(num - 1, num * product)#即返回函数本身。
以上奥义完毕,你将学会python忍术之超无限递归闻风丧胆无敌函数之术!
听说有气质的人都会关注这个公众号!
python的函数???????相关推荐
- 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图
[Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...
- 技术图文:Python 匿名函数 VS. C# Lambda表达式
背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结. 这是第 2 篇,从定义和应用两个角度来对比 Python 的匿名函数 与 C# 的La ...
- Python divmod() 函数
Python divmod() 函数 python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b). 函数语法 divmod(a, b) ...
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- python中函数包括标准库函数吗_Python语言和标准库(第二章:函数)
a-如何创建函数. b-给出一些指导原则,帮助思考如何创建和组织程序以使用函数. c-如何编写函数,使随后可以询问它们的工作方式和实现的功能. 2.1将程序放在单独的文件里 为了更加方便,从现在开始, ...
- c int转字符串_【C++实现python字符串函数库】字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法
python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录
- python log函数怎么打_Python的log日志功能及设置方法
python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客
- Python staticmethod() 函数
Python staticmethod() 函数 正在上传-重新上传取消 Python 内置函数 python staticmethod 返回函数的静态方法. 该方法不强制要求传递参数,如下声明一个 ...
- python基础--函数
#python中函数的定义:函数是逻辑结构化和过程化的一种编程方法,用来实现某些特定的功能.#python中函数简单定义的方法# def test(x):# "this is new fun ...
最新文章
- 【重磅】吴恩达宣布 Drive.ai 自动驾驶汽车服务落地 理想就这样成了现实!
- 4G EPS 中的 Control Plane
- Ubuntu 11.04解决txt文档中文乱码方法
- 宝藏好物gRPCurl
- 前端与java绘制三维图_使用HTML5 Canvas绘制三维波浪图算法和实现
- Django扩展 —— uwsgi+nginx部署
- 51单片机中断检测回复http://www.51hei.com/bbs/dpj-162071-1.html单片机点亮小灯的问题,几行代码,实在想不通怎么执行的
- 软件工程(系统流程图讲解)
- 塔尔萨大学计算机科学专业,塔尔萨大学专业
- 第1章 弗洛依德——精神分析
- 项目分享之敲击床头盒控制床头灯的开关
- 锁子甲 bulid+sim
- 淘宝/天猫按分类搜索淘宝直播接口 API 返回值说明
- Oracle 语法中的 INSERT INTO
- 密歇根安娜堡大学的计算机科学教授,曾亮(美国国家工程院院士、密歇根大学遥感学教授)_百度百科...
- 混淆矩阵(交叉表)及Kappa系数的计算
- 18.企业信息化战略与实施
- C语言职工管理系统(带有报告)
- 联合 EMQ 发布云原生物联网消息服务联合解决方案,云上轻松构建 IoT 应用
- 江苏理科生骈体作文——《绿色生活》
热门文章
- Win10有启动声效?3秒教你自定义启动声音,开机逼格满满!
- 开篇——从程序员到IT经理
- 工业自动化流水线上的机器视觉检测应用 (二):图像检测
- 【持续更新】金融科技行业发展趋势研究
- 跨域解决方案(CORS)
- java的互斥锁_java基础之互斥锁初解
- 过气网红Clubhouse:下载量暴跌90%,收购不成被山寨,想注销没门儿
- Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing 阅读笔记
- ubuntu打开visio文件的方式
- 解决windows2003桌面不显示的问题