1.安装Python2.7版
下载地址:https://www.python.org/downloads/1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar xf Python-2.7.9.tgz -C /usr/src/
cd /usr/src/Python-2.7.9/
./configure --prefix=/usr/local/python27
make
make install
cat ~/.bash_profile //将python2.7加入环境变量
.bash_profile
Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
User specific environment and startup programs
PATH=/usr/local/python27/bin:$PATH:$HOME/bin
export PATH
cd /usr/local/python27/bin/
rm python python2 -f //删除软链接文件,避免影响系统自带python环境
2.第一个Python程序
Python的源代码以“py”作为文件后缀。1
2
3
4
5
6
7
8
9
10 vim helloworld.py
!/usr/local/python27/bin/python2.7
-*- coding:utf8 -*-
if __name__ == "__main__":
print "hello world"
python2.7 helloworld.py
hello world
3.Python文件类型
源代码(py)
字节代码(pyc)
1
2
3
4
5cat compile.py
!/usr/local/python27/bin/python2.7
import py_compile
py_compile.compile('hello.py')优化代码(pyo)
1
2
3python -O -m py_compile hello.py
参数:-O 表示生成优化代码。
参数:-m表示导入模块。
4.Python编码规则
命名规则
变量名、包名、模块名、类名、对象名、函数名代码缩进和冒号
python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。模块导入的规则
1
2
3
4
5import sys
import sys.path
import sys.argv
from sys import path
from sys import argv语句的分隔
Python可以使用分号作为分隔符。但是一般不写。字符编码
python 2.x 默认编码是ASCII(不支持中文)
python 3.x 默认编码是UTF-8多行语句
可以使用斜杠( \)将一行的语句分为多行显示1
2
3total = item_one + \
item_two + \
item_three引号
Python 接收单引号(‘ ),双引号(“ ),三引号(‘’’ “””) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。注释
python中单行注释采用 # 开头。
python没有块注释,所以现在推荐的多行注释也是采用的#空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
5.数据类型
变量
变量命名规则:变量名由字母、数字和下划线组成。变量名的首字符必须是字母或下划线。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15变量定义和变量地址查看
x=111
print id(x)
5614048
x=222
print id(x)
5614700
变量值相等,变量名不一样,地址一样
a=1
b=1
id(a)
5613384
id(b)
5613384变量分为:全局变量和局部变量
常量
数据类型
Python不需要显式的声明变量的类型。
Python有五个标准的数据类型:- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
数据类型转换
| 函数 | 描述 |
|---|---|
| int(x [,base]) | 将x转换为一个整数 |
| long(x [,base] ) | 将x转换为一个长整数 |
| float(x) | 将x转换到一个浮点数 |
| complex(real [,imag]) | 创建一个复数 |
| str(x) | 将对象 x 转换为字符串 |
| repr(x) | 将对象 x 转换为表达式字符串 |
| eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
| tuple(s) | 将序列 s 转换为一个元组 |
| list(s) | 将序列 s 转换为一个列表 |
| set(s) | 转换为可变集合 |
| dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组。 |
| frozenset(s) | 转换为不可变集合 |
| chr(x) | 将一个整数转换为一个字符 |
| unichr(x) | 将一个整数转换为Unicode字符 |
| ord(x) | 将一个字符转换为它的整数值 |
| hex(x) | 将一个整数转换为一个十六进制字符串 |
| oct(x) | 将一个整数转换为一个八进制字符串 |
6.运算符
算术运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 两个对象相加 | a+b输出30 |
| - | 号负或减 负数或是一个数减去另一个数 | -a 或 a-b输出-10 |
| * | 乘 两个数相乘或返回一个被重复若干次的字符串 | a*b输出200 |
| / | 除 | b/a输出2 |
| % | 取模 返回除法的余数 | b%a输出0 |
| ** | 幂 返回x的y次幂 | a**b为10的20次幂 |
| // | 取整 返回商的整数部分 | 9//2输出4,9.0//2.0输出4.0 |
比较运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 等于 比较对象是否相等 | (a==b)返回False |
| != | 不等于 比较两个对象是否不相等 | (a!=b)返回True |
| <> | 不等于 比较两个对象是否不相等 | (a<>b)返回True |
| > | 大于 返回x是否大于y | (a>b)返回False |
| < | 小于 返回x是否小于y | (a<b)返回True |
| >= | 大于等于 返回x是否大于等于y | (a>=b)返回False |
| <+ | 小于等于 返回x是否小于等于y | (a<b)返回True |
赋值运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 简单的赋值运算符 | c=a+b将a+b的运算结果赋值为c |
| += | 加法赋值运算符 | c+=a 等效于 c= c+a |
| -= | 减法赋值运算符 | c-=a 等效于 c= c-a |
| *= | 乘法赋值运算符 | c=a 等效于 c= ca |
| /= | 除法赋值运算符 | c/=a 等效于 c= c/a |
| %= | 取模赋值运算符 | c%=a 等效于 c= c%a |
| **= | 幂赋值运算符 | c=a 等效于 c= ca |
| //= | 取整除赋值运算符 | c//=a 等效于 c= c//a |
逻辑运算
| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔“与”,如果x为False, x and y 返回False,否则返回y的计算值。 | (a and b) 返回 20。 |
| or | x or y | 布尔”或” - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
| not | not x | 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
成员运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
身份运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| is | is是判断两个标识符是不是引用自一个对象 | x is y, 如果 id(x) 等于 id(y) , is 返回结果 1 |
| is not | is not是判断两个标识符是不是引用自不同对象 | x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1 |
位运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| & | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| 按位或 | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a按位或b) 输出结果 61 ,二进制解释: 0011 1101 |
| ^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
| ~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
| << | 左移动运算符:运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
| >> | 右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
运算符优先级
| 运算符 | 描述 |
|---|---|
| ** | 指数 (最高优先级) |
| ~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
| * / % // | 乘,除,取模和取整除 |
| + - | 加法减法 |
| >> << | 右移,左移运算符 |
| & | 位 ‘AND’ |
| ^ 按位或 | 位运算符 |
| <= < > >= | 比较运算符 |
| <> == != | 等于运算符 |
| = %= /= //= -= += *= **= | 赋值运算符 |
| is is not | 身份运算符 |
| in not in | 成员运算符 |
| not or and | 逻辑运算符 |
7.流程控制
单分支
1
2
3
4if(表达式):
statement
else:
statement多分支
1
2
3
4
5
6
7if(表达式):
statement
elif(表达式):
statement
......
else:
statement分支嵌套
1
2
3
4
5
6
7if(表达式):
if(表达式):
statement
else:
statement
else:
statement循环语句
- while循环
1
2
3
4while(表达式):
statement
else:
statement
- while循环
for循环
1
2
3
4for 变量 in 集合:
statement
else:
statement“集合”可以是字符串、元组、列表、range()函数等。
break和continue语句
break和continue用于循环跳出。