diff --git a/chris5641/0000/arial.ttf b/chris5641/0000/arial.ttf new file mode 100644 index 00000000..ad7d8eab Binary files /dev/null and b/chris5641/0000/arial.ttf differ diff --git a/chris5641/0000/img.png b/chris5641/0000/img.png new file mode 100644 index 00000000..589711ce Binary files /dev/null and b/chris5641/0000/img.png differ diff --git a/chris5641/0000/img.py b/chris5641/0000/img.py new file mode 100644 index 00000000..42ef1ca0 --- /dev/null +++ b/chris5641/0000/img.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +""" +第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 +""" +from PIL import Image, ImageFont, ImageDraw + +__author__ = 'Chris5641' + + +def img_add_num(num=1): + img = Image.open('img.png') + w, h = img.size + font = ImageFont.truetype('arial.ttf', w // 4) + draw = ImageDraw.Draw(img) + draw.text((w*3//4, 0), str(num), font=font, fill='red') + img.save('img2.png') + + +if __name__ == '__main__': + img_add_num(5) diff --git a/chris5641/0001/ActivationCode.txt b/chris5641/0001/ActivationCode.txt new file mode 100644 index 00000000..c8e7cd2b --- /dev/null +++ b/chris5641/0001/ActivationCode.txt @@ -0,0 +1,200 @@ +jasayyhci +xx1ia7v1b +zy546onps +vetsatr2w +x6f4y3468 +3g1pw108k +wuyrji08q +rzlzxs4xg +bmir749bu +v7inkwzoi +68z0kq6ur +pypmiu5og +jidqni4fz +c6b29b9kb +r9znbbbmj +331l6y08b +m4nas4he4 +l4a42ypad +xfc8h6wvo +t4khbx7j1 +9hxvrrsah +imbmie4ky +e0actu2xz +3u3amqtu0 +lcovbjpm3 +ds8zbk5jh +o9y9s74ac +jdldifamh +nw15e3qf4 +w71kk7i6a +iasy74ovn +42v6hkfvp +xtnwhy7mg +id3z7ved4 +jr97n77ue +3mjujcppy +0tvfnt287 +llxys3ki8 +umldlkaxz +8cc8tjlq7 +6y43a71ov +2wbx19xmq +3ypbwgy1h +zazhe7d5r +p5endwk3e +wrczjq0cu +41cuvr7z7 +u6dek96c9 +ek9cb76q3 +u7yybk8hv +6fksdba4l +9rehlyiua +oh2mxkspj +j32ik9hiu +o4k7m9md3 +5slv1d2gd +7gh1z7o0b +1l82vu6nz +jntsvp6hs +k5pfdggxp +zyo25p2qs +joayw5bea +0mm39197z +0lha1urmm +6m2k243cs +zk80uvofv +d9yzqmwf4 +j8klfjxhx +uey550hc1 +xgvplru0h +53ccnuxym +5pg6a5zgj +wljjnwwtq +dg9eo40wk +3xolm3tox +7rvurzud3 +3ebemea0y +9c7orc1qs +pw6jn47yy +pre1ixi35 +ph8et0vh0 +z2oh67j2b +os2trzxuo +h6njf1llw +qm6q1erka +345k0m9s9 +72xtf32fu +zhrybh3ck +wj7jx3oxi +0rirzl6oe +1d4a20r2g +tnx7a3ekm +o2xzp9hes +fny6pazna +scy17wh0h +o3g4ptomq +5w855mrna +h9f1dryt4 +67b4z8hwk +nsqicfb7k +wurfj1qti +ikn04uuza +3d5n4jf2a +79b0uji60 +pcf9exi5g +tx90dwi6w +u0qfcw2hb +ds88iqnsw +2ia1s623p +1bcru8hig +5sshn4khr +9ivzpka1m +n3vxc9j7v +t6evn0x15 +xtb7ejk2x +jzowhvmfn +1a15ifimy +16f5wk3wg +8phllmc2g +algx3osnk +eejbrwtjf +svjuctaix +nmzhv1che +9phravp6a +pjo3236az +zdtch5wvm +olwpmadwq +oosxw38lq +ccf5ha2f6 +9u6tmxhsg +8uwbf2jsj +fxuevlu97 +pd1aeo1wn +p731m62yt +d84boj36g +1z4t8492r +ft2qi59n7 +d807oy13b +ks2jzdn6l +zdarbnlqw +lq7o5ai9d +k1sfr0g68 +tonfk9tz9 +ydii8sjta +g9jn7bfb8 +h93ujq3te +75lj46n1u +kxcoj73gs +370yg3fp2 +bjzq7a451 +db5ykml2w +d2qflgw4k +hes8v3asn +ebt0ic9iy +o4l215p31 +0a4kc2zld +ez8bjzy5v +3b1g5d8oi +oobggx057 +p203tasho +7u6j7m5qw +stbnkwu33 +sgpf6xiyk +6gd0v5rdt +rd3ypbfb0 +mn3qtqtsg +e2pu7kgne +zup3mcpin +ocvd586pd +77ali7nip +s4qv5kfz7 +xtr9fulx1 +sc2kcve4j +l4jdugez4 +80s0mwdnz +o57vts6gw +unqar6rwq +3xl01wlpi +6uolx1fu2 +2x7cveh1t +1qdhuzz8l +b26tsrqyq +ebbkqoj7d +gaf1kxh2r +y6sugvmhc +7k3igekka +pnnyrx5up +9jeetttms +ui6bdn6rj +i0r72zw85 +6bylsgtzc +s5su7plet +c6ke4pl9g +rbprh6m6l +a8ew2e39q +bpz51z3bz +vyum7atru +dcksu3tb1 +j0jyyczuq +21va9yfqs diff --git a/chris5641/0001/activation_code.py b/chris5641/0001/activation_code.py new file mode 100644 index 00000000..8cb6c1ca --- /dev/null +++ b/chris5641/0001/activation_code.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +""" +第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? +""" +import random + +__author__ = 'Chris5641' + + +def get_code(): + f = open('ActivationCode.txt', 'w') + char_seq = 'abcdefghijklmnopqrstuvwxyz0123456789' + for i in range(200): + code = '' + for j in range(9): + code += random.choice(char_seq) + f.write(code+'\n') + f.close() + + +if __name__ == '__main__': + get_code() + diff --git a/chris5641/0002/ActivationCode.txt b/chris5641/0002/ActivationCode.txt new file mode 100644 index 00000000..c8e7cd2b --- /dev/null +++ b/chris5641/0002/ActivationCode.txt @@ -0,0 +1,200 @@ +jasayyhci +xx1ia7v1b +zy546onps +vetsatr2w +x6f4y3468 +3g1pw108k +wuyrji08q +rzlzxs4xg +bmir749bu +v7inkwzoi +68z0kq6ur +pypmiu5og +jidqni4fz +c6b29b9kb +r9znbbbmj +331l6y08b +m4nas4he4 +l4a42ypad +xfc8h6wvo +t4khbx7j1 +9hxvrrsah +imbmie4ky +e0actu2xz +3u3amqtu0 +lcovbjpm3 +ds8zbk5jh +o9y9s74ac +jdldifamh +nw15e3qf4 +w71kk7i6a +iasy74ovn +42v6hkfvp +xtnwhy7mg +id3z7ved4 +jr97n77ue +3mjujcppy +0tvfnt287 +llxys3ki8 +umldlkaxz +8cc8tjlq7 +6y43a71ov +2wbx19xmq +3ypbwgy1h +zazhe7d5r +p5endwk3e +wrczjq0cu +41cuvr7z7 +u6dek96c9 +ek9cb76q3 +u7yybk8hv +6fksdba4l +9rehlyiua +oh2mxkspj +j32ik9hiu +o4k7m9md3 +5slv1d2gd +7gh1z7o0b +1l82vu6nz +jntsvp6hs +k5pfdggxp +zyo25p2qs +joayw5bea +0mm39197z +0lha1urmm +6m2k243cs +zk80uvofv +d9yzqmwf4 +j8klfjxhx +uey550hc1 +xgvplru0h +53ccnuxym +5pg6a5zgj +wljjnwwtq +dg9eo40wk +3xolm3tox +7rvurzud3 +3ebemea0y +9c7orc1qs +pw6jn47yy +pre1ixi35 +ph8et0vh0 +z2oh67j2b +os2trzxuo +h6njf1llw +qm6q1erka +345k0m9s9 +72xtf32fu +zhrybh3ck +wj7jx3oxi +0rirzl6oe +1d4a20r2g +tnx7a3ekm +o2xzp9hes +fny6pazna +scy17wh0h +o3g4ptomq +5w855mrna +h9f1dryt4 +67b4z8hwk +nsqicfb7k +wurfj1qti +ikn04uuza +3d5n4jf2a +79b0uji60 +pcf9exi5g +tx90dwi6w +u0qfcw2hb +ds88iqnsw +2ia1s623p +1bcru8hig +5sshn4khr +9ivzpka1m +n3vxc9j7v +t6evn0x15 +xtb7ejk2x +jzowhvmfn +1a15ifimy +16f5wk3wg +8phllmc2g +algx3osnk +eejbrwtjf +svjuctaix +nmzhv1che +9phravp6a +pjo3236az +zdtch5wvm +olwpmadwq +oosxw38lq +ccf5ha2f6 +9u6tmxhsg +8uwbf2jsj +fxuevlu97 +pd1aeo1wn +p731m62yt +d84boj36g +1z4t8492r +ft2qi59n7 +d807oy13b +ks2jzdn6l +zdarbnlqw +lq7o5ai9d +k1sfr0g68 +tonfk9tz9 +ydii8sjta +g9jn7bfb8 +h93ujq3te +75lj46n1u +kxcoj73gs +370yg3fp2 +bjzq7a451 +db5ykml2w +d2qflgw4k +hes8v3asn +ebt0ic9iy +o4l215p31 +0a4kc2zld +ez8bjzy5v +3b1g5d8oi +oobggx057 +p203tasho +7u6j7m5qw +stbnkwu33 +sgpf6xiyk +6gd0v5rdt +rd3ypbfb0 +mn3qtqtsg +e2pu7kgne +zup3mcpin +ocvd586pd +77ali7nip +s4qv5kfz7 +xtr9fulx1 +sc2kcve4j +l4jdugez4 +80s0mwdnz +o57vts6gw +unqar6rwq +3xl01wlpi +6uolx1fu2 +2x7cveh1t +1qdhuzz8l +b26tsrqyq +ebbkqoj7d +gaf1kxh2r +y6sugvmhc +7k3igekka +pnnyrx5up +9jeetttms +ui6bdn6rj +i0r72zw85 +6bylsgtzc +s5su7plet +c6ke4pl9g +rbprh6m6l +a8ew2e39q +bpz51z3bz +vyum7atru +dcksu3tb1 +j0jyyczuq +21va9yfqs diff --git a/chris5641/0002/code2sql.py b/chris5641/0002/code2sql.py new file mode 100644 index 00000000..4f81226b --- /dev/null +++ b/chris5641/0002/code2sql.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +""" +第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。 +""" +import pymysql +__author__ = 'Chris5641' + + +def code2sql(): + f = open('ActivationCode.txt', 'r') + conn = pymysql.connect(user='root', passwd='password') + cursor = conn.cursor() + cursor.execute('create database if not exists accode') + cursor.execute('use accode') + cursor.execute('create table accode(id int auto_increment primary key, code varchar(10))') + for line in f.readlines(): + cursor.execute('insert into accode (code) values (%s)', [line.strip()]) + conn.commit() + f.close() + cursor.close() + conn.close() + + +if __name__ == '__main__': + code2sql() diff --git a/chris5641/0003/ActivationCode.txt b/chris5641/0003/ActivationCode.txt new file mode 100644 index 00000000..c8e7cd2b --- /dev/null +++ b/chris5641/0003/ActivationCode.txt @@ -0,0 +1,200 @@ +jasayyhci +xx1ia7v1b +zy546onps +vetsatr2w +x6f4y3468 +3g1pw108k +wuyrji08q +rzlzxs4xg +bmir749bu +v7inkwzoi +68z0kq6ur +pypmiu5og +jidqni4fz +c6b29b9kb +r9znbbbmj +331l6y08b +m4nas4he4 +l4a42ypad +xfc8h6wvo +t4khbx7j1 +9hxvrrsah +imbmie4ky +e0actu2xz +3u3amqtu0 +lcovbjpm3 +ds8zbk5jh +o9y9s74ac +jdldifamh +nw15e3qf4 +w71kk7i6a +iasy74ovn +42v6hkfvp +xtnwhy7mg +id3z7ved4 +jr97n77ue +3mjujcppy +0tvfnt287 +llxys3ki8 +umldlkaxz +8cc8tjlq7 +6y43a71ov +2wbx19xmq +3ypbwgy1h +zazhe7d5r +p5endwk3e +wrczjq0cu +41cuvr7z7 +u6dek96c9 +ek9cb76q3 +u7yybk8hv +6fksdba4l +9rehlyiua +oh2mxkspj +j32ik9hiu +o4k7m9md3 +5slv1d2gd +7gh1z7o0b +1l82vu6nz +jntsvp6hs +k5pfdggxp +zyo25p2qs +joayw5bea +0mm39197z +0lha1urmm +6m2k243cs +zk80uvofv +d9yzqmwf4 +j8klfjxhx +uey550hc1 +xgvplru0h +53ccnuxym +5pg6a5zgj +wljjnwwtq +dg9eo40wk +3xolm3tox +7rvurzud3 +3ebemea0y +9c7orc1qs +pw6jn47yy +pre1ixi35 +ph8et0vh0 +z2oh67j2b +os2trzxuo +h6njf1llw +qm6q1erka +345k0m9s9 +72xtf32fu +zhrybh3ck +wj7jx3oxi +0rirzl6oe +1d4a20r2g +tnx7a3ekm +o2xzp9hes +fny6pazna +scy17wh0h +o3g4ptomq +5w855mrna +h9f1dryt4 +67b4z8hwk +nsqicfb7k +wurfj1qti +ikn04uuza +3d5n4jf2a +79b0uji60 +pcf9exi5g +tx90dwi6w +u0qfcw2hb +ds88iqnsw +2ia1s623p +1bcru8hig +5sshn4khr +9ivzpka1m +n3vxc9j7v +t6evn0x15 +xtb7ejk2x +jzowhvmfn +1a15ifimy +16f5wk3wg +8phllmc2g +algx3osnk +eejbrwtjf +svjuctaix +nmzhv1che +9phravp6a +pjo3236az +zdtch5wvm +olwpmadwq +oosxw38lq +ccf5ha2f6 +9u6tmxhsg +8uwbf2jsj +fxuevlu97 +pd1aeo1wn +p731m62yt +d84boj36g +1z4t8492r +ft2qi59n7 +d807oy13b +ks2jzdn6l +zdarbnlqw +lq7o5ai9d +k1sfr0g68 +tonfk9tz9 +ydii8sjta +g9jn7bfb8 +h93ujq3te +75lj46n1u +kxcoj73gs +370yg3fp2 +bjzq7a451 +db5ykml2w +d2qflgw4k +hes8v3asn +ebt0ic9iy +o4l215p31 +0a4kc2zld +ez8bjzy5v +3b1g5d8oi +oobggx057 +p203tasho +7u6j7m5qw +stbnkwu33 +sgpf6xiyk +6gd0v5rdt +rd3ypbfb0 +mn3qtqtsg +e2pu7kgne +zup3mcpin +ocvd586pd +77ali7nip +s4qv5kfz7 +xtr9fulx1 +sc2kcve4j +l4jdugez4 +80s0mwdnz +o57vts6gw +unqar6rwq +3xl01wlpi +6uolx1fu2 +2x7cveh1t +1qdhuzz8l +b26tsrqyq +ebbkqoj7d +gaf1kxh2r +y6sugvmhc +7k3igekka +pnnyrx5up +9jeetttms +ui6bdn6rj +i0r72zw85 +6bylsgtzc +s5su7plet +c6ke4pl9g +rbprh6m6l +a8ew2e39q +bpz51z3bz +vyum7atru +dcksu3tb1 +j0jyyczuq +21va9yfqs diff --git a/chris5641/0003/code2redis.py b/chris5641/0003/code2redis.py new file mode 100644 index 00000000..1817bc4b --- /dev/null +++ b/chris5641/0003/code2redis.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +""" +第 0003 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。 +""" +import redis +__author__ = 'Chris5641' + + +def code2redis(): + i = 0 + f = open('ActivationCode.txt', 'r') + r = redis.Redis(host='localhost', port=6379) + for line in f.readlines(): + r.zadd('codes', line.strip(), i) + i += 1 + + +if __name__ == '__main__': + code2redis() diff --git a/chris5641/0004/GetWordNum.py b/chris5641/0004/GetWordNum.py new file mode 100644 index 00000000..dee7aee5 --- /dev/null +++ b/chris5641/0004/GetWordNum.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +""" +第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。 +""" +import re +__author__ = 'Chris5641' + + +def get_num(): + num = 0 + f = open('test.txt', 'r') + for line in f.readlines(): + num += len(re.findall(r'[a-zA-Z0-9\']+', line)) + f.close() + return num + + +if __name__ == '__main__': + print(get_num()) diff --git a/chris5641/0004/test.txt b/chris5641/0004/test.txt new file mode 100644 index 00000000..d9695573 --- /dev/null +++ b/chris5641/0004/test.txt @@ -0,0 +1,3 @@ +Microsoft's is a big, computer compony. +this is a test! + diff --git a/chris5641/0005/ChangeResolution.py b/chris5641/0005/ChangeResolution.py new file mode 100644 index 00000000..5189a86a --- /dev/null +++ b/chris5641/0005/ChangeResolution.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +""" +第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。 +""" +from PIL import Image +import os + +__author__ = 'Chris5641' + + +def change_resolution(path): + for picname in os.listdir(path): + picpath = os.path.join(path, picname) + with Image.open(picpath) as im: + w, h = im.size + n = w/1366 if (w/1366) >= (h/640) else h/640 + im.thumbnail((w/n, h/n)) + im.save('finish_'+picname.split('.')[0]+'.jpg', 'jpeg') + + +if __name__ == '__main__': + change_resolution('/home/chris/pictures/123')