一、python特色
1. 第一行“#!/bin/python”,和linux平台保持兼容
2. 第二行指明编码方式,缺省是utf-8 。如果要输出中文或采用中文的注释,需要加上gb18030或gb2312
3. python文件运行后直接退出,可以在最后一行加上raw_input()或input()
4. 多行注释可以用(‘’‘)或者(“”“)
5. 可以用单引号和双引号来表示字符串,两者是完全相同的。
二、变量、运算符与表达式
1. 变量
python中的变量不需要声明类型的,可以直接使用 = 赋值
2. 运算符
| 按位或^按位异或 & 按位与
<<,>> 移位 +,- 加法与减法 *,/,% 乘法、除法与取余
+x,-x 正负号 ~x 按位翻转 ** 指数
x.attribute属性参考x[index]下标x[index:index]寻址段
f(arguments...)函数调用(experession,...)绑定或元组显示
[expression,...]列表显示{key:datum,...}字典显示
'expression,...'字符串转换
计算顺序是从左往右的,()可以改变计算顺序
三、流程控制
1. 顺序执行
python的程序缺省是顺序执行的,不需要main()的入口函数才能执行,这是脚本语言的特点。但是遇到函数定义是不会执行的,只有函数调用时才执行。
2. 条件执行
if... else...
love = True
if love = True:
print "I love you"
else:
print "I not love you"
elif
有两点要注意:语句后面有:号;子句要缩进
3. 循环执行
for... in ...:
for i in range(5):
print i
四、函数
函数就是将一段逻辑相对独立,功能相对单一,又会在多处使用的代码,写成一个函数,再需要时进行调用,而不需要在每个地方都写一大堆重复代码。
1. 自定义函数
格式:
def 函数名(参数 ,参数):
实现语句
实现语句
return...
2. 常用内置函数
rawinput([prompt])用来让用户输入数据
int() 用来返回整数,可以将string类型转化成int类型
len([string])用来计算字符串,列表等对象的长度
range(起始值,终止值,步长)
str() 将对象转化成字符串
五、容器
容器就是用来存放一些对象的数据结构,python提供了列表(list),元组(trupe),字典(dict)。
1. 列表
定义: 变量 a = []#空的列表
或者 b = [1, 2,4, 'i love you']#元素可以是不同的类型
添加元素: a.append(元素)#添加元素到最后
a.insert(位置, 元素)#在固定位置,插入元素,原来后面的元素往后排,如果位置大于列表当前的长度,则和append的结果是一样的,添加到最后
a.remove(元素)#删除元素
a.index(元素,开始,结束)#返回匹配到的第一个元素的索引
a[索引] #引用元素
2. 元组
元组和列表很相似,唯一的区别是元祖定义好之后,就不能再改动了,所以元组简单很多。
3. 字典
字典就像是java中的map,根据一个键来对应一个对象
#!/usr/bin/python
#'ab' is short for 'a'ddress 'b'ook
ab = { 'Swaroop' : 'swaroopch@byteof.info',
'Larry' : 'larry@wall.org',
'Matsumoto' : 'matz@ruby-lang.org',
'Spammer' : 'spammer@hotmail.com'
}
print "swaroop's address is %s" %ab['Swaroop']
#Adding a key/value pair
ab['Guido'] = 'guido@python.org'
#Deleting a key/value pair
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' %len(ab)
for name, address in ab.items():
print 'Contact %s at %s' %(name, address)
if 'Gudio' in ab: #OR ab.has_key('Guido')
print "\nGuido's address is %s" %ab['Guido']
raw_input()
4. 序列
序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列