序言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的函数???????相关推荐

  1. 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图

    [Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...

  2. 技术图文:Python 匿名函数 VS. C# Lambda表达式

    背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结. 这是第 2 篇,从定义和应用两个角度来对比 Python 的匿名函数 与 C# 的La ...

  3. Python divmod() 函数

    Python divmod() 函数 python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b). 函数语法 divmod(a, b) ...

  4. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  5. python中函数包括标准库函数吗_Python语言和标准库(第二章:函数)

    a-如何创建函数. b-给出一些指导原则,帮助思考如何创建和组织程序以使用函数. c-如何编写函数,使随后可以询问它们的工作方式和实现的功能. 2.1将程序放在单独的文件里 为了更加方便,从现在开始, ...

  6. c int转字符串_【C++实现python字符串函数库】字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  7. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  8. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  9. Python staticmethod() 函数

    Python staticmethod() 函数 正在上传-重新上传取消​ Python 内置函数 python staticmethod 返回函数的静态方法. 该方法不强制要求传递参数,如下声明一个 ...

  10. python基础--函数

    #python中函数的定义:函数是逻辑结构化和过程化的一种编程方法,用来实现某些特定的功能.#python中函数简单定义的方法# def test(x):# "this is new fun ...

最新文章

  1. 【重磅】吴恩达宣布 Drive.ai 自动驾驶汽车服务落地 理想就这样成了现实!
  2. 4G EPS 中的 Control Plane
  3. Ubuntu 11.04解决txt文档中文乱码方法
  4. 宝藏好物gRPCurl
  5. 前端与java绘制三维图_使用HTML5 Canvas绘制三维波浪图算法和实现
  6. Django扩展 —— uwsgi+nginx部署
  7. 51单片机中断检测回复http://www.51hei.com/bbs/dpj-162071-1.html单片机点亮小灯的问题,几行代码,实在想不通怎么执行的
  8. 软件工程(系统流程图讲解)
  9. 塔尔萨大学计算机科学专业,塔尔萨大学专业
  10. 第1章 弗洛依德——精神分析
  11. 项目分享之敲击床头盒控制床头灯的开关
  12. 锁子甲 bulid+sim
  13. 淘宝/天猫按分类搜索淘宝直播接口 API 返回值说明
  14. Oracle 语法中的 INSERT INTO
  15. 密歇根安娜堡大学的计算机科学教授,曾亮(美国国家工程院院士、密歇根大学遥感学教授)_百度百科...
  16. 混淆矩阵(交叉表)及Kappa系数的计算
  17. 18.企业信息化战略与实施
  18. C语言职工管理系统(带有报告)
  19. 联合 EMQ 发布云原生物联网消息服务联合解决方案,云上轻松构建 IoT 应用
  20. 江苏理科生骈体作文——《绿色生活》

热门文章

  1. Win10有启动声效?3秒教你自定义启动声音,开机逼格满满!
  2. 开篇——从程序员到IT经理
  3. 工业自动化流水线上的机器视觉检测应用 (二):图像检测
  4. 【持续更新】金融科技行业发展趋势研究
  5. 跨域解决方案(CORS)
  6. java的互斥锁_java基础之互斥锁初解
  7. 过气网红Clubhouse:下载量暴跌90%,收购不成被山寨,想注销没门儿
  8. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing 阅读笔记
  9. ubuntu打开visio文件的方式
  10. 解决windows2003桌面不显示的问题