目录
一、Python是强类型的动态脚本语言
强类型:不允许不同类型相加
动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候。
脚本语言:一般也是解释型语言,运行代码只需要一个解释器,不需要编译。
二、Python是解释性语言
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语
言编写的程序。
解释性语言在运行程序的时候才会进行翻译。
编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成机器语言(可执行文件)。
三、Python日志模块
Python 自带logging 模块,调用logging.basicConfig()方法,配置需要的日志等级和相应的参数,Python 解释器会按照配
置的参数生成相应的日志。
四、Python类型转换
内建函数封装了各种转换函数,可以使用目标类型关键字强制类型转换,进制之间的转换可以用int(‘str’,base=’n’)将特定
进制的字符串转换为十进制,再用相应的进制转换函数将十进制转换为目标进制。
可以使用内置函数直接转换的有:
list---->tuple tuple(list)
tuple---->list list(tuple)
五、Python2 与Python3 的主要区别
1、核心类差异
1) Python3 对Unicode 字符的原生支持
Python2 中使用ASCII 码作为默认编码方式导致string 有两种类型str 和unicode,Python3 只支持unicode 的string。
Python2 和Python3 字节和字符对应关系为:
2) Python3 采用的是绝对路径的方式进行import。Python2 中相对路径的import 会导致标准库导入变得困难(想象一下,
同一目录下有file.py,如何同时导入这个文件和标准库file),Python3 中这一点将被修改,如果还需要导入同一目录的文
件必须使用绝对路径,否则只能使用相关导入的方式来进行导入。
3) Python2中存在老式类和新式类的区别。
Python3 统一采用新式类。新式类声明要求继承object,必须用新式类应用多重继承。
4) Python3 使用更加严格的缩进Python2 的缩进机制中,1 个tab 和8 个space 是等价的,所以在缩进中可以同时允许tab
和space 在代码中共存。这种等价机制会导致部分IDE 使用存在问题。Python3 中1 个tab 只能找另外一个tab 替代,因此
tab 和space 共存会导致报错:TabError:inconsistent use of tabs and spaces in indentation.
2、废弃类差异
- print 语句被Python3 废弃,统一使用print 函数
- exec 语句被python3 废弃,统一使用exec 函数
- execfile 语句被Python3 废弃,推荐使用exec(open("./filename").read())
- 不相等操作符"<>"被Python3 废弃,统一使用"!="
- long 整数类型被Python3 废弃,统一使用int
- xrange 函数被Python3 废弃,统一使用range,Python3 中range 的机制也进行修改并提高了大数据集生成效率
- Python3 中这些方法不再返回list 对象:dictionary 关联的keys()、values()、items(),zip(),map(),filter(),但是可以通过list 强行转换
- 迭代器iterator 的next()函数被Python3 废弃,统一使用next(iterator)
- raw_input 函数被Python3 废弃,统一使用input 函数
- 字典变量的has_key 函数被Python 废弃,统一使用in 关键词
- file 函数被Python3 废弃,统一使用open 来处理文件,可以通过io.IOBase 检查文件类型
- apply 函数被Python3 废弃
- 异常StandardError 被Python3 废弃,统一使用Exception
六、关于提升Python 程序性能的手段
- 使用多进程,充分利用机器的多核性能
- 对于性能影响较大的部分代码,可以使用C 或C++编写
- 对于IO 阻塞造成的性能影响,可以使用IO 多路复用来解决
- 尽量使用Python 的内建函数
- 尽量使用局部变量
七、Python 中的作用域
Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定。当Python 遇到一个变量的话它会按照这的顺序进行搜索:
本地作用域(Local)--->当前作用域被嵌入的本地作用域(Enclosing locals)--->全局/模块作用域(Global)--->内置作用域(Built-in)
八、什么是Python
Python 是一种编程语言,它有对象、模块、线程、异常处理和自动内存管理,可以加入其他语言的对比
Python 是一种解释型语言,Python 在代码运行之前不需要解释
Python 是动态类型语言,在声明变量时,不需要说明变量的类型
Python 适合面向对象的编程,因为它支持通过组合与继承的方式定义类
在Python 语言中,函数是第一类对象
Python 代码编写快,但是运行速度比编译型语言通常要慢
Python 用途广泛,常被用走"胶水语言",可帮助其他语言和组件改善运行状况
使用Python,程序员可以专注于算法和数据结构的设计,而不用处理底层的细节
九、Python 的命名空间
在Python 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。它就好像一个盒
子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面寻找相应的对象。