https://pypi.python.org/pypi #模块网站
#!/usr/bin/env python #在环境变量env中找Python
#coding: utf8
1.自动补全
配置环境: 创建以下文件
vim /usr/local/bin/tab.py
输入:
import readline
import rlcompleter
readline.parse_and_bind('tab:complete')
存储后设置 SPYTHONSTARTUP
vim ~/.bash_profile 增加以下内容
再最后的export PATH前加
PYTHONSTARTUP=/usr/local/bin/tab.py
export PATH PYTHONSTARTUP
保存后修改可执行权限
chmod +x /usr/local/bin/tab.py
source ~/.bash_profile(马上生效)
验证
echo SPYTHONSTARTUP(有值即可)
补全
#source /python_note/tab.sh 即可
关键字查询: improt keyword
keyword.kwlist
循环获取 I %s %(ine for line in data)
思路: 根据功能分函数,函数先写框架
cmp 比较大小
list('abcd') >>>['a','b','c','d']
int 可转进制 int('10',base=2) base指定进制数
abs 返回绝对值
divmod(10,3) >>>(3,1) 可得商和余
pow 指数运算,即几次方
round 四舍五入 round(5.0/3,2)
hex 16进制数
oct 8进制
bin 2进制
ord ACCII码
chr 转为ACCII编码
range(5) 生成0~5的列表
from random improt randint
randint(1,100) 随机生成一个(1,100)内的数
enumerate 返回元组(下标,元素) 用list(enumerate(1,2))
reversed (反转序列) 也可 [::-1]
sorted 排序
string.letters (字母大小写列表)
string.digits (数字列表)
%15s%5s%('name','ager') 格式对齐
%-15s%-5s%('name','ager')左对齐
%s%s%(-10,'name',-5,'ager') *占位 -10和-5
string.centen(48) 居中字符串
string.capitalize() 首字母大写
string.ljust(40,#) 左对齐
string.rjust(40,#)右对齐
string.count('l') 统计l出现次数
string.endswith('o') 是否以O结尾
string.startswith('e') 是否e开头
string.islower 是否小写,有任一大写则返回flase
string.isupper 是否大写,有任一小写则返回flase
string.isdigit 是否数字
string.isacpha 是否字母
string.isalnum 是否数字和字母
string.strip 去除字符串两端的空白,可加参数去除指定 string.strip('!') 去除两端!字符串,不去除中间
string.lstrip() 去除左端空白 string.rstrip() 去除右端空白,
** string.rstrip('\r\n') 去除右端\r,\n,\r\n
string.vpper 小写转大写
string.sqlit('.') 以.切割字符串,返回列表
string.replace('o','a') 把o替换为a
improt subprocess 执行系统命令模块
subprocess.call('ls -l /home',shell=True)
string.Template() 字符串模块
data=f.read().decode('gb1803')
f.write(date.encode('utf8'))
列表切片增加:
alist=[10,11,12,13,'zh','li',30]
alist[5:5]=['ww','zl'] (列表中间插入)
alist=[10,11,12,13,'zh','ww','zl','li',30]
列表删除
del alist[-1] 删除最后一项
alist.pop() 删除最后一项并返回删除项
alist.pop(3) 删除下标3的项
alist.remove(12) 根据值删除,相同值时只删第一个
alist.count(10) 统计10出现次数
alist.extend() 拆分元素增加
alist.index('new') 返回元素的下标,多个时只返回第一个,无则报错
alist.insert(0,200) 向下标0插入200
alist.reverse() 反转列表
alist.sort() 排序,默认升序排列
random.shuffle(alist) 打乱排序
alist.sort(reversed=True) 排序时反转
alist.len() 获取长度
alist.max() 获取最大值
alist.min() 最小值
字符串拼接
str_list=['h','e','o']
'.'.join(str_list) #以.号连接
输出'h.e.o'
多用列表,效率高
字典
adict['name'] 字典访问
for key in adict:
print "%s:%s" %(key,adict[key]) 字典循环
"(name)s:%(age)s"% adict 获取值
adict.pop(key) 弹出健
adict.popitem() 随机弹
adict.setdefault('mail','bobcatudo') 有则不变更
adict.keys() 返回健
adict.values() 返回值
adict.items() 返回健和值
adict.update(bdict) 字典相加
多if 判断多个条件时某些值时用字典
cmds = {'0':push_it,'1':pop_it,'2':view_it}
choice=raw_input(prompt).strip()[0] #去掉输入的空格并获取第一个值
cmds[choice]() #用字典匹配获取对应的值得调用函数
元组
tuple()
创建单元组时要在后面加,
a=('10',)
元组不可变,但元组中的列表可以变
atuple=(1,[],2)
atuple[1].append(10)
atuple[1].append(20)
结果是 atuple=(1,[10,20],2)
max() 返回最大
mint() 返回最小
alist=['hello','word']
enumerate(alist) 返回函数对象
list(enumerate(alist))
集合: 集合可以去重 set(['1','2'])
判断: big=x if x>y else y
生成器表达式:不真正创建列,返回一个生成器,使用时才生成
(expr for iter_var in iterable if (ond_expr))
print "\r" # \r不换行,后面加,连接。
%c 数字转化为ACCII
%s 先转化为字符串后
%d 整数类型,只留整数
% d 前面留空格兼容负数
%05d 前面空格补0
%+5d 正数前面显示+号
%f 浮点数
%5.3f 宽度为5,小数为3位
%i int
%e 科学计数法
%o 8进制数
%#o 显示前缀
花括号格式化
" {} is {} yesas old".format('bob','23')
推荐用花括号格式化
" {0[0]} is {0[1]} yesas old".format(alist)
第一列左对齐宽度为8,第二列为宽度5左对齐,有对齐
" {0:8s} is {1:<5d} yesas old".format('bob','23')
字符串模版
ori_txt='HI ${name},I WILL SEE YOU ${day}'
t=string.Template(ori_txt)
t.substitute(name='bob',day='tomorrow')
调用系统命令建议使用 subprocess
subprocess.call('ls /home', shell=True)
字典:{} 花括号,无序。
dict工厂函数dict((['name','bob'],['age','23'],['email','bob@qq.com']))
{}.fromkeys(('tom','bob','alice'),7) #值固定为7时可以批量创建
输出:{'bob':7,'alice':7,'tom':7}
adict['key'] 访问字典
adict.pop['key'] 删除字典
del adict['key'] 删除字典
adict.popitem() 随机删除值并返回删除的值
adict.clear 清除字典
adict ={'age':7,'name':'bob'}
'%(name)s:%(age)s' % adict
a=adict.copy() 深复制,值互不影响
clist=alist[:] 列表复制,值互不影响
adict.get('key') 取出值,不存在返回none
adict.get('key',23) 取出值,不存在返回23
adict.get('key','nout found') 取出值,不存在返回not found
adict.setdefault('age',20) 设置值,存在则不改变.
adict.keys() 获取key的列表
adict.items() 获取值和key的列表
adict.values()获取值的列表
bdict={'age':23,'name':'bob','emil':'qq@ww.com'}
{value:key for key,value in bdict.items()} #key和value对换,注意value有相同值时会丢项目
adict.update(bdict) 更新字典,可以把bdict合并到adict里
隐藏密码输入
import getpass
getpass.getpass("password")
集合
aset= set ('abc')
bset= s