Python资料之零碎知识

第三方框架:

WEB开发:

Django\pyramid\Tornado\Bottle\Flask\WebPy

网络编程:

Twisted\Requests\Scrapy\Paramiko

科学运算:

SciPy\Pandas\python

GUI图形开发:

wxPython\PyQT\Kivy

运维自动化:

OpenStack\SaltStack\Ansible\腾讯蓝鲸

编程&编程范式:

编程是 程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合。

实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。

不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式。

两种最重要的编程范式分别是面向过程编程和面向对象编程

面向过程编程(Procedural Programming):

Procedural programming uses a list of instructions to tell the computer what to do step-by-step. 

面向过程又被称为top-down languages, 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。

基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。

缺点:

如果你要对程序进行修改,对修改部分有依赖的各个部分你都也要跟着修改,随着程序越来越大,相互的依赖关系越来愈多,这种编程方式的维护难度会越来越高。 

用途:

写一些简单的脚本,做一些一次性任务。如果要处理的任务是复杂的,且需要不断迭代和维护的,应使用面向对象。

面向对象编程:

OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。OOP编程可以使程序的维护和扩展变得更简单,大大提高程序开发效率 。另外,基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。

面向对象的几个核心特性如下:

1、Class 类
一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法

2、Object 对象 (Object-Oriented Programming)
一个对象即是一个类的实例化后实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象,人与人之前有共性,亦有不同

3、Encapsulation 封装
在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法

4、Inheritance 继承
一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承

5、Polymorphism 多态
多态是面向对象的重要特性,简单点说:“一个接口,多种实现”。一个基类中派生出了不同的子类,且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。

编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话。

多态允许将子类的对象当作父类的对象使用,某父类型的引用指向其子类型的对象,调用的方法是该子类型的方法。这里引用和调用方法的代码编译前就已经决定了,而引用所指向的对象可以在运行期间动态绑定


编译型语言:
在程序执行之前,单独进行编译,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。
C/C++ 是编译型语言

解释型语言:
在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。

1、脚本语言如vbscript,javascript,installshield script,ActionScript等都是解释型语言,脚本语言不需要编译,可以直接用,由解释器来负责解释。

注:脚本语言一般都有相应的脚本引擎来解释执行。

2、JAVA语言:虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。在运行的时候,由JVM将字节码再翻译成机器语言。

3、C#



文件编码(字符集):

ASCII码:
American Standard Code for Information Interchange,美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。每个字符用8位来表示(一个字节),所以最多只能表示255个符号。

中文编码:
GB2312–>GBK–>GB18030
上述编码版本依次升级,且向下兼容,英文和中文可以统一地处理,每个字符用两个字节来表示。

Unicode:
代表所有字符和符合的编码,统一2个字节长度

UTF-8:
Unicode的升级版,兼容Unicode,字符所占字节数可变。在UTF-8编码中,原来ASCII码代表的字符占一个字节长度,中文占三个字节长度。



动态类型语言:
指在运行期间才去做数据类型检查的语言。Python

静态类型语言:
数据类型在编译期间检查。Java

强类型定义语言(类型安全语言):
一旦一个变量被指定了某个数据类型,如果不经过转换,那么就永远是这个数据类型。Python、Java

弱类型定义语言:
数据类型可以被忽略的语言,一个变量可以赋予不同类型的值。 shell、VB



Python语言的缺点:
1、速度慢:相对JAVA慢一点,但感知不到
2、代码不能加密
3、线程不能利用多CPU问题(多核CPU)

Python默认解释器:CPython

Python库:
标准库:无需安装,直接可以import,标准库路径:/lib
第三方库:必须安装,第三方库路径:/lib/site-package

pyc文件:
预编译后的文件(不是机器码)。当Python程序运行时,编译的结果是保存在位于内存中的PyCodeProject中,当Python程序运行结束时,Python解释器则将PyCodeProject回写到pyc文件中。当第二次运行时,程序会先寻找pyc文件,如果找到则直接载入,否则重复上面的步骤。可以这么说,pyc文件其实是PyCodeProject的一种持久化方式



数据类型:

1、数字:
int:整型
long:长整型(Python3中没有long)
float:浮点数
complex:复数

2、布尔值:True、False

3、字符串



模块:
用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是一个python文件(文件名:test.py,模块名:test)

导入模块:
导入模块的本质就是把python文件解释一遍

import module_name方式导入模块,调用时需使用:模块名.属性名。

import module_name 即 module_name=all_code
所有代码赋值给了module_name这个变量,module_name=all_code,将module_name加入到python文件中

from module_name import name方式导入模块时,调用时直接使用name即可。(相当于把module_name模块中name直接加入到python文件中解释,解释器不需要再去模块中检索对应模块属性代码)

搜索路径:sys.path

实例:

方法一:
import module_name
方法二:
from module_name import *

注:该方法导入模块中所有的代码,使用时不带模块名,不建议使用
方法三:
from module_name import name as new_name

导入模块中的某个方法或函数等的代码,并命名成别名

from module_name import m1,m2,m3
多处使用的话,可以用该方法优化,省去调用该模块内容时检索的消耗

导入多个模块

import module_name1,module_name2

模块的分类:

a.标准库
b.开源模块
c.自定义模块


包:
用来从逻辑上组织模块的,本质就是一个文件夹(目录),必须带__init__.py文件
导入包的本质:就是执行包下面的init
init文件中,添加import module_name

from . import module_name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值