0%

整数相除一般默认为整数除法若想为普通除法,则可from_future_import division

//是整数除法的符号1.0//2.0=0.0

**是幂运算符

即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) 则提供索引-值对

python基础