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 ...
随机推荐
- Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动
在上一篇文章<Android自己定义组件系列[3]--自己定义ViewGroup实现側滑>中实现了仿Facebook和人人网的側滑效果,这一篇我们将接着上一篇来实现双面滑动的效果. 1.布 ...
- Android 输入管理服务-输入事件向详细应用的分发
输入管理服务接收到输入事件,对输入事件进行处理之后会把输入事件分发到详细的应用中(如WMS.壁纸服务等)去处理的,这里涉及到了JNI从C++层向JAVA层的调用. 详细流程例如以下图所看到的:
- error[No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException]
http://stackoverflow.com/questions/23228222/running-into-leadernotavailableexception-when-using-kafk ...
- 火狐访问IIS出现404,而Chrome可以正常访问
需要在web.config中的handlers中添加如下节点,保存之后,需要重启电脑. <remove name="ExtensionlessUrlHandler-Integrated ...
- FireEye APT检测——APT业务占比过重,缺乏其他安全系统的查杀和修复功能
摘自:https://zhidao.baidu.com/question/1694626564301467468.html火眼,APT威胁下快速成长 FireEye的兴起开始于2012年,这时段正好迎 ...
- 升级Ubuntu18.04后遇到的坑
升级过程: 直接do-release-update 就可以直接从16.04更新到18.04了. 中间会提升更新一些配置文件, 我大部分都选择了N. 然后就成功升级到18.04了, 显卡驱动什么的都 ...
- DotNetCore.1.0.1-VS2015Tools.Preview2.0.2 安装错误分析及解决办法(so far)
折腾了这么多天总算弄完了,真恶心.为了让其他童靴避免掉进我遇到的坑里,我决定把最近遇到问题及其解决办法总结一下,希望对大家有帮助. 1.对于2016年7月底以前安装VS用户来说,可能不会那么迫切安装这 ...
- Volatile variables
Volatile variables apply another type of memory constraint to individual variables. The compiler oft ...
- LAMP 建立 Wordpress 站点 Linux Apache MariaDB PHP
使用LAMP建立Wordpress, 要求如下: 准备工作: VMware 14 CentOS 7.4 最小化 安装镜像 Wordpress 安装包, 下载 预热: 使用VMware新建4台虚拟机, ...
- 1044 - Access denied for user 'root'@'%' to database 'xahy-blog' 解决方案二
检查 user 表中'root'@'%' 的grant的权限 select HOST,USER,Grant_priv,Super_priv from mysql.`user`; 可以看到现在这两个权限 ...