-
Python 内置了很多函数,可通过函数名和参数直接调用
-
交互式命令行可通过
help(fn)
查看 fn 函数的帮助信息 -
Python 内置数据类型转换函数,如
int(x)
可将 x 转为 int 类型,同理还有float(x)
、str(x)
、bool(x)
-
可以将函数名赋给一个变量,即给函数起 别名,再通过变量名调用指定的函数
-
定义函数使用
def
语句,一次写出函数名、括号、括号中的参数即冒号:
,并在缩进块中编写函数体,返回值用return
返回 -
函数会在执行
return
后结束,并返回结果,没有return
语句时会返回None
,return None
可简写为return
-
from <py file name> import <function name>
可以导入其他文件中定义的函数 -
pass
语句用于占位,什么都不做 -
isinstance(target, classes)
用于类型检查,返回布尔值 -
Python 中可同时返回多个值,实际上为一个 tuple
-
Python 的函数定义很灵活,除了正常的必选参数外,还有 默认参数,可变参数,和 关键字参数
-
默认参数必须在必选参数后,在定义函数时给参数设置默认值。当调用函数时如没有传入默认参数的值,就采用默认值
-
默认参数的默认值必须为不可变对象,不能是
[]
等可变对象 -
可变参数通过在参数前加
*
表示,如cale(*numbers)
,在函数内部,参数 numbers 接收到的是一个tuple
。调用该函数时,可传入 0 到任意个参数 -
可在 list 或 tuple 前加
*
转为可变参数传入函数中 -
关键字参数即 含参数名的参数,在函数内部自动组装为一个 dict。在参数前加
**
表示,如def person(name, **kw): print('name:', name, 'kw', kw)
-
调用上面函数时,可传入任意个关键字参数。如
person('AAA', city='Beijing', job='Engineer')
-
在需要传入关键字参数时,可提前组装一个 dict,并在 dict 前加
**
传入函数中 -
命名关键字参数 用于限制关键字参数的参数名,需使用分隔符
*
,*
后面的参数被视为关键字参数>>>def person(name, age, *, city, job): ... print(name, age, city, job) ... >>>person('Jack', 24, city='Beijing', job='Engineer') Jack 24 Beijing Engineer
-
如函数定义中已经有了一个 可变参数,后面跟着的关键字参数就无需添加分隔符
*
-
调用含关键字参数的函数时,比如传入参数名。
-
命名关键字参数可含有缺省值,如 `def person(name, *, city='Beijing', job)
-
在 Python 中, 必选参数、默认参数、可变参数、命名关键字参数 和 关键字参数 可按顺序组合使用
-
特别的是,Python 中的任意函数,都可以通过类似
func(*args, **kw
的形式调用 -
在函数内部调用自身的函数为 递归函数
-
所有的循环理论上都可以写成 循环 的方式,但逻辑不如递归清晰
-
尾递归即 函数返回时,调用自身本身,切
return
语句不能包含表达式 -
遗憾的是大多编程语言没有对尾递归做优化,多次调用自身会导致栈溢出
近期热议
推荐标签 标签
-
Q&A
10114 引用 • 45941 回帖 • 64 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
-
正则表达式
31 引用 • 94 回帖 • 2 关注
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。
-
AWS
11 引用 • 28 回帖 • 9 关注
-
PHP
167 引用 • 408 回帖 • 486 关注
PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。
-
强迫症
15 引用 • 161 回帖 • 2 关注
强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。
-
Maven
188 引用 • 319 回帖 • 239 关注
Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
- Solo
-
Firefox
7 引用 • 30 回帖 • 377 关注
Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。
-
Typecho
12 引用 • 67 回帖 • 445 关注
Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。
-
OpenCV
15 引用 • 36 回帖
-
Git
211 引用 • 358 回帖
Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
-
Oracle
107 引用 • 127 回帖 • 344 关注
Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。
-
Hibernate
39 引用 • 103 回帖 • 724 关注
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
-
星云链
3 引用 • 16 回帖 • 2 关注
星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网
-
flomo
6 引用 • 143 回帖
flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。
-
大疆创新
2 引用 • 14 回帖
深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。
-
Rust
59 引用 • 22 回帖 • 6 关注
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
-
代码片段
201 引用 • 1446 回帖 • 2 关注
代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。
用户在该标签下分享代码片段时需在帖子标题前添加
[css]
或[js]
用于区分代码片段类型。 -
React
192 引用 • 291 回帖 • 369 关注
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
-
ZeroNet
1 引用 • 21 回帖 • 649 关注
ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。
-
安全
199 引用 • 818 回帖 • 1 关注
安全永远都不是一个小问题。
-
招聘
188 引用 • 1057 回帖 • 2 关注
哪里都缺人,哪里都不缺人。
- 30Seconds
- B3log
-
Elasticsearch
117 引用 • 99 回帖 • 197 关注
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
-
TextBundle
1 引用 • 2 回帖 • 82 关注
TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。
-
SendCloud
2 引用 • 8 回帖 • 506 关注
SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于