Skip to content

Commit e306163

Browse files
committed
新文件: crazyacking/0000/add_num.py
新文件: crazyacking/0000/ahronbd.ttf 新文件: crazyacking/0000/simsunb.ttf 新文件: crazyacking/0001/0001.py 新文件: crazyacking/0002/0002.py 新文件: crazyacking/0003/Activation_code.txt 新文件: crazyacking/0003/store_redis.py 新文件: crazyacking/0005/changeResolution.py
1 parent 882ad23 commit e306163

8 files changed

Lines changed: 356 additions & 0 deletions

File tree

crazyacking/0000/add_num.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr /bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
"""
5+
将你的 QQ 头像右上角加上红色的数字,类似于微信未读信息数量提示效果
6+
Pillow:Python Imaging Library
7+
PIL.ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None)
8+
"""
9+
from PIL import Image, ImageDraw, ImageFont
10+
11+
class Image_unread_message:
12+
def open(self,path):
13+
self.im=Image.open(path)
14+
return True
15+
def __init__(self):
16+
self.fnt=None
17+
self.im=None
18+
19+
def setFont(self,font_path,size):
20+
self.fnt=ImageFont.truetype(font_path,size)
21+
return True
22+
def draw_text(self,position,str,colour,fnSSt):
23+
draw=ImageDraw.Draw(self.im)
24+
draw.text(position,str,fill=colour,font=fnt)
25+
self.im.show()
26+
self.im.save(str+'num'+'.jpg')
27+
return True
28+
29+
30+
test=Image_unread_message()
31+
test.open('test.jpg')
32+
test.setFont('ahronbd.ttf',80)
33+
test.draw_text((160,-20),'4',(255,0,0),test.fnt)

crazyacking/0000/ahronbd.ttf

49.3 KB
Binary file not shown.

crazyacking/0000/simsunb.ttf

14.7 MB
Binary file not shown.

crazyacking/0001/0001.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import uuid
2+
"""
3+
做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用**生成激活码**(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
4+
"""
5+
6+
for i in range(200):
7+
print(str(uuid.uuid4()))

