[Python杂记2]-<Python基础教程 摘记>
2013-10-28
<Python基础教程>总结摘记
1. 数字
1//2 整除;
2**3 幂(乘方) = 2^3 = 8
10000000000000L,L长整型
0xAF--十六进制
010----八进制
2. 变量
3.语句
4.或得用户输入
input
x= input("x:")
===返回的是字符串(非数字),但必须用双引号包着,如果输入数字,则返回的是数字
raw_input("y:")
===返回的都是字符串,无论是否输入的是数字
5 函数
6模块
import math
则后续需要用math.abs()这种调用方法
from math import sqrt
则直接sqrt(-1)调用
import cmath: 复数
7 #注释
8 字符串
8.1 单引号字符串,转义引号
双引号能够将其中的单引号直接输出
“let's go”
'"hello world"'
\转义
长字符串,原始字符串减少反斜线的使用
8.2字符串拼接 +
8.3 字符串表示 str,repr
repr: 创建一个字符串,以合法的Python表达式的形式来表示值。给编译器看的
eg:
temp = 42
print "temp="+temp#error
修改:
print "temp="+`temp`
or
print "temp="+repr(temp)
or
print "temp="+str(temp)
9.
长字符串:
跨越多行,用3引号
原始字符串:
前面加个r
这样其中的就不会转义了。而是直接输出。
不能在原始字符串结尾输入反斜线
unicode字符串
u开头
10.常见方法
abs
cmath.sqrt()
int/long/float/str ()
math.sqrt()
math.ceil()
math.floor()
round(xx)
str()/repr()
Chapter 2 列表和元组
11.
索引从前往后,从0开始编号
从后往前,索引从-1开始编号
12.
列表和元组的最大区别在于,列表可以修改,元组不可以修改。
索引
序列中的所有索引都是从0开始编号的。
分片
可以用负数
但要注意:只要左边索引比右边所有晚出现在序列中,则是一个空的序列。
记住:取分片,一定是从左往右取。
greetingp[-3:]
步长
第3个参数
会按步长来进行分片取字符
步长不能为0,可以为负数(从右向左取字符)
注意:负数作为步长的话,开始索引要大于结尾索引
13 序列相加
14 序列相乘
用数字x乘以一个序列会生成新的序列。原来序列被重复X次。‘
None python内建值
sequene = [None]*10
15
in
成员资格运算符
16.
内建函数
len()===求序列中包含元素的长度
max==
min==返回序列中的最大值和最小值。但参数并非是一个序列
17
list函数
list(S)===将S创建为列表
18 列表元素可以修改
赋值改变
删除元素: del
names = ["aa","bb","cc"]
del names[1]
分片赋值
numbers[1:4] = []---类似于删除了
列表的方法:
append
list.append()
count
统计某个元素在列表中出现的次数
extend
末尾增加另一个序列
index
从列表中找出某个值第一个匹配项的索引位置======没找到引发异常
insert(id,value)
将对象插入到列表中
pop
移除列表中的一个元素(默认最后一个),并且返回该元素的值
remove
移除列表中某个值的第一个匹配项
reverse
将列表中的元素反向存放
sort
原位置排序
x = ['aa','bb']
y = [:]
或者用sorted()
获取已排序的列表副本的方法
高级排序
cmp内建函数
元组--不可变序列
tuple函数
已一个序列作为参数
元组分片
==
元组vs列表
元组可以在映射(和集合中的成员)中当作键使用
而列表则不行。
Chapter 3 字符串
18
字符串是不可变的
19 格式化字符串
20 find
在较长的字符串中查找子字符串,返回子串所在位置的最左端位置索引。没有找到则返回-1.
21 join
在队列中添加元素
注意:添加的元素必须都是字符错
22 lower
返回字符串的小写字母版
23 upper
大写
24 replace(A,B)
25 split
26 strip()出去两侧(不包括中间的字符串)
27 translate(table,)
转换表,转换部分单个字符。
28 capwords
29 maketrans(from,to)创建转换表
Chapter 4字典
30 创建字典
dict = {'a':1,'bb':'ccc'}
31 dict函数=====不可用?
32 len(d)返回键值对数量
d[k]
d[k] = v
del d[k]
k in d
33
clear
copy--浅复制
deepcopy--深复制
#from copy import deepcopy
formkeys
使用给定的键建立新的字典,每个键默认对应的值为None
get
#用d[key]访问时,如果key不存在会报错。但用get不会
has_key
检查字典中是否含有给出的键
items--将所有字典以列表形式返回。每一项都来自于键值
iteritems--返回一个迭代器对象而不是列表
keys---字典中的键以列表返回
iterkeys
pop
获取给定键的值,然后删除该键值对
setdefault
当键不存在的时候,setdefault返回默认值并且相应地更新字典,如果键存在,那么就返回与其对应的值。默认值是可选的,如果不设定,会默认使用None.
update
update方法可以利用一个字典项更新另一个字典
values()
以列表的形式返回字典中的值。
itervalues()
返回的迭代器
返回值的列表中可以包含重复元素的值。
Chapter 5
34
条件和循环语句
is
同一运算符比较
assert 断言语句
while(condition):
doSomeTh
for word in words:
x
35
36xrange:
range,一次创建整个序列,而xrange一次只创建
break
continue语句
while True
列表推导式
[x*x for x in range(10)]
[x*x for x in range(10) if x%3=0]
pass语句
注意:del删除的只是名称,而不是列表本身。
exec
执行一个字符串的语句是exec
eval
计算Python表达式
C6
37
字符串作为参数时不可变
列表可变
38 参数名字
hello(greeting='hello',name='world')
39 收集参数
def print_param(*params)
*---收集其余参数的位置
params是一个元组
可以用 from p in params:
来取
def print_param(**keyparam)
**---代表关键字参数,放在一个字典中
可以对可变参数进行是否为空的判断和关键字参数是否等于相应值的判断。
40
相反过程
给定一个字典dict_ = {...}
fun(**dict)去调用
41
lambda表达式
Chapter 7
==
42 .类
class Person:
def setName(self,name):
self.name = name
def getName(self):
return self.name
43 .超类
class A(superA,superAA):
def setN(self,name):
self.N = name
Chapter 8 异常
44 . raise Exception("my exception")
45 . import exceptions
46 . try:
except:
else:
47 .try:
finally:
Chapter 9:
48 yield
Chapter 10:
49 . os模块
os.system()
os.popen
50. fileinput模块
51. Set --sets模块
52. heap:
from heapq import *
heap=[]
for n in data:
heappush(heap,n)
53.deque
from collenctions import deque
54. time
44. random
shuffle
56. re模块
57. logging
58 .getopt
--
chapter 11
59.打开文件
open(file,model)
model:
r-read
w-write
a-append
b-binary
+---read/write
60.
f = open()
f.write()
f.read()
file.readline()
61.with语句可以打开文件并且将其赋值到变量上。
with open("") as somefile:
dosth(somefile)
62.标准的文件读取#文件比较大的时候
.1
f=open(filename)
while True:
line = f.readline()
if not line:
break
process(line)
f.close()
.2
f = open(filename)
for line in f.readlines():
process(line)
f.close()
.3
import fileinput
for line in fileinput.input(filename):
process(line)
.4
f = open(filename)
for line in f:
process(line)
f.close()
C12
图形用户界面
63
wxPython
C13
数据库支持
64
C14
网络编程
socket模块
65
poll作为服务器端
66 urllib模块
67 urlbli2模块
from urllib import urlopen
webpage = urlopen("http://www.python.org")
text = webpage.read()
urlretrive(url, localfilename)
很多其他的网络模块
68 xmlrpclib
C15
69 HTMLParser
70 Beautiful Soup
C19
71. ConfiguParser模块
eg. from ConfigParser import ConfigParser
72.logging模块
C21
73 reportlab
C22
74 xml
C27
75 xml-rpc