Python的优点:1.语法简洁 2.高可读性,开发效率高 3.可移植性 4.支持自行开发或第三方模块 5.可调用c,c++库,可与Java组建
Python的优点:1.语法简洁 2.高可读性,开发效率高 3.可移植性 4.支持自行开发或第三方模块 5.可调用c,c++库,可与Java组建
>>> Quentities = {'toast': 45,'muffin': 23,'ham': 78,'spam': 56,'eggs': 89}
>>> sorted(zip(Quentities.values(),Quentities.keys()))
[(23, 'muffin'), (45, 'toast'), (56, 'spam'), (78, 'ham'), (89, 'eggs')]
>>> max(Quentities,key=lambda k: Quentities[k])
'eggs'
>>> min(Quentities,key=lambda k: Quentities[k])
'muffin’
关于lambda,你可以把这个当成如下函数:
>>> def get_count(k):
... return Quentities[k]
...
>>> min(Quentities,key=get_count)
'muffin'
按fname或者uid排序时需要operator模块里的itemgetter函数
>>> from operator import itemgetter
按lname和fname的顺序排列时:
>>> rows_by_lfname = sorted(rows, key=itemgetter('lname','fname'))
>>> print(rows_by_lfname)
[{'lname': 'Beazley', 'uid': 1002, 'fname': 'David'},
{'lname': 'Cleese', 'uid': 1001, 'fname': 'John'},
{'lname': 'Jones', 'uid': 1004, 'fname': 'Big'},
{'lname': 'Jones', 'uid': 1003, 'fname': 'Brian'}]
通过某个字段将记录分组
>>> from operator import itemgetter
>>> from itertools import groupby
>>> rows.sort(key=itemgetter('date'))
>>> for date, items in groupby(rows, key=itemgetter('date')):
... print(date)
... for i in items:
... print(' ', i)
re.split(r'[;,\s]\s*',line)
用r的话原来的line里面的\不会当成转义符号
url.startswith(())来判断是不是url
repr会连引号都输出,和print不一样
"%u" % (-1)输出的还是有符号的
有%r时输出会带双引号
{'float':3.1}字典的形式,可以不管顺序
'my laptop platform is {p}'.format(p=sys.platform)
或者'my laptop platform is {p.platform}'.format(p=sys)
'this is a test {t[0]}'.format(t='hello不能用[1:]
'{:-^40}'.format('start') ^居中
'{:=10}'.format(1) =用于输出数字
合并拼接字符串
>>>a='hello'
>>>b='world'
>>>a+''+b
'hello world'
>>>'{}{}'.format(a,b)
'hello world'
>>>''.join([a,b])
'hello world'
>>>a=print(a,b)
hello world
字符串中插入变量
几个小的字符串合并为一个大的字符串
>>>'my name is {name}.'.format(name='abby')
'my name is abby'
>>>format(text,'>20')
' hello world'
>>>'{:>10s}{:>10s}'.format('hello','world')
' hello world'
>>>'%-20s' % text
'hello world '
以指定列宽格式化字符串
>>>longtext="hello world! hello world! hello world! hello world! \
...hello world! hello world! hello world! hello world! hello world! \
...hello world! hello world! hello world! hello world! hello world! "
>>>import textwrap
>>>textwrap.fill(longtext,40)
'hello world! hello world! hello world!\nhello world! hello world! hello world! \nhello world! hello world! hello world! \nhello world! hello world! hello world! \nhello world! hello world! '
>>>print(textwrap.fill(longtext,40))指定宽度40
hello world! hello world! hello world!
hello world! hello world! hello world!
hello world! hello world! hello world!
hello world! hello world! hello world!
hello world! hello world!
用
print(x,file=open(/tmp/xyz.txt),'w')将数据重定向到xyz.txt中
用print(open(/tmp/xyz.txt).read())打开
t1,*t2='TEXT'可得到
t1='T',t2=['E','X','T']
python里面缩进严格,必须使用一个以上空格(无严格数量控制)或者tab缩进,以及和c不同的是,用{:d}代替%d
文件:用open函数进行文件的操作
open(<file_address>[,access_mode])
读取:output.read()
指针读取:output.seek()
基本写入:input.write()
按列表内容写入:input.writelines(lines)(需要换行符号)
元组不能在原处修改
字典操作:字典列表的排序:需要按fname或者uid排序时需要operator模块里的itemgetter函数 需要按Iname和fname的顺序排列
字典:分片不能使用,序列运算无效
字符串的比较:zip(dict.values(),dict.key())
列表的方法:列表的插入:list.insert()
列表的删除:del list[1:]
查找最大:nlargest()
查找最小:nsmallest()
列表:列表的操作(合并/重复)查找:list 1.index() 列表的迭代和解析(list (map(abs()))
列表的索引,分片与矩阵:list [0:2](分片)矩阵:matrix=[[1,2,3],[4,5,6]]
列表可以在原处修改(字符串不可以在原处修改)
列表的添加:list.append()
列表的排列:list.sort(key=str.lower(),reverse)
6.字符串忽略大小写的搜索替换(re.findall,re.sub)
7.最短匹配(两个双引号之间的内容)
8.多行匹配模式(\* *\之间的内容)
9.删除字符串中不需要的字符
10.字符串对齐
11.合并拼接字符串(使用+,join,format)
12.字符串中插入变量
13.以指定列宽格式化字符串
\s表示空格
improte re(分隔字符串) re.split(r'[;,\s【分隔符】]',【要分隔的字符串】)
检测字符串的开头或结尾 S.starswith(【匹配的元组】) S.endswith(【匹配的元组】)
通配符 * from fnmatch iport fnmatch, fnmatchcase fnmatchcase('log.txt'【要匹配的数据】,'*.txt'【匹配的字符串】)【分大小写】 fnmatch('log.txt','*.TXT')【不分大小写】
字符串13个场景:
1.使用多个界定符分隔字符串:使用正则表达式进行分隔(\s表示空格)re模块中的[]表示里面字符里任意匹配
2.字符串开头或结尾匹配(startswith,endswith)
3.用Shell通配符匹配字符串(使用fnmatch模块)注:fnmatchcase区分大小写
4.字符串匹配和搜索
5.字符串搜索和替换:使用replace方法(指定文本模式用re模块)
字符串格式化表达式:
fieldtype使用属性或指针
当使用字典的时候需要引号扩充,但使用字符串格式化方法的时候不能使用引号
open(<dile_address>[,access_mode])
在其中用r来对/不进行转义
如:open(r'C:/mydir/myfile')
记住r,rb,r+,rb+,w,wb,w+,wb+,a,ab,a+,ab+的意思,a模式不能覆盖原文件
用for循环读文件,且读完文件用file1.close()
用file.tell()查看指针位置
元组不能更改,只能取数据及固定长度
tuple=()创建
表list用list=[]创建