• Python 学习笔记(3)

    1. 模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。 使用模块的好处? 最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。 使用模块还可以避免函数名和变量名冲突。相同名字的函数名和变量名可以存在于不同的模块中,因此,我们在编写模块时,不必担心模块名会与其他模块冲突。但是,尽量不要与Python中的内置函数名冲突。Python内置函数。 但是你也许会想到 ,如果两个人编写了相同的模块名,那么模块名冲突了怎么办?Python为了避免模块名冲突,引入了包(Package)。 举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。 现在,假设我们的abc和xyz这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名,比如mycompany,按照如下目录存放: 引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,abc.py模块的名字就变成了mycompany.abc,类似的,xyz.py的模块名变成了mycompany.xyz。 请注意,在每一个包目录下都会有有一个叫做__init__.py的文件,这个文件必须存在,否则Python就把这个目录当成一个普通的目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是mycompany。 类似的,可以有多层目录,组成多级层次的包结构。比如,下面的目录结构: 文件www.py的模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utils和mycompany.web.utils。 mycompany.web也是一个模块,请指出该模块对应的.py文件。 mycompany.web模块对应的文件就是mycompany.web目录下的__init__.py文件。 1.1 模块使用 下面我们就以Python中的内建模块sys为例,编写一个hello模块,由此来讲解Python中模块文件的编写规范。 #!/usr/bin/env...


  • Python 学习笔记(2)

    1. 函数 .1 函数调用 Python中内置了许多函数,在python程序中我们可以直接通过函数名调用,例如: abs,chr,ord等等。我们也可以从Python的官方文档中查看到内置函数的具体信息:https://docs.python.org/2/library/functions.html#abs Python中函数的函数名其实本质上是一个指向函数对象的引用,完全可以把函数名赋值给一个变量,这相当于给函数换了个“别名”,例如: >>> a = abs >>> a(-1) 1 >>> a(100) 100 在使用Python中内置的函数时,需要根据函数的参数定义,传入合适的参数。 1.2 函数定义...


  • Python 学习笔记(1)

    1. Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言[1]。 Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。 除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。 总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、动不动就几万行的代码,你可以尽情地嘲笑他。 那Python适合开发哪些类型的应用呢? 首选是网络应用,包括网站、后台服务等等; 其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等; 另外就是把其他语言开发的程序再包装起来,方便使用。 最后说说Python的缺点: 任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢? 第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。 第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器 码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解 释型的语言,则必须把源码发布出去。 2....


  • Ubuntu 14.04下手动安装Firefox的flash插件

    前言 以前自己一直使用的是Google的Chrome浏览器,主要是因为Chrome浏览器很简洁并且响应速度快。但是后来当自己想在不同的系统平台下的Chrome浏览器同步自己保存的书签时就遇到了一个很让人蛋疼的问题,Chrome只支持Google账户同步,而在俺们大天朝,Google是黑户,如果不通过某种方法是根本无法享受到Google的一系列服务,包括Chrome的书签同步功能。山不转水转,我就重新寻找一个可以在多平台进行书签同步的浏览器了,这不,Firefox就出现在我的世界中了。 用了一段时间的Firefox感觉还不错,功能也很全面,还有很多的插件扩展浏览器的功能,关键它也支持不同平台的书签同步功能。但是,但是,但是,直到有一天当我打开Firefox想看视频时,它却给我弹出这个东东。 好不,不懂只能文度娘了。在度娘上找到了“病因”,原来是Firefox上面的flash插件版本太低不安全了,尼玛,老子在其他浏览器上都没遇到过这种问题啊,没办法,这不得解决嘛。后来的后来,我几乎每个月都能碰见这种情况一会,以前找到的解决方案也忘了,所以今天就把这法子给记下来,以备后用。 在Ubuntu下这种插件也没有apt包可以直接安装,只能自己手动下载安装,下面就详细说明下整个安装过程。 1. 下载flash插件 flash 插件的官方下载地址为: https://get.adobe.com/flashplayer/?loc=cn 然后选择.tar.gz压缩文件格式下载,如下所示: 2. 解压文件 将下载好的flash插件压缩包,解压到一个文件夹中,如下所示: 3. 将解压出来的libflashplayer.so拷贝到/usr/lib/mozilla/plugins/下 $ sudo cp libflashplayer.so...


  • Hexo博客搭建与使用

    Hexo简介 Hexo是一款快速、简洁和高效的一款静态博客框架,它出自于台湾的一名大学生Tommy Chen之手。这款博客框架程序是基于Node.js开发的,它编译上百篇的博文也只仅仅需要几秒就可以了,非常快速。并且,Hexo也是一款非常受程序猿喜欢的博客搭建框架,它使用Markdown解析文章,同时你还可以将你的网站非常简单快速地部署到github page上。Hexo还具有非常丰富的插件系统,用户可以基于这些插件来做一些网站的扩展。 如果你觉得搭建的过程还是有些繁琐,但是当你一旦搭建完成之后,你用Hexo来发表你用Markdown写的文章,你就会觉得这是一件很轻松很舒服的事情。有关详情你可以进入Hexo的中文网站查看相关文档。 Hexo安装 系统环境 由于本人是一个程序猿,平时使用较多的是Linux操作系统,所以本文是基于Ubuntu 14.04 64位系统环境搭建的Hexo博客。如果你使用的是windows系统,那么请移步到文章末尾有关windows平台的安装教程的链接,点此跳转。 安装 在安装Hexo之前,我们首先需要安装下面的必备软件。 Node.js 安装Node.js,你可以点击上面的链接进入Node.js的官网,下载下源码自己手动编译安装,具体的步骤可以参见其文档。在安装完成Node.js之后,它自带了包管理器npm。最后一步,我们还需要确定一下我们的Node.js是否安装好了,我们可以通过以下的命令来测试Node.js是否安装成功。 如果出现了如上图所示的版本信息结果之后,则说明Node.js已经安装成功了。 Git Git 是由Linux之父Linus开发的一款分布式的代码管理工具,它能够很方便地管理本地的代码,而且还可以将本地代码提交到远程的github网站上进行代码托管。 Github是全球最大的代码托管网站,同时也是全球最大的开源软件托管网站,在这里我们可以寻找到许许多多非常优秀的开源软件。除了代码托管的功能之外,github网站还推出了github pages的功能。Github...