解析函数

Python:函数和代码复用

落爺英雄遲暮 提交于 2020-01-28 12:55:15
1、关于递归函数的描述,以下选项中正确的是 A.包含一个循环结构 B.函数比较复杂 C.函数内部包含对本函数的再次调用 D.函数名称作为返回值 答案:D 答案解析:递归函数是指函数内部包含对本函数的再次调用。 2、关于递归函数基例的说明,以下选项中错误的是 A.递归函数必须有基例 B.递归函数的基例不再进行递归 C.每个递归函数都只能有一个基例 D.递归函数的基例决定递归的深度 答案:C 答案解析:每个递归函数至少存在一个基例 3、以下选项中,不属于函数的作用的是 A.提高代码执行速度 B.复用代码 C.增强代码可读性 D.降低编程复杂度 答案:C 答案解析:函数的作用是复用代码、增强代码可读性、降低编程复杂度,而并不能提高代码的执行速度。 4、假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是 A.参数是列表类型时,改变原参数的值 B.参数是整数类型时,不改变原参数的值 C.参数是组合类型(可变对象)时,改变原参数的值 D.参数的值是否改变与函数中对象的操作有关,与参数类型无关 答案:D 答案解析:python里有可变对象和不可变对象之分。只有传入的是不可变对象时,值才不发生改变,若是可变对象,值的传入需要注意。不可变对象:Number ,String ,Tuple,bool。可变对象: List , Set , Dictionary是可以改变内部的元素

avcodec_send_packet函数解析

对着背影说爱祢 提交于 2020-01-28 01:32:04
avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt): 1) 将原始数据包作为解码器的输入 2) 该函数在内部会复制AVCodecContext的相关字段 (具体有哪些字段,起什么用,俺也不知道。。。) ,这些字段会影响每个包的解析,并且在实际解码的过程中会使用到(例如:AVCodecContext.skip_frame的这个字段,会告诉解码直接抛弃该函数发送包中包含的帧数据) 3) @warning 输入缓冲区avpkt->数据必须是大于实际读取字节的AV_INPUT_BUFFER_PADDING_SIZE,因为一些优化的位流读取器一次读取32位或64位,可以在最后读取。 4) @warning 不要将此API与同一AVCodecContext上的遗留API(如avcodec_decode_video2())混合使用。 在现在或未来的libavcodec版本,它将返回意想不到的结果(说白了,就是以前版本的的解码函数被弃用了,官方推荐使用新API) 5) @note AVCodecContext必须使用 avcodec_open2()打开,然后才可以将包提供给解码器(通过知道到解码器做参数alloc创建出解码器上下文后,还需要打开解码器上下文) 6) @param[in] avpkt

Python模块知多少?这里有五百不知够不够你用?

此生再无相见时 提交于 2020-01-26 19:01:21
常用模块 Chardet -- -- -- -- -- -- - 字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama -- -- -- -- -- -- 主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable -- -- -- -- - 主要用于在终端或浏览器端构建格式化的输出。 difflib -- -- -- -- -- -- - [ Python ] 标准库,计算文本差异 Levenshtein -- -- -- -- - 快速计算字符串相似度。 fuzzywuzzy -- -- -- -- -- 字符串模糊匹配。 esmre -- -- -- -- -- -- -- - 正则表达式的加速器。 shortuuid -- -- -- -- -- - 一组简洁 URL / UUID 函数库。 ftfy -- -- -- -- -- -- -- -- Unicode文本工具 7 unidecode -- -- -- -- -- - ascii和Unicode文本转换函数。 xpinyin -- -- -- -- -- -- - 将汉字转换为拼音的函数库 pangu . py -- -- -- -- -- -- 调整对中日韩文字当中的字母、数字间距。 pyfiglet -- -- -- -- -- -- Python写的figlet程序

PHP函数

