【Python】 Python 基础
一、Python的历史版本2.x 与3.x的不同
2.x版本存在的问题:
(1)代码 臃肿,源码的重复量很多
(2)语法不清晰,掺杂着C/PHP/Java的,一些陋习
3.x版本:几乎把2.x的源码重构,语法规范、清晰、优美
二、编译型语言与解释型语言的区别
1.编译型语言:一次性把全部程序编译成二进制文件,然后在运行
优点:运行速度快、
缺点:开发效率低、不能跨平台
2.解释型语言:
遍运行遍翻译
优点:调试代码很方便,开发效率高,可以跨平台
缺点:运行速度慢
三、Python是一个解释型强类型的动态语言
四、Python编译器有
Cpython/ Jpython/ Iropython,先编译成字节,然后转成二进制文件,pypy是编译型,
五、变量的功能
(1)存储运算过程中的结果,方便以后调用
(2)数字、字符串、下划线任意组合
(3)不能以数字开头
(4)不能是Python中的关键字
(5)驼峰式、下划线
(6)最好不要中文、拼音、太长
六、常量
Python无常量,常量需要大写表示,常量永远都不会变
七、注释
成对单引号(三个)、双引号(三个)
八、其他知识
字符串只有相加和相乘
input 是和计算机交互的方式,返回内容全是字符串
Python2 :raw_input
Python3: input
bool 是一个数据类型
格式化字符串,百分号占位符需要和百分号括号里面的一一对应,当被格式化的字符串中出现“2%”时需要在后面追加一个“%” 例如“2%%”,否则会因为没有转换报错,如下图。
![](https://images2017.cnblogs.com/blog/1255078/201710/1255078-20171019153216787-1442447386.png)
字符串转换成数字的要求?
需要全部数字组成的字符串,才能转换位数字
九、ASCII码
创建开始之初 为七位,为了发展预留了一位,所以最终ASCII 为八位,第一位都为零,中文九万多字
![](https://images2017.cnblogs.com/blog/1255078/201710/1255078-20171020103550818-1123778366.png)
十、字符编码
ASCII:电脑编码系统,由于国际问题,两个字节不能编码全球的语言,仅中国就有80000个,
升级为万国码Unicode,使用ASCII表示的字符,使用Unicode表示并不高效,因为Unicode要比
ASCII占用大一倍的空间。为了解决这个问题出现了中间格式的字符集,他们被称为通用转换格式,
即UTF,常见的utf有 UTF-7,UTF-8,UTF-16,UTF-32
Python从ABC那里继承了统一的风格去处理序列,不管是哪种数据结构,字符串、元组、列表、字节序列、xml元素抑或是数据库查询结果,他们公用一套丰富的操作
迭代、排序,切片、还有拼接
bytearray()
方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
如果 source 为整数,则返回一个长度为 source 的初始化数组; 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列; 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数; 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。 如果没有输入任何参数,默认就是初始化数组为0个元素。
>>>v = memoryview(bytearray("abcefg", 'utf-8')) >>> print(v[1]) 98 >>> print(v[-1]) 103 >>> print(v[1:4]) <memory at 0x10f543a08> >>> print(v[1:4].tobytes()) b'bce' >>>
memoryview()
返回给定参数内存地址查看对象
>>>v = memoryview(bytearray("abcefg", 'utf-8')) >>> print(v[1]) 98 >>> print(v[-1]) 103 >>> print(v[1:4]) <memory at 0x10f543a08> >>> print(v[1:4].tobytes()) b'bce'
容器序列
list、tuple 和 collections.deque 这些序列能存放不同类型的数据
扁平序列:
str bytes bytearry memoryview array.array
不可改变序列:
tuple ,str bytes