1.首先要注意的是:在Python中,首行不能有空格,因为Python对缩进要求严格
2.十六进制用Ox前缀和0-9,a-f表示
3.布尔值是True、False两种值(请注意大小写)
4.空值None是Python里一个特殊的值
5.for i in range(1,100):
x++
6.字符串可以用' ' 或 “ ”括起来
要注意的是:本身有' , 用 " "
本身有" , 用' '
本身有' 和 " ,用转义字符\
7.raw字符串
r' ' 表示里面的字符不需要转义
"'Line 1
Line 2
Line 3"' 表示多行字符串
8.显示中文 print u'中文'
UnicodeDecodeError?
第一行加上: # -*- coding:utf-8 -*-
并选择UTF-8格式保存
9.Python把0、空字符串' ' 和 None看成是False,其他都为True
10.数据类型list
L = ['Michael','Bob','Tracy']
print L[-1] 表示输出倒数第一个元素
print L[-2] 表示输出倒数第二个元素
L.append(element) 追加元素至末尾
L.insert(index,element) 添加到索引为index的位置
L.pop() 删除list中最后一个元素
L.pop(2) 删除list中索引为2的元素
11.tuple元组,一旦创建,无法修改
t = (0,1,2,3)
创建单元素tuple
t = (1,)
tuple包含list,list内容可以改变
12.if score >= 60:
print 'passed'
else:
print 'unpassed'
if not age >= 18:
print 'teenager'
if score >= 60:
print 'passed'
elif score > 45:
print 'good'
13.字典 dict
d = {
'Adam':95,
'Lisa':85,
'Bart':59 key:value
}
len(3) 表示字典的集合大小
14.查找
使用d['Adam'] 或者 d.get('Adam')
15.print x,y 其中,x和y类型可不同,相当于空格
print x+y 其中,x和y类型必相同
16. dict 占用内存大,但查找速度快
list 占用内存小,查找速度随元素增加而下降
17.在dict中,key不能重复
key-value 序对没有顺序
作为key的元素必须不可变
18.更新dict
d['Paul'] = 72
19.遍历dict
for key in d:
print key,':',d[key]
20.s = set(['A','B','C','C'])
print s
注意:set会自动去掉重复的元素
21.访问set
>>> 'A' in s
True
22.set存储的元素必须是不变的对象,没有顺序
23.更新set
s = set([1,2,3,4])
s.remove(3)
s.add(5)
24.abs(argc) 求绝对值函数
25.cmp(x,y) 比较函数
x < y,返回-1;x == y,返回0;x > y,返回1
26.编写函数
def my_abs(x):
if x >= 0:
return x
else:
return -x
27.import math
t = math.sqrt(b*b - 4*a*c)
28.定义可变参数
def average(*args):
print len(args)
29.for i in range(3):
r.append(L[i]) 表示L[0]、L[1]、L[2]入队
30.L[0:3] 切片 0,1,2
L[:3] 0,1,2
L[:] 所有元素
L[::2] 每2个取一个
L[-1] 取倒数第一个元素
L[-2:]
L[:-2]
L[-3:-1]
倒序切片包含起始索引,不包含结束索引
31.>>>'abc'.upper()
'ABC'
32.python中,迭代取出的是元素本身,而非元素的索引
33.索引迭代
for index,name in enumerate(L):
print index,'-',name
34.迭代dict的value
d = {'Adam':95,'Lisa':85,'Bart':59}
print d.values()
或者 d.itervalues() 节省了生成list所需的内存
迭代dict的key和value
for key,value in d.items():
print key,':',value
或者 d.iteritems() 不占用额外的内存
35.生成列表
print [x*(x+1) for x in range(1,100,2)]
36.函数式编程
@允许有变量
@支持高阶函数
@支持闭包
@有限度地支持匿名函数
注意:1.变量可以指向函数
2.函数名是指向函数的变量
37.高阶函数:能接收函数作为参数的函数
def add(x,y,f):
return f(x)+f(y)
38.map()函数
def f(x):
return x*x
print map(f,[1,2,3,4])
39.reduce()函数
def f(x,y):
return x+y
reduce(f,[1,3,5,7,9],可选参数a)
注:f必须接收两个参数
40.s.strip(rm) 删除s字符串中开头、结尾处的rm序列的字符;
当rm 为空时,默认删除空白符(包括 '\n','\r','\t',' ')
41.filter()函数:过滤作用
自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list
def is_odd(x):
return x%2==1
filter(is_odd,[1,4,6,7,9])
42.自动排序函数 sorted()
sorted([36,5,12,9,21],reversed_cmp)
43.闭包:内层函数引用了外层函数的变量,然后返回内层函数的情况。
44.匿名函数
map(lambda x:x*x,[1,2,3,4])
45. 装饰器
@new_fn
def f1(x):
return x*2
上述等价于:
def f1(x):
return x*2
f1 = new_fn(f1)
46.偏函数
import functools
int2 = functools.partial(int,base=2)
47.包就是文件名
模块就是xxx.py文件
48.包下面有_int_.py
49.起别名
from logging import log as logger
50.动态导入模块
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
51.老版本中使用新版本的功能
from __future__import division