show-me-the-code 笔记
https://github.com/Yixiaohan/show-me-the-code 是一个python初学练习题集合,每个人从上述地址fork之后编码可以提交自己的代码。我的练习答案在这里:https://github.com/gongqingkui/python/tree/master/gongqingkui 参阅目前大家提交的代码,笔记如下
0000 头像右上角加上红色的数字
一种常见方法,from PIL import Image来读取图片并附加字符。需要定义draw和ImageFont来画图。
In [ ]:
from PIL import Image,ImageDraw,ImageFont
#add num to image
def addnum(image,num):
with Image.open(image) as head:
w,h = head.size
font = ImageFont.truetype('arial.ttf',25)
draw = ImageDraw.Draw(head)
draw.text((0.8*w,0.1*h),str(num),fill=(255,0,0),font=font)
head.save('head2.jpg')
if __name__ =='__main__':
addnum('head.jpg',68)
In [30]:
print(string.letters)
print(string.digits+string.ascii_uppercase)
import random
print(random.randrange(30),random.choice(string.letters),random.sample(string.letters,3))
#print('%d'%tuple([random.randint(1000,9999) for i in xrange(5)]))
In [10]:
import string
import random
import uuid
print(string.letters[random.randint(0,54)])
print(random.sample(string.letters,10))
print(uuid.uuid1())
- 集合
In [31]:
a={1,2,3}
b={4,5}
b|=a
a|={'abc'}
print(a,b)
In [ ]:
a=range(3,5)
b=xrange(3,5)
print a,b
In [ ]:
dicts={'1':'zhangsan','2':'lisi'}
raw = '|'.join([k+':'+v for k,v in dicts.items()])
print raw
In [41]:
def gen(n):
for i in xrange(n):
yield random.randrange(9)
for g in gen(5):
print(g)
import os
print(os.getcwd())
0003 激活码保存到 Redis 非关系型数据库中
用redis库
0004 统计其中的单词出现的个数
- collections.Counter
- 正则表达式re.findall(r'[a-zA-Z0-9]+',data) re.split(r" ",data) re.findall(r'\w+',data)
- 排序 sortedwordlist = sorted(worddict.items(),lambda x,y:cmp(x[1],y[1]),reverse=True)
- translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中
In [56]:
import re
data="The quick fox jumps over the lazy brown dog."
print re.split(r" ",data)
print data.strip().translate(None,string.punctuation)
print re.findall(r'[a-zA-Z0-9]+',data)
print re.findall(r'\w+',data)
print len([x for x in data.split() if x!=' '])
- 文件读写
In [63]:
print [line.strip() for line in open('filtered_words.txt')]
In [89]:
print os.getcwd()
print ''.join([x for x in os.listdir('.') if os.path.isfile(x) and x.endswith('.jpg')])
print os.path.splitext(os.getcwd()+'/a.jpg')
import glob
glob.glob('*.jpg')
Out[89]:
In [ ]:
string.rfind('.')
print(7/3,7//3,7.0/3,7.0//3)
In [ ]:
import os
for root,dirs,files in os.walk('.'):
pass
- 赋值
In [ ]:
debug = True
a=3 if debug==True else 5
print(a)
In [71]:
dicts={'2':'anbang','1':'zhanghua'}
print sorted(dicts.items(),key=lambda d:d[1],reverse=True)
print sorted(dicts.items(),key=lambda d:d[1],reverse=False)
import operator
print sorted(dicts.items(),key=operator.itemgetter(0))
print sorted(dicts.items(),key=operator.itemgetter(1))
In [92]:
fs=('.c','.py','.cpp')
if 'aa.c'.endswith(fs):
print 'ok'
0008 html正文
- BeautifulSoup库
- 正则 re.findall(r'[\s\S]*',data.text)
- content.decode('GBK').encode('utf-8')
0009 所有a
- doc=pyquery.PyQuery(resp.content.decode()) #### 0010 验证码
- 廖雪峰参考代码写的挺好的
0011 屏蔽关键字
- 正则表达式
- open(f,'r',encoding='utf-8')
0012 屏蔽关键字
- 正则表达式
- input=raw_input()
- try: input= unicode(input) except: try:
except:input = unicode(input.decode('utf-8'))
try: input = unicode(input.decode('gbk'))
- ''len(x)
- re.sub(mingan,''len(mingan),youword)
0013 爬虫
- pyQuery
- ulrretrieve
0014 0015 0016 0017 0018 0019 xml txt xls转换
- eval函数
- _student = eval(f.read())
- xlwt库 xlwt.Workbook().add.sheet('student').write(x,y,data,style)
- 正则表达式
- r'\"(\d+)\":[\"(.*?)\",(\d+),(\d+),(\d+)}'
- from lxml import etree
0020 通话时长
- 正则表达式 re.compile(r'([\d+)秒').findall(table.cell(i,j).value)
0021 加密密码
- salt的理解
In [ ]:
def enpass(password,salt=None):
if salt is None:
salt = str(uuid.uuid4())[:4]
assert 4==len(salt)
return salt+':'+hashlib.sha256(password.encode()+salt.encode()).hexdigest()
0022 图片转换程序的通用性
- iphonesize = {"iphone5":(640,1136),"iphone6s":(1125,2000),"iphone6sp":(1242,2208)}
0023 留言板
- flask
0024 TodoList
- flask
0025
- 百度音频解析框架from aip import AipSpeech
- from pyaudio import PyAudio,paInt16来录音
- wave 录音保存为wav文件
- 提交wave文件到aip框架,解析出结果
- win32api 判断结果 win32api.ShellExecute(0,'open','http://mail.126.com','','',1)打开