Python遵循GPL协议。Python是脚本语言,边解释边运行,把开发人员从繁琐的内存管理、编译链接中解放出来。
Python的缺点是执行效率相对慢,优化的方法是可以编译成pyc文件执行,或者使用C语言进行扩展。Python能很好的融合其他语言程序进行扩展。
Python使用空格分割(编码平台设置中注意tab键设置)。不需要;作为语句结束,除非行尾有注释则可以用;分割
Python支持的基本数据类型:
数据类型 | 存储模型 | 更新模式 | 访问模型 | |
整型 | 原子 | 内容不可变 | 直接访问 |
整数:正数、负数、十进制、十六进展(0x开头)、八进制(0开头) 长整型:可以在数据后带上L或l指定是long型 布尔型 浮点型:1.22 1.22e-5等 复数 |
字符串 | 原子 | 内容不可变 | 顺序访问 | |
列表 | 容器 | 内容可变 | 顺序访问 | |
元组 | 容器 | 内容不可变 | 顺序访问 | |
字典 | 容器 | 内容可变 | 索引访问 |
[运算符]:
类似C语言的运算符,差异比如:
1)** 表示乘方
2)// 表示浮点数的整除结果
3)python没有++ --运算符
4)python没有!运算符,而用not
【常用整型转换函数】:
int(obj,base) 把obj的数字字符串转换为数字,base可以是10/16/8,用于指定数字字符串是多少进制; 如:int("16",16) 为22; int("16",10) 为16
long(obj,base) 同上
float(obj) 返回obj的小数表示,obj可以是字符串或浮点数。 如:float("1.11e-2") float(1.11e-2) 结果都是0.0111
bool(obj) 返回True或False; 如:obj为0、空字符串,则返回Flase
Python支持多个变量一起赋值。 如 a,b = 10,20
【字符串型操作】:
python中没有字符的概念。
1)字符串可以是 ' 或 " 括起来。如果字符串有多行,用三引号 '''或""" 括起来。
2)字符串前加r,可以防止把\转义。 如:a="nihao \\" print a后的结果是nihao \ ;a=r"nihao \\" print a后的结果是nihao \\
3)字符串也是序列,可以做序列的按索引访问、切片等操作。
4)字符串比较可以用> 或<,比较的方式市逐个字符比较
5)字符串拼接可以用+
6)字符串的join函数,可以把序列转换为字符串 如下:
a=["a","b","c","d"]
print a
print "".join(a)
打印结果是:
['a', 'b', 'c', 'd']
abcd
【序列(能顺序访问的数据类型)操作】:
seq[n] 获取序列中下标为n的元素
seq[x:y] 获取序列中下标从 x 到 y前一个 的元素
seq*m 把序列重复获取m此。 如:a = [1,2,3] a*2为[1,2,3,1,2,3]
seq1+seq2 连接两个序列
obj in seq 判断obj在seq序列元素中
obj not in seq 判断obj不在seq序列元素中
序列切片:
切片的概念,从序列中按照指定格式获取部分内容
注:
序列切片操作中,-1表示长度减1、即序列最后一个元素的下标
切片操作中x 为none,表示从第一个元素开始;y 为 none,表示到最后一个元素结束。
seq[x:y] 获取序列中下标从 x 到 y前一个 的元素
seq[x:y:t] 获取序列中下标"从 x 到 y前一个的元素"范围内,步长为t
如:
a [1, 2, 3, 4, 5, 6, 7]
a[none:3] 为[1, 2, 3]
a[2:3] 为[3]
a[2:None] 为[3, 4, 5, 6, 7]
a[None:None] 为[1, 2, 3, 4, 5, 6, 7]
a[:] 为[1, 2, 3, 4, 5, 6, 7]
a[2:-1] 为[3, 4, 5, 6]
a[1:5:2] 为[2, 4]
a[::2] 为[1, 3, 5, 7]
序列相关函数:
enumerate(ite) 输入一个序列对象,返回序列对象的下标 及其 下标对应元素值。
len(ite) 返回序列长度
reversed(ite) 返回逆序的序列
zip(ite1,ite2....iteN) 如:
a [1, 2, 3, 4]
b [5, 6, 7, 8]
zip(a,b) [(1, 5), (2, 6), (3, 7), (4, 8)]
【字典操作】
字典中元素包含键和值,键是不可改变的,值可改变的。
字典需要通过索引访问,如:
a={"name":"yy","age":30}
print a["name"]
print a["age"]
打印结果是
yy
30
【for循环操作】
from i in rang(x,y):
from i in rang(n):
from ite in lst:
from index, item in enumerate(lsts): 循环过程中index为序列下表,item为序列元素值
【打印操作】
Print “I am %s, age:%d” % (“tt”,30) 注:中间的%是分割打印格式和变量的
通过字典索引打印,不论顺序,Print “I am %(name)s, age:%(age)d” % {“age”:30,”name”,”fk”}
Print的打印数据来源,可以是元组、字典变量,不能是序列变量。即不能是:print “I am %(name)s, age:%(age)d” % [“yi”, 32]
【标识符】
python的标识符有数字、字母和下滑线组成,不能以数字开头。单个下划线_或双下划线__开头的标识符有特殊意义: _开头的标识符标识私有的类属性,不能直接访问;__开头的标识类的私有成员;以__开头和结尾标识python中特殊方法专用标记。
Python的标识符区分大小写。
【关于注释】
注释以#开头。如果还是多上注释,可以通过三引号‘’‘或"""括起来。
【关于程序分割符】
一行代码部需要;表示结束。如果一行包含多个语句,多个语句间需要;分割。
如果一个语句写成多行,需要在行位加 \示多行连接。[] () {}内的部分如果多行,不需要在行尾加 \