1.头行注释
#! /usr/bin/env python
#-*- coding: utf-8 -*-
第一行,说明本文件用python可执行程序,(在linux下必须加)
第二行,文中涉及中文就需要本条指令
2.字符与编码
ord('A') #获取A的ASCII码:65
chr(65) #将ASCII变成对应的字符:‘A’
在winodw的cmd(默认gbk编码)中,即使打印unicode码,也会自动转化成gbk码
str1.decode('gb2312') #将gb2312的str1变成unicode的str1
str1.encode('gb2312') #将unicode的str1变成gb2312的str1
len('ABC') #获取字符串长度
整数(%d),浮点(%f),字符串(%s),十六进制整(%x)
3.list,tuple,dict,set
可变对象(list,dict),
a.sort() #排序,用于可变对象。但b=a.sort()返回是none
sorted()则可以实现b=a.sorted(),
这么理解把,b=a.sort()实际上是
①先s=a.sort(),s是临时变量,但由于a.sort()是作用与原来的list,并没有生成新list,所以s指向空的内存地址。
②然后b = s
详细看第2.python总结与参考第4点
不可变对象(tuple,数值型,字符串)
a.replace('b','c') #c代替原有的b,用于不可变对象
list: [1,'a']
a.append('b') #a为list,在列表尾部插入元素‘b’
a.pop() #a为list,删除末尾元素
a.pop(1) #a为list,删除1号位元素
list插入
a.insert('b') #a为list,在1号位插入元素‘b’
list大小写
a.lower() #a是list,将a中的所有字符串变成小写
a.upper() #a是list,将元素大写
tuple: (1,'a')
dict: {'a' =1,'b'='c'}
dict查询
‘b’ in a #a是dict,key‘b’是否在a中,不存在返回false
a.get('b') #a是dict,查看a中是否有关键b,不存在返回none
a.get('b',-1) #同上,不存在返回-1
a.pop() #删除最后一个key
set: ([1,'a','b'])
set增加移除
a.add('b') #a是set,尾部增加key‘b’,重复key不报错也不增加
a.remove('b') #a是set,移除key‘b’
4.判断与循环
#判断举例
if a>2:
print 1
elseif a=2:
print 0
else:
print -1
#b是list,变量a分别取b的元素并打印
for a in b:
print a
5.调用函数
help(abs) #查看abs函数的功能与说明
com(x,y) #x,y是数字,比较两数大小,x<y,返回-1,x==y,返回0,如x>y,返回1
数据类型转换:int(‘123’)返回,123;str(1.23)返回‘1.23’
6.定义函数
def a(x): #定义函数a,参数x
pass #没有内容可用pass代替,有内容最后用return x,如果有内容却没写return,自动补充return none
isinstance(1,int) #判断1是否是int型,内置函数
7.函数参数
参数顺序:必选参数,默认参数,可变参数,关键字参数
def a(b,c=0,*d,**e): #函数a参数中,b是必选参数,c是默认参数,d是可变参数,e是关键字参数
可变参数:接收tuple(如果是list转化中会被变成tuple),直接在参数括号中输入元素而不需要增加[]
关键字参数:接收dict,直接在参数括号中输入key=‘value',不用增加{}
8.递归
def a(x):
return x*(a(x-1)) #返回中包含函数本身
9.切片
切list,tuple和range,字符串
a = range(100) #获取0~99的list
a[10:20] #获得第11位到20位的list
a[10:20:2] #获得第11位到20位相隔两位的list,
a[-2:] #获得倒数第2位到最后的list
‘ABCDEF’[:3] #返回'ABC'
10,迭代
按顺序获取list或typle的元素,dict的key和value
for d in k: #k是list或typle
for k,v in a.iteritems(): #用于dict,只获取value是for v in d.itervalues():
for a in 'ABC' #字符串迭代,a只是普通变量
11.列表生成式
range(0,11) #直接使用range生成list
[x*x for x in range(0,10)] #返回[0,1,4,9,16,25,36,49,64,81]
[x+y for x in 'ABC' for y in 'DEF'] #两重循环,返回['AD', 'AE', 'AF', 'BD', 'BE', 'BF', 'CD', 'CE', 'CF']
os
os.listdir('.') #列出文件和目录
12.生成器
就是生成一个list,但不返回,只有调用next()才逐个返回
(x*x for x in range(0,10)) #和生成式的区别在于这里是括号(),列表生成式是中括号【】
可以直接通过next()方式返回
也可以用循环for a in b #b就是指向生成器的变量打印,如果将yleld代替了return,yleld类似与中断和上述next()一样,只能通过next()重新启动。