偶尔善良 提交于 2020-01-26 11:56:53
1 array_change_key_case - 将数组中的所有键名修改为全大写或小写 2 array_chunk - 将一个数组分割成多个 3 array_column - 返回数组中指定的一列 4 array_combine - 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 5 array_count_values - 统计数组中所有的值 6 array_diff - 计算数组的差集 7 array_diff_assoc - 带索引检查计算数组的差集 8 array_diff_key - 使用键名比较计算数组的差集 9 array_diff_uassoc - 用用户提供的回调函数做索引检查来计算数组的差集 10 array_diff_ukey - 用回调函数对键名比较计算数组的差集 11 array_fill - 用给定的值填充数组 12 array_fill_keys - 使用指定的键和值填充数组 13 array_filter - 用回调函数过滤数组中的单元 14 array_flip - 交换数组中的键和值 15 array_intersect - 计算数组的交集 16 array_intersect_assoc - 带索引检查计算数组的交集 17 array_intersect_key - 使用键名比较计算数组的交集 18 array

webpack概念

大兔子大兔子 提交于 2020-01-26 10:53:22
官网:http://www.css88.com/doc/webpack2/concepts/ webpack是js的模块打包器(module bundler)。 入口(Entry) webpack将创建所有应用程序的依赖关系图标(dependency graph)。 入口起点(entry point):图表的起点。 根上下文(contextual root) app第一个启动文件 。 入口起点告诉webpack从哪里开始,遵循依赖图表打包文件。 webpack中使用webpack配置对象的entry属性定义入口。 单个入口(简写)语法 用法: entry: string | Array<string> webpack.config.js 1 module.exports = { 2   entry: './path/to/my/entry/file.js' 3 }; 4 module.exports = config; entry属性的单个入口语法,是下面的简写: 1 module.exports = { 2   entry: { 3 main: './path/to/my/entry/file.js' 4 } 5 }; 向entry传入一个数组会发生什么?将创建多个入口。 对象语法 用法:entry: {[entryChunkName: string]: string |

vue-双向数据绑定原理分析二--Mr.Ember

