2.1 环境的安装

首先,在官网下载py2与py3,2,3版本有很多不兼容所有会存在两个版本共存的问题。目前,mac、ubuntu等一些系统已经内置了python2版本。

为了开发需要,我们需要下载并安装python3。用于开发的软件,通常安装版本一般是找次新版本进行安装。安装pycharm IDE 开发工具。

环境变量的功能,及其配置。环境变量分为,用户环境变量(只对当前用户生效)和系统环境变量(所有用户均有效)。主要用于终端使用,不需要输入python解释器的完整路径,只要输入pythonx 就可使用。

PATH:方便用户在终端执行程序。即,将可执行程序所在的目录添加到环境变量,以后直接调用即可。

mac的环境变量在~/.bash_profile文件中。通常在安装的时候python会自动生成环境变量,无需手动配置。

2.2 编码

当前,比较通用的编码有ASCII、Unicode、UTF-8、GB2312、GBK。由于计算机最初使用的是ASCII编码,所以其他编码必须兼容ASCII码。

  1. ASCII
    ASCII码,7bits表示一个字符,最高位用0表示,后来IBM进行扩展,形成8bit扩展的ASCII码。包含所有英文字母和常用的字符,最多可以表示127或256种。
  2. Unicode
    Unicode(万国码),随着计算机的普及,计算机需要兼容多国语言,Unicode编码应运而生。32bits表示一个字符,总共可以表示2**32种不同的符号,远远超出目前所有文字及字符,迄今使用21bits。通用的特点换来的是存储空间的浪费,一般只用于计算机内部处理计算。
  3. utf-8
    为弥补unicode的不足,utf-8针对unicode进行压缩和优化,去掉前面多余的0,只保留有效部分。完整保留ASCII码,欧洲文字一般用2bytes表示,中文一般用3bytes表示。
  4. GBK
    全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。
    中文使用2bytes表示。GBK,是对GB2312的扩展,又称GBK大字符集,简而言之就是所有亚洲文字的双字节字符。
# IDE:统一使用UTF-8, 全局和项目均如此

2.3 变量

变量的主要作用是为了多次重复使用方便。

# 查看python关键字
import keyword
keyword.kwlist

常量:不允许修改的值,python中只是约定

2.4 python基础语法

1. 多行显示

Python语句中一般以新行作为语句的结束符。

但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

total = item_one + \
        item_two + \
        item_three

2. 实现换行

input("按下 enter 键退出,其他任意键显示...\n")

# 不换行输出
print(x, end='')
print(y, end='')

3. 多个变量赋值

a = b = c = 1
a, b, c = 1, 2, "john"

4. 成员运算符

in						# 如果在指定的序列中找到值返回 True,否则返回 False
not in				# 如果在指定的序列中找到值返回 False,否则返回 True

5. 身份运算符

is	
# is 是判断两个标识符是不是引用自一个对象	x is y 
类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not	
# is not 是判断两个标识符是不是引用自不同对象	x is not y 
类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

6. 不换行输出

  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

7. pyc 文件

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码

字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件字节码是一种中间码。它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。

机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据机器码是电脑CPU直接读取运行的机器指令。

ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。

2.5 py2与py3的区别

  1. 字符串类型不同
v = u'henry'
print(v, type(v))  # unicode类型
# py2                  py3 数据类型对应关系
unicode<class>    <--> str
eg.u'henry'        <--> 'henry'
str               <--> bytes
eg.henryx'         <--> henryex

Note

  • bytes类型一般用于文件存储和网络传输
  1. 其他不同

Py2

Py3

1

字符串类型不同

unicode,str

str,bytes

2

py2py3默认解释器编码

ASCII

UTF-8

3

输入输出

raw_input() ; print

input() ; print()

4

int / long

int 和 long,除法只保留整数

只用int,除法保留小数

5

range/xrange

range/xrange

只有range,相当于py2的xrange

6

info.keys,info.values,info .items

数据类型是list

数据类型是<class 'dict_keys'>

7

map/filter

数据类型是list

返回的是iterator,可以list()查看<map object at 0x108bfc668>

8

reduce

内置

移到functools

9

模块和包

需要__init__.py


10

经典类和新式类

同时拥有

只有新式类

11

yield from

没有


12

进程池和线程池

from multiprocessing import Pool

form concurremnt.furtures.thread import ThreadPoolExecutor orm concurremnt.furtures.process import ProcessPoolExecutor

☞☞☞     古人学问无遗力,少壮工夫老始成。纸上得来终觉浅,绝知此事要躬行。    ☜ ☜ ☜