Python特性总结

深入理解Python特性
本文总结了Python的关键特性,包括其强类型动态脚本语言的性质、解释性、日志模块的使用、类型转换方法、Python2与Python3的主要区别、性能优化手段、作用域规则、Python的定义以及命名空间的概念。

目录

一、Python是强类型的动态脚本语言

二、Python是解释性语言

三、Python日志模块

四、Python类型转换

五、Python2 与Python3 的主要区别

六、关于提升Python 程序性能的手段

七、Python 中的作用域

八、什么是Python

九、Python 的命名空间


一、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 中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。它就好像一个盒

子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面寻找相应的对象。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值