醉酒当歌 提交于 2020-01-25 07:41:21
vue-双向数据绑定原理分析二--Mr.Ember 摘要:双向数据绑定是vue的核心,通过是数据劫持结合发布者-订阅者模式的模式实现的。 上一讲 提到了怎么简单的模仿双向数据绑定,下面我们将会分析下vue双向数据绑定源码的简单实现。 实现原理 双向数据绑定是通过数据的劫持结合发布者-订阅者模式的方式实现的。 数据劫持、vue是通过Object.definedProperty()实现数据劫持,其中会有getter()和setter()方法。当读取属性值时,就会触发getter()方法,在view中如果数据发生了变化,就会通过Object.defineProperty()对属性设置一个setter函数,当数据改变了就会触发这个函数; 一. 实现一个监听器observer observer主要是通过Object.defineProperty()来监听属性的变动,那么将需要observer的数据对象进行递归遍历,包括子属性对象,都加上setter和getter,给这个对象的某个值赋值,就会触发setter,从而监听数据的变化。 Observer.prototype = { walk: function(data) { //执行函数 var self = this; // 通过对一个对象进行遍历,对这个对象所有的属性进行监听 Object.keys(data).forEach

作用域 预解析

谁都会走 提交于 2020-01-24 05:30:24
作用域 域:空间 范围 区域 作用:读、写 1.script 全局变量 全局函数 自上而下一块执行完毕执行下一块 2.函数  由里到外 浏览器 js解析器 1.找一些东西:根据关键字 var function 参数 a=未定义 所有的变量,在代码正式运行之前,都提前赋了一个值:未定义 fn1=function fn1(){alert(2);}   所有的函数,在代码正式运行之前,都是整个函数块    JS预解析 (形成一个仓库)   注:遇到重名的,只留一个     变量和函数重名了,就只留下函数 例1: var a=1; function fn1(){   alert(a); //undefined 函数作用域   var a=2; } fn1(); alert(a);  // 1 例2 var a=1; function fn1(){   alert(a); //1   a=2; } fn1(); alert(a);  // 2 2.逐行解读代码  表达式:= + - * / % ! ++ -- 参数 能够改变值的动作  表达式可以改预解析的值 alert(a); //function a(){alert(4);} var a=1; alert(a); //1 function a(){alert(2);} alert(a); //1 var a=3; //3 alert(a)

C语言文件操作解析

爷,独闯天下 提交于 2020-01-24 04:12:42
转自:http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199396.html C语言文件操作解析(一) 在讨论C语言文件操作之前,先了解一下与文件相关的东西。 一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。 事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本质并没有区别。所以广义上的二进制文件便指所有的文件。 通常意义下,我们所说的文本文件指只包含了纯文本信息的文件(通过手动编辑完成,包含的都是可显字符),二进制文件特指文件里面存储的是二进制代码的文件。至于为什么在计算机内存储的都是二进制数据,而给我们所呈现的确是文字、图像等信息,这跟计算机硬件组成有关系,因为计算机里面的元件是晶体管,其只有两种稳定的状态,因此二进制的0和1能表示其状态。很多个晶体管的不同状态的组合便呈现给我们不同的信息了。下面以汉字在计算机中的表示为例。 二.汉字在计算机中的表示 用计算机去处理汉字信息,必须对汉字进行编码,变成能被计算机识别的二进制。汉字编码主要有输入码、机内码、字形码三种。分别有不同的作用。 输入码

JavaScript中作用域和预解析

不问归期 提交于 2020-01-22 22:03:03
作用域以及预解析 在javascript中作用域是非常重要的,本文章将会说明作用域以及我们在工作,以及面试中的一些面试题,如果有不足的地方希望大家可以评论指出来,自己一定会及时的改正错误,避免大家走入一些误区。 谈及作用域先就必须要说明预解析和词法作用域。 下面我们先说明一下: 预解析 代码在正常执行操作之前会对文档进行一次解析,这个操作就是将声明提升, 声明包括全局范围内 1.带有var的变量, 2.函数 文档预解析后会把文档中在全局函数中的内容储存起来,将全局中带有var的变量(var和变量名,注意:变量体不会随着提升,加载var只是告诉我们在文档中有一个全局变量是fn,并不会有其他的作用)提升到最前面 预解析后会正常的读取代码(由上至下由左到右) 下面举例说明一下预解析: var fn=456; function fn(){ } 在上述的代码中我们预解析后会变成: var fn; function fn(){ } fn=456; 所以不管function是在前面还是后面我们打印fn出来的结果都是456。 词法作用域 词法作用域在书写代码的时候就已经决定了,与运行无关 可以分割词法作用域的只是函数,别的不可以分割 下面举例说明一下词法作用域 if(true){ function fn(){ alert("true"); } }else{ function fn(){ alert

作用域和预解析

瘦欲@ 提交于 2020-01-22 20:33:30
// 作用域: // 域:空间、范围、区域…… // 作用:读、写 script 全局变量、全局函数 自上而下 函数 由里到外 {} 浏览器: “JS解析器” 1)“找一些东西” :var function 参数 a = ... 所有的变量,在正式运行代码之前,都提前赋了一个值:未定义 fn1 = function fn1(){ alert(2); } 所有的函数,在正式运行代码之前,都是整个函数块 JS 的预解析 遇到重名的:只留一个 变量和函数重名了,就只留下函数 2)逐行解读代码: 表达式:= + - * / % ++ -- ! 参数…… 表达式可以修改预解析的值! alert(a); // function a (){ alert(4); } var a = 1; alert(a); // 1 function a (){ alert(2); } alert(a); // 1 var a = 3; alert(a); // 3 function a (){ alert(4); } alert(a); // 3 alert( typeof a ); // a(); // 报错 */ /* var a = 1; function fn1(){ alert(a); // undefined var a = 2; } fn1(); alert(a); // 1 var a = 1;