crazyacking/0002/0002.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
#coding=utf-8
2+
3+
import uuid
4+
5+
import MySQLdb
6+
7+
"""
8+
002, 将 0001 题生成的 200 个激活码(或者优惠券)保存到 **MySQL** 关系型数据库中
9+
"""
10+
11+
12+
class ActivationCode(object):
13+
def __init__(self, code_count, database, username, host='localhost', port=3306, password=''):
14+
self._host = host
15+
self._username = username
16+
self._password = password
17+
self._database = database
18+
self._port = port
19+
20+
self.codes = self._generate_activation_code(code_count)
21+
#print self.codes
22+
23+
24+
def _get_mysql_instance(self):
25+
params = {
26+
'host': self._host,
27+
'user': self._username,
28+
'passwd': self._password,
29+
'db': self._database,
30+
'port': self._port,
31+
}
32+
return MySQLdb.connect(**params)
33+
34+
35+
def _generate_activation_code(self, count):
36+
code_list = []
37+
for i in xrange(count):
38+
code = str(uuid.uuid4()).replace('-', '').upper()
39+
if not code in code_list:
40+
code_list.append(code)
41+
42+
return code_list
43+
44+
45+
def store_to_mysql(self):
46+
if self.codes:
47+
conn = self._get_mysql_instance()
48+
49+
try:
50+
cur = conn.cursor()
51+
52+
# clear old datas
53+
cur.execute('delete from code')
54+
55+
# insert mutilple code
56+
for code in self.codes:
57+
cur.execute("insert into code(code) values('%s')" % code)
58+
59+
conn.commit()
60+
cur.close()
61+
conn.close()
62+
63+
return True
64+
except MySQLdb.Error,e:
65+
conn.rollback()
66+
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
67+
68+
return False
69+
70+
71+
def print_activation_code(self):
72+
conn = self._get_mysql_instance()
73+
74+
try:
75+
cur = conn.cursor()
76+
cur.execute('select code from code')
77+
78+
results = cur.fetchall()
79+
for row in results:
80+
print row[0]
81+
except MySQLdb.Error,e:
82+
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
83+
84+
85+
if __name__ == "__main__":
86+
active_code = ActivationCode(200, database='Test', username='root')
87+
if active_code.store_to_mysql():
88+
active_code.print_activation_code()
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
xsdPh4f
2+
8qoW07j
3+
Tnj1HmB
4+
zIT8qAB
5+
FnDnNi0
6+
3QpZj1O
7+
KlkwRfE
8+
wsdy8NQ
9+
pvXSdlY
10+
pp9LWSn
11+
dS6zQnC
12+
WbCHjJH
13+
jAjJtli
14+
38ykU8k
15+
wMNCQ1m
16+
X245rLW
17+
UWizZgo
18+
YkLduIF
19+
v1GJSdz
20+
BNMZuX5
21+
yIjRDQu
22+
GNvXIIF
23+
DbWEtTD
24+
F1W2jtg
25+
54bWrUb
26+
b2IEbzZ
27+
xcaOsuG
28+
uXOhegJ
29+
TvKkKSN
30+
KgSCoEJ
31+
elrc80r
32+
DOXohsE
33+
KjdnEGw
34+
ffqwUwX
35+
xdRhBkT
36+
ruceTaI
37+
RZZTs0h
38+
K5EKaNj
39+
VqW5vfD
40+
ownScnm
41+
7rGnRPw
42+
TiaUfFy
43+
7YSMWr0
44+
C9YkCdo
45+
6ikBwSy
46+
qiETLg6
47+
aKDPWxE
48+
b3cCXhY
49+
MKA2OKu
50+
9EdcKmD
51+
0qeKaui
52+
ejpFFlC
53+
SmC9Nor
54+
mCPyWEv
55+
kStIHKd
56+
9DkalxT
57+
jWColwT
58+
GcTkSXk
59+
V5UrDSg
60+
ekrLbCf
61+
cQXARzF
62+
UP7ksMd
63+
MGVEVVH
64+
tKlLsKA
65+
bz978B2
66+
3d6BchN
67+
FQaaOIJ
68+
CVOzpVy
69+
5S41CmW
70+
BrEcQpZ
71+
RgpvtTu
72+
eNIFEtp
73+
IYA1GXy
74+
aVofZsk
75+
RtR05Dr
76+
RtKSB4v
77+
ylWhH4I
78+
E1rTSQQ
79+
km1GyrM
80+
1YhC46I
81+
Yth5Mop
82+
h1rq8Zt
83+
1N33N7j
84+
k5BXCmg
85+
E1wPDwt
86+
uvWFfTk
87+
QaExb9R
88+
xmbbV3I
89+
Jiqxv4q
90+
t86xdCq
91+
hjnITkf
92+
X7QfU9R
93+
BNrvD6R
94+
TrD8RKS
95+
j4Hb5m0
96+
Ej01pN1
97+
DjBieTP
98+
TF1Yhw3
99+
P8Hvl0h
100+
iuQIBSZ
101+
7hYH1nu
102+
Keddid3
103+
UMhZAlX
104+
yEBxCNV
105+
h9eUhig
106+
Uf2FGRg
107+
D6mGp0Y
108+
slkzCJF
109+
d2MtwFg
110+
H4P7dA5
111+
dh3uvgk
112+
hV67DzW
113+
kS6veXF
114+
QWs0IBe
115+
mUTAsKo
116+
bA3ZmDA
117+
bdzo5aa
118+
ssP0Ioy
119+
bSzxPwX
120+
Yvx2TwW
121+
B8RHjhI
122+
f1k9PHy
123+
JT6UjuI
124+
UrUzUMT
125+
gatlmvG
126+
Z0IcjOW
127+
WSeJD71
128+
xn2TEqq
129+
l6XMop0
130+
cebTTJx
131+
JAFSQP7
132+
hP86mW8
133+
uTbUfPI
134+
uInfJSv
135+
PkWbVsD
136+
Soc04tS
137+
Trv2Tli
138+
p9OQOR6
139+
2E63ef8
140+
mOIm6vn
141+
pvY48CT
142+
18u0DeJ
143+
G65JpBW
144+
fXAyrcL
145+
nujVYv3
146+
Zmcu79i
147+
NPtWjMc
148+
Xhsc44i
149+
cpVKhfM
150+
QiwFFGB
151+
YbBpW33
152+
ShzJeoe
153+
rRVzaA2
154+
9P9TjOA
155+
9DCcFW6
156+
eV9kso8
157+
ylNtW8l
158+
cg4NDrW
159+
z9jG8LY
160+
p8DRxic
161+
v60BL2p
162+
7gXCYhl
163+
bRFKTnV
164+
9hAeREO
165+
UF8Ushb
166+
zHnAsxJ
167+
qIEgxWg
168+
B2gMwr8
169+
fyTx67J
170+
14iRytg
171+
hLludCg
172+
jMVkbU1
173+
lFQQ1YX
174+
stOGahb
175+
cgB8aJC
176+
eVyrvc7
177+
eftb4Ge
178+
MFyiWOO
179+
hAf6Hha
180+
b884B8F
181+
qXaVpDs
182+
z1PYqm3
183+
YXZz3YI
184+
LZgQpdZ
185+
HpYkmdw
186+
uhR1wth
187+
mwfz0kk
188+
9AlVldl
189+
pQ8xzhi
190+
5tPou1g
191+
ahNqlgN
192+
euCV2IH
193+
tg9b7s8
194+
Z4r2aA6
195+
JYUijB2
196+
k6tMe54
197+
LJuhb7x
198+
Z6VPjwe
199+
U3qgd0G
200+
a9RH5fF

crazyacking/0003/store_redis.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import redis
4+
5+
def store_redis(filepath):
6+
r = redis.StrictRedis(host = 'localhost', port = 6379, db = 0)
7+
f = open(filepath, 'rb')
8+
for line in f.readlines():
9+
code = line.strip()
10+
r.lpush('code', code)
11+
12+
if __name__ == '__main__':
13+
store_redis('Activation_code.txt')
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
'''
5+
第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小
6+
'''
7+
from PIL import Image
8+
9+
def change_img(path,size=(1136,640)):
10+
im = Image.open(path)
11+
size=(size[1],size[0]) if im.size[1]>im.size[0] else size
12+
im.thumbnail(size,Image.ANTIALIAS) #Image.ANTIALIAS为滤镜参数
13+
im.save('result-'+path)
14+
15+
change_img('1.jpg')

0 commit comments

Comments
 (0)