整数相除一般默认为整数除法若想为普通除法,则可from_future_import division
**是幂运算符
即2**3=8
末尾加L是长整数
输入方式:x=input(“x=”)
-
pow(2,3) 平方
-
abs 绝对值
-
round(浮点数) 四舍五入
import math
math.floor() 浮点数取整math.sqrt() 开根号
import cmath
则可以引入复数计算cmath.sqrt(-1)=1j
并可以做运算,1j*1j=-1+0j
整数相除一般默认为整数除法若想为普通除法,则可from_future_import division
**是幂运算符
即2**3=8
末尾加L是长整数
输入方式:x=input(“x=”)
pow(2,3) 平方
abs 绝对值
round(浮点数) 四舍五入
import math
math.floor() 浮点数取整math.sqrt() 开根号
import cmath
则可以引入复数计算cmath.sqrt(-1)=1j
并可以做运算,1j*1j=-1+0j
print a,b,c
则输出‘a b c’ ,被逗号间隔会产生空格
print a+b+c
则输出 ‘abc’ 无空格
if aaaa:
do something
elif bbbb: #注意!是elif不是else if
do something
else :do something
while flag:
break
赋值可以这样赋值:
x,y,z=1,2,3 实现分别赋值
x,y=y,x 则一句话实现了交换!
有一个元组value=(1,2,3)
则x,y,z=value 即可以用元组赋值给3个变量
for i in range():
range(起始值,终止值(不包括),间隔) 直接产生一个数字列表
xrange 一次只产生一个数字
for x in 字典,则x是字典里的key键
for x,y in 字典.items() 则x是键,y是值
有2个列表a[1,2,3]和b[a,b,c]
zip(a,b)=[(1,a),(2,b),(3,c)]进行组合
zip中列表也可以不等长,当短列表结束后zip就结束了
列表产生式:
[列表值格式 for 变量1 in 某序列 for 变量2 in 某序列 if 条件]
例如
[x+y for x in range(10) for y in range(10) if x==y]
nums是一个数字列表
for i,num in enumerate(nums)
则i从0开始遍历,num从nums的第一个开始遍历
列表和元组属于序列
字典属于映射
上面2者为容器
集合set不属于序列和映射
n1=[1,2,3]
n2=n1 则n2和n1是一个列表
若改变n2。则n1也改变
number=[0,1,2,3,4,5,6]
number[2:6]
其中2包含,6不包含
即输出2,3,4,5
num[起始点:终止点:步长]
若步长为正数,则终止点必须大于起始点,若终止点为空,则默认为最大。若起始点为空,则默认为最小
若步长为负数,则终止点必须小于起始点,若终止点为空,则默认为最小,若起始点为空,则默认为最大
序列可以相加[1,2]+[3,4]=[1,2,3,4]
也可以与常数相乘,即重复n次
[None]*10 则可以创建10个大小的空列表
元素 in 列表(or 字符串) 可以检测元素是否在列表中
min(列表)求最小值
max()求最大值
len()求元素个数
list(字符串) 则可以把字符串的每个字符变成列表的元素
del num[1] 则删除
name=list(‘per’)
name[1:]=list(‘python’)
分片赋值,且终点为空,则可以变相增长列表,也可以变相缩短,总是就是1后面就赋值成这几个元素
name=[p,y,t,h,o,n]
name1=name[:] 则赋值整个列表
name[1:1]=[1,2,3]则可以实现在1处插入
num[1:4]=[] 则删除3个元素!
对象方法:
调用方式:
有个列表对象lister
则有lister.方法()
lister append(元素) 在列表末尾增加元素,如果元素是个列表,则该列表也变成一个元素
a=[0]
a.append([1,2,3])=[0,[1,2,3]]
注意一点:
当在某函数中
执行a.append(b),b是一个该函数中创建的列表
当退出函数时,b被清楚,但是!传入a的是指向b的别名!!!故变为空!记住,传入的是别名!
正确方法应该是a.ppend(b[:])
lister.count(元素) 如果列表长度为n,则检测在这n个元素中,该元素出现了几次
lister.extend(列表) 在列表的末尾连接上这个列表。
lister.index(元素) 找到列表中该元素第一次出现的位置,如果找不到则报错
lister.insert(位置,元素) 在列表的某位置插入元素
lister.pop() 去除最后一个元素并返回
lister.pop(位置) 去除这个位置的元素
lister.remove(匹配元素) 移除第一个匹配元素
lister.reverse() 将列表中的元素反向存放
lister.sort() 改变列表的元素的排列顺序
非对象方法的排序方式:
sorted(字符串) 则返回一个排序的字符列表
sorted(列表) 返回排序列表
元组是一种序列,但是元组不能修改。空元组为( )
如果元组只有一个元素,必须要加逗号: (42,)
tuple(列表、字符串) 将列表或者字符串变成元组
元组只能读取,分片读取的方式和列表相同
元组可以在集合中当作键,元组作为很多内建函数的方法的返回值存在
item=[(a,b),(c,d)]
有一个列表,列表里是二元元组
则dict(item) 则返回一个字典
字符串的格式化也可以用字典
记得在括号之后加s
string=‘my name is %(name)s,I’m is %(old)s years old’
data={name:lishaoxiao,old:20}
string % data
字典方法:
有一个字典d={1:a,2:b,3:c}
d.clear() 清楚字典中所有项
dd=d.copy() 浅复制,如果dd改变,则d也改变
dd=deepcopy(d) 深复制,如果dd改变,则d也改变
d={}
d=d.fromkeys([1,2,3]) 用列表中的元素作为字典的键
则d={1: None, 2: None, 3: None}
d.get(键) 如果键不存在,返回None
PS:if d.get() 得到的一定是false,应该:
if d.get() is not None
d.has_key(键) 检查字典中是否存在此键,返回True或者False
或者用 if 键 in 字典 来判断
d.items() 返回元组组成的列表
例如返回[(1,a),(2,b),(3,c)]
iteritems() 返回迭代器而不是列表
d.pop(键) 返回键对应的值,然后删除这个键
d.popitem() 随机删除一个键,返回键和值组成的元组
d.setdefault(键,a值) 如果键存在,则返回键值。若键不存在,则自动给其赋值
d.update(字典) 将字典中的项加入到d中
d.value() 返回字典中所有的值组成的列表
字典可以当作hash表使用!对对对!
f=open(‘路径’,‘模式符号’,‘缓冲参数’)
r’C:\A\B’ 这是个路径,记住r的作用是让后面的字符串中无视转义符的作用,一般都用于路径
模式符号:
r 读模式
w 写模式
a 追加模式,用于写,在尾部追加而不是覆盖
b 二进制模式,处理图像等文件
缓冲参数:
0 无缓冲
1 有缓冲
大于1 则代表缓冲区大小
-1 使用默认缓冲大小
f=open(……)
f.write(字符串) 往f中写入
f.close()
f.read(数字)
数字代表从当前位置读几个字符
如果数字为空,则代表直接读到末尾
管式输出(脚本):
cat file.txt | python aa.pycat
cat得到一段文本,通过脚本读取
读取方式:
import sys
text=sys.stdin.read() #读取输入的所有文本,对于cat管道来说就是全部文本
读取行:
readline(数字n)
若数字为空,则读取各行
若有数字,则最多最去n个字符
readlines读取所有行!并且返回一个列表!
writelines(列表),则分行写入列表中的文本
open()其实自带迭代效果
即
f=open(filename)
for line in f:
print line
f.close
或者用fileinput迭代器
import fileinput
for line in fileinput.input(filename):
print line
def function(n,list)
‘函数文档说明’ #这一行用于写函数说明,调用方式为funtion.doc
n=2
list[0]=1
return
函数的话,普通变量不能更改,列表可以被更改。
若不想更改列表,可以funtion(n,list[:])
有一个字典d
def funciont(dd):
dd={}
dd[1]=0
若有个空字典d
执行function(d)
则d不会发生变化,因为dd已经不再指向d了
所以应该去掉dd={}
def funtion(x,y,z=3,*pos,**keypar)
x,y,z用于收集前3个位置参数
*pos用于收集剩余位置参数,变成一个元组
**keypar用于收集关键字参数,变成一个字典
若要往函数中放入元组或者字典
则 调用function(*元组,**字典)
函数中加
global x
后,则x则设置成全局变量
“str1”“str2”
则会输出2者的拼接
但是2个字符串变量的话,必须要用+号
s1+s2
print 1000L
将输出1000,L被省略
若想不省略,则用repr( ),即括号内都转为字符串
或者str( )
repr是个函数,str是个类型转换
input()输入的是自己判断的值,
raw_input()输入的一定会转成字符串
长字符串可用’‘’ ‘’’ 即3个单引号
在这里面可以换行, 特殊符号都不需要转义
r’字符串’ 这样字符串就变成了原始字符串,里面的转义符号’'将被去除转义
字符串是不可修改的,故分片赋值什么的都是不行的
字符串格式化:
string=‘%s is %d years old’
string % (‘Lishaoxiao’,‘23’) 通过%符号接一个元组,则可以进行格式化
格式化顺序:
%转换说明符开始
转换表示:-左对齐 , +在转换值之前要加上正负号。 空格则说明整数前要保留空格, 0表示位数不够用0填充
最小字段宽度:指定宽度
点 . 后跟精度值
接着是转换类型
字符串方法:
title.find(子串) 查找子串,返回最左端的位置,找不到则返回-1
title.find(子串,位置1) 从位置1开始查找子串
title.find(子串,位置1,位置2) 从位置1到位置2区间内查找子串
有个列表seq=[‘1’,‘2’,‘3’] #列表中必须是字符
有个字符c=‘+’
c.join(seq) 则seq被拼接成字符串,间隔符是字符c
故字符列表list转为字符串无间隔方法为
s=‘’
s.join(list)
title.lower() 返回字符串的小写字母版
titile.replace(字符串1,字符串2) 把title中的字符串1换成字符串2
title.split© 则字符串被分割成列表,通过字符c分割。如果不提供字符,则默认为空格
title.strip() 去除两侧的空格
table=maketrans(‘abc’,‘def’) 则a变成d,b变成e,c变成f
接着title.translate(talbe) 则title中的a变成d,b变e,c变f
enumrate(string) 则提供索引-值对