python 3.x 学习笔记4(函数)
1.编程方式分:面向对象、面向过程、函数式编程
2.区分
面向对象----》类----》class
面向过程----》过程----》def
函数式编程----》函数----》def
3.编程语言中函数的定义:
函数是逻辑结构化和过程化的一种编程方法
4.过程是没有返回值的函数
5.使用函数的优点:
1)代码可重复使用
2)代码可保持一致性
3)可扩展性
6.
当一个函数/过程没有使用return显示的定义返回值时,python解释器会隐式的返回None,所以在python中即便是过程也可以算作函数。
7.返回值
返回值的数等于0,返回None
返回值的数等于1,返回object
返回值的数大于1,返回tuple
8.参数
1)形参和实参形参:形式参数,不是实际存在的,是虚拟变量 。在定义函数体的时候使用形参,目的是在函数 调用时接受参数(形参参个数、类型与实参一一对应)
实参:实际参数,调用函数时传给函数的参数,可以是常量、变量、表达式、函数,传给形参
2)位置参数和关键字参数
标准调用:实参与形参位置一一对应;
关键字调用:位置无需固定
3)默认参数
特点:调用函数的时候,默认参数非必须传递
4)参数组
*args 接收n个位置参数,转换成元组的方式
**kwargs 接收 n个关键字参数,转换成字典的方式
9.局部变量
只在局部范围内发生作用,即只在函数内部发生作用
10.全局变量
全局变量作用域是整个程序,要把局部变量变成全局变量用global,但是不建议在函数里使用,可能会出现很严重bug
11.局部变量除了整数、字符串不能影响全局变量,像字典、元组、列表、类都可以更改,并影响到全局变量
12.递归
如果一个函数在内部调用自身,这个函数就是递归函数
13.递归特性
1)必须有一个明确的结束条件
2)每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3)递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出
14.高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数可以接收另一个函数作为参数,这种 函数就称之为高阶函数。
15.函数详解:
http://www.cnblogs.com/alex3714/articles/5740985.html
python 3.x 学习笔记4(函数)的更多相关文章
- python网络爬虫学习笔记
python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...
- Python Built-in Function 学习笔记
Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- Requests:Python HTTP Module学习笔记(一)(转)
Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...
- matlab学习笔记13_1 函数返回值
一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...
- Python学习笔记之函数
这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...
- Python 2.7 学习笔记 内置语句、函数、标准库
使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...
- Python学习笔记:函数和变量详解
一.面向对象:将客观世界的事物抽象成计算机中的数据结构 类:用class定义,这是当前编程的重点范式,以后会单独介绍. 二.函数编程:逻辑结构化和过程化的一种编程方法 1.函数-->用def定义 ...
- Python快速入门学习笔记(二)
注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...
随机推荐
- GIS+=地理信息+容器技术(2)——Dockers技术介绍
-------------------------------------------------------------------------------------- Blog: http ...
- FireFox所支持的全部标签(持续更新ing)
近期研究上各个浏览器的差别,得到一些资料,FireFox眼下所支持的全部标签类型,持续更新,供大家參考和学习,不喜勿喷哦 http://mxr.mozilla.org/seamonkey/source ...
- app-framework学习--nav的Scroller禁用与启用
app-framewor(jqmobi) nav的Scroller禁用与启用 写在panel 的 data-load 方法里 禁用 $.ui.scrollingDivs.menu_scroller. ...
- 一个人的旅行 HDU杭电2066【dijkstra算法 || SPFA】
pid=2066">http://acm.hdu.edu.cn/showproblem.php? pid=2066 Problem Description 尽管草儿是个路痴(就是在杭电 ...
- caffe中lenet_solver.prototxt配置文件注解
caffe框架自带的例子mnist里有一个lenet_solver.prototxt文件,这个文件是具体的训练网络的引入文件,定义了CNN网络架构之外的一些基础参数,如总的迭代次数.测试间隔.基础学习 ...
- luogu 2679 子串
子串 史上最简短的一篇博客,毕竟看题解ac心疼我的kmp /* f[i][j][k][0/1]表示A的前i个,B的前j个,用到了k个子串,当前字符选或者不选. 所以f[0][0][0][0]的方案数为 ...
- SpringBoot(五) 番外---Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...
- 手工清理win7系统C盘的技巧
在我们日常使用电脑的过程中,随着使用的时候越久,大家就会发现电脑的运行速度变的越慢了,大家都知道很多系统东西一般都会安装在C盘,系统在运行的时候就会不断的产生垃圾文件以及其他我们根本用不到的文件,这样 ...
- Spark脚本调用
Spark提供了多个脚本来作为程序的入口,其中最常用的是交互脚本 spark-shell, pyspark,还有spark sql的客户端spark-sql. 这些脚本最后都会归结到对SparkSub ...
- mariadb-增删改查怎么用
MariaDB 数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行,尽量使用范围小的,而不用大的 常用的数据类型 整数:int, (bit比整数还要小 ...