├── .gitignore
├── Day01-15
├── Day01
│ ├── code
│ │ ├── hello.py
│ │ └── peppa_pig.py
│ ├── res
│ │ ├── python-idle.png
│ │ ├── python-ipython.png
│ │ ├── python-jupyter-1.png
│ │ ├── python-jupyter-2.png
│ │ ├── python-pycharm.png
│ │ └── python-sublime.png
│ └── 初识Python.md
├── Day02
│ ├── code
│ │ ├── centigrade.py
│ │ ├── circle.py
│ │ ├── leap.py
│ │ ├── operator.py
│ │ ├── string.py
│ │ ├── variable1.py
│ │ ├── variable2.py
│ │ ├── variable3.py
│ │ ├── variable4.py
│ │ └── variable5.py
│ └── 语言元素.md
├── Day03
│ ├── code
│ │ ├── convert.py
│ │ ├── grade.py
│ │ ├── piecewise.py
│ │ ├── rolldice.py
│ │ ├── tax.py
│ │ ├── triangle.py
│ │ └── verify.py
│ └── 分支结构.md
├── Day04
│ ├── code
│ │ ├── for1.py
│ │ ├── for2.py
│ │ ├── for3.py
│ │ ├── for4.py
│ │ ├── for5.py
│ │ ├── for6.py
│ │ ├── while1.py
│ │ └── while2.py
│ └── 循环结构.md
├── Day05
│ ├── code
│ │ ├── chicken.py
│ │ ├── craps.py
│ │ ├── fibonacci.py
│ │ ├── guess.py
│ │ ├── lily.py
│ │ ├── palindrome.py
│ │ ├── perfect.py
│ │ ├── prime.py
│ │ └── table.py
│ └── 总结和练习.md
├── Day06
│ ├── code
│ │ ├── function1.py
│ │ ├── function2.py
│ │ ├── function3.py
│ │ ├── function4.py
│ │ ├── function5.py
│ │ └── function6.py
│ └── 函数和模块的使用.md
├── Day07
│ ├── code
│ │ ├── avgscore.py
│ │ ├── dict1.py
│ │ ├── dict2.py
│ │ ├── fibonacci.py
│ │ ├── findmax.py
│ │ ├── list1.py
│ │ ├── list2.py
│ │ ├── list3.py
│ │ ├── lottery.py
│ │ ├── marquee.py
│ │ ├── scoretable.py
│ │ ├── set1.py
│ │ ├── set2.py
│ │ ├── tic-tac-toe.py
│ │ ├── tuple.py
│ │ └── yanghui.py
│ ├── res
│ │ ├── fibonacci-blocks.png
│ │ ├── ipython-timeit.png
│ │ └── python-set.png
│ └── 字符串和常用数据结构.md
├── Day08
│ ├── code
│ │ ├── access.py
│ │ ├── circle.py
│ │ ├── clock.py
│ │ ├── guess.py
│ │ ├── hack.py
│ │ ├── rect.py
│ │ └── student.py
│ ├── res
│ │ ├── object-feature.png
│ │ └── oop-zhihu.png
│ └── 面向对象编程基础.md
├── Day09
│ ├── code
│ │ ├── association.py
│ │ ├── car1.py
│ │ ├── car2.py
│ │ ├── clock.py
│ │ ├── dependency.py
│ │ ├── diamond.py
│ │ ├── employee.py
│ │ ├── multi.py
│ │ ├── pet.py
│ │ ├── rational.py
│ │ ├── shape.py
│ │ └── triangle.py
│ ├── res
│ │ ├── uml-components.png
│ │ ├── uml-example.gliffy
│ │ └── uml-example.png
│ └── 面向对象进阶.md
├── Day10
│ ├── code
│ │ ├── ball.py
│ │ ├── gui1.py
│ │ ├── gui2.py
│ │ ├── gui3.py
│ │ ├── renju.py
│ │ ├── snake.py
│ │ └── turtle1.py
│ ├── res
│ │ ├── ball-game.png
│ │ └── ball.png
│ └── 图形用户界面和游戏开发.md
├── Day11
│ ├── code
│ │ ├── csv1.py
│ │ ├── csv2.py
│ │ ├── ex1.py
│ │ ├── ex2.py
│ │ ├── ex3.py
│ │ ├── ex4.py
│ │ ├── example.csv
│ │ ├── file1.py
│ │ ├── file2.py
│ │ ├── file3.py
│ │ ├── file4.py
│ │ ├── json1.py
│ │ ├── json2.py
│ │ ├── mm.jpg
│ │ ├── pi_million_digits.txt
│ │ ├── teacher.csv
│ │ └── 致橡树.txt
│ ├── res
│ │ └── file-open-mode.png
│ └── 文件和异常.md
├── Day12
│ ├── code
│ │ ├── str1.py
│ │ ├── str2.py
│ │ ├── test3.py
│ │ ├── test4.py
│ │ └── test5.py
│ ├── res
│ │ └── tel-start-number.png
│ └── 字符串和正则表达式.md
├── Day13
│ ├── code
│ │ ├── asyncio1.py
│ │ ├── asyncio2.py
│ │ ├── asyncio3.py
│ │ ├── coroutine1.py
│ │ ├── coroutine2.py
│ │ ├── generator1.py
│ │ ├── generator2.py
│ │ ├── multiprocess1.py
│ │ ├── multiprocess2.py
│ │ ├── multiprocess3.py
│ │ ├── multiprocess4.py
│ │ ├── multithread1.py
│ │ ├── multithread2.py
│ │ ├── multithread3.py
│ │ ├── multithread4.py
│ │ ├── multithread5.py
│ │ ├── multithread6.py
│ │ ├── singlethread1.py
│ │ ├── singlethread2.py
│ │ ├── test2.py
│ │ └── test3.py
│ ├── res
│ │ └── macos-monitor.png
│ └── 进程和线程.md
├── Day14-A
│ ├── code
│ │ ├── chatclient.py
│ │ ├── chatserver.py
│ │ ├── fileclient.py
│ │ ├── fileserver.py
│ │ ├── guido.jpg
│ │ ├── mmdownloader.py
│ │ ├── socket1.py
│ │ ├── socket2.py
│ │ ├── socket3.py
│ │ ├── socket4.py
│ │ ├── socket5.py
│ │ ├── timeclient.py
│ │ └── timeserver.py
│ ├── res
│ │ ├── TCP-IP-model.png
│ │ ├── after-browser.jpg
│ │ ├── arpanet.png
│ │ ├── before-browser.jpg
│ │ ├── browers.jpg
│ │ ├── browser-market-place.jpeg
│ │ ├── how-data-is-processed.jpg
│ │ ├── osi_rm.gif
│ │ ├── osimodel.png
│ │ ├── tcpipprotocols.png
│ │ └── telnet.png
│ └── 网络编程入门.md
├── Day14-B
│ └── 网络应用开发.md
└── Day15
│ ├── code
│ ├── excel1.py
│ ├── excel2.py
│ ├── pdf1.py
│ ├── pdf2.py
│ ├── pillow1.py
│ ├── res
│ │ ├── Python课程大纲.pdf
│ │ ├── guido.jpg
│ │ ├── 学生明细表.xlsx
│ │ └── 用函数还是用复杂的表达式.docx
│ ├── word1.py
│ └── word2.py
│ └── 图像和办公文档处理.md
├── Day16-20
├── Python语言进阶.md
├── code
│ ├── example01.py
│ ├── example02.py
│ ├── example03.py
│ ├── example04.py
│ ├── example05.py
│ ├── example06.py
│ ├── example07.py
│ ├── example08.py
│ ├── example09.py
│ ├── example10.py
│ ├── example11.py
│ ├── example12.py
│ ├── example13.py
│ ├── example14.py
│ ├── example15.py
│ ├── example16.py
│ ├── example17.py
│ ├── example18.py
│ ├── example19.py
│ ├── example20.py
│ ├── example21.py
│ ├── example22.py
│ ├── example23.py
│ ├── example24.py
│ ├── homework01.py
│ ├── homework02.py
│ ├── test_example01.py
│ └── test_example02.py
└── res
│ ├── algorithm_complexity_1.png
│ └── algorithm_complexity_2.png
├── Day21-30
├── Web前端概述.md
├── code
│ ├── new
│ │ ├── vue
│ │ │ └── vue.demo.html
│ │ └── web1901
│ │ │ ├── audio
│ │ │ ├── test-audio.mp3
│ │ │ └── test-audio.ogg
│ │ │ ├── css
│ │ │ └── style.css
│ │ │ ├── css_practice_1.html
│ │ │ ├── css_practice_1.result.html
│ │ │ ├── css_practice_2.html
│ │ │ ├── css_practice_2.result.html
│ │ │ ├── css_practice_3.html
│ │ │ ├── css_practice_3.result.html
│ │ │ ├── example_of_anchor.html
│ │ │ ├── example_of_audio_video.html
│ │ │ ├── example_of_bom_1.html
│ │ │ ├── example_of_bootstrap.html
│ │ │ ├── example_of_css_1.html
│ │ │ ├── example_of_css_2.html
│ │ │ ├── example_of_css_3.html
│ │ │ ├── example_of_css_4.html
│ │ │ ├── example_of_css_5.html
│ │ │ ├── example_of_form.html
│ │ │ ├── example_of_iframe.html
│ │ │ ├── example_of_jquery_1.html
│ │ │ ├── example_of_jquery_2.html
│ │ │ ├── example_of_jquery_3.html
│ │ │ ├── example_of_jquery_4.html
│ │ │ ├── example_of_jquery_5.html
│ │ │ ├── example_of_js_1.html
│ │ │ ├── example_of_js_2.html
│ │ │ ├── example_of_js_3.html
│ │ │ ├── example_of_js_4.html
│ │ │ ├── example_of_js_5.html
│ │ │ ├── example_of_js_6.html
│ │ │ ├── example_of_js_7.html
│ │ │ ├── example_of_layout.html
│ │ │ ├── example_of_table.html
│ │ │ ├── example_of_vue_element.html
│ │ │ ├── fonts
│ │ │ ├── chunkfive.ttf
│ │ │ └── quicksand.ttf
│ │ │ ├── images
│ │ │ ├── a1.jpg
│ │ │ ├── a2.jpg
│ │ │ ├── a3.jpg
│ │ │ ├── add.gif
│ │ │ ├── backdrop.gif
│ │ │ ├── bird.gif
│ │ │ ├── bok-choi.jpg
│ │ │ ├── button-sprite.jpg
│ │ │ ├── buttons.jpg
│ │ │ ├── chocolate-islands.jpg
│ │ │ ├── clavinet.jpg
│ │ │ ├── dark-wood.jpg
│ │ │ ├── dots.gif
│ │ │ ├── email.png
│ │ │ ├── header.gif
│ │ │ ├── header.jpg
│ │ │ ├── icon-plus.png
│ │ │ ├── icon.png
│ │ │ ├── icons.jpg
│ │ │ ├── keys.jpg
│ │ │ ├── lemon-posset.jpg
│ │ │ ├── logo-1.gif
│ │ │ ├── logo-2.gif
│ │ │ ├── logo-3.gif
│ │ │ ├── logo.gif
│ │ │ ├── magnolia-large.jpg
│ │ │ ├── magnolia-medium.jpg
│ │ │ ├── magnolia-small.jpg
│ │ │ ├── otters.jpg
│ │ │ ├── pattern.gif
│ │ │ ├── picture-1.jpg
│ │ │ ├── picture-2.jpg
│ │ │ ├── picture-3.jpg
│ │ │ ├── print-01.jpg
│ │ │ ├── print-02.jpg
│ │ │ ├── print-03.jpg
│ │ │ ├── print-04.jpg
│ │ │ ├── print-05.jpg
│ │ │ ├── print-06.jpg
│ │ │ ├── puppy.jpg
│ │ │ ├── python-logo.png
│ │ │ ├── quokka.jpg
│ │ │ ├── rhodes.jpg
│ │ │ ├── roasted-brussel-sprouts.jpg
│ │ │ ├── shadow.png
│ │ │ ├── slide-1.jpg
│ │ │ ├── slide-2.jpg
│ │ │ ├── slide-3.jpg
│ │ │ ├── slide-4.jpg
│ │ │ ├── star.png
│ │ │ ├── subscribe.jpg
│ │ │ ├── teriyaki.jpg
│ │ │ ├── thumb-1.jpg
│ │ │ ├── thumb-2.jpg
│ │ │ ├── thumb-3.jpg
│ │ │ ├── tim.png
│ │ │ ├── title.gif
│ │ │ ├── tulip.gif
│ │ │ ├── twitter.png
│ │ │ ├── web.png
│ │ │ ├── wurlitzer.jpg
│ │ │ └── zucchini-cake.jpg
│ │ │ ├── index.html
│ │ │ ├── js
│ │ │ ├── hello.js
│ │ │ └── jquery.min.js
│ │ │ ├── js_practice_1.html
│ │ │ ├── js_practice_2.html
│ │ │ ├── js_practice_3.html
│ │ │ ├── js_practice_4.html
│ │ │ ├── js_practice_5.html
│ │ │ ├── js_practice_6.html
│ │ │ ├── js_practice_7.html
│ │ │ ├── problem_of_float.html
│ │ │ ├── shopping_cart.html
│ │ │ └── video
│ │ │ ├── puppy.flv
│ │ │ ├── puppy.mp4
│ │ │ └── puppy.webm
│ └── old
│ │ ├── html+css
│ │ ├── classical_layout.html
│ │ ├── example.html
│ │ ├── form_and_table.html
│ │ └── qq_link.html
│ │ └── javascript
│ │ ├── example01.html
│ │ ├── example02.html
│ │ ├── example03.html
│ │ ├── example04.html
│ │ ├── example05.html
│ │ ├── example06.html
│ │ ├── example07.html
│ │ ├── example08.html
│ │ ├── example09.html
│ │ ├── example10.html
│ │ ├── example11.html
│ │ ├── example12.html
│ │ ├── homework01.html
│ │ ├── homework02.html
│ │ ├── homework03.html
│ │ ├── homework04.html
│ │ ├── homework05.html
│ │ ├── homework06.html
│ │ ├── homework07.html
│ │ ├── homework08.html
│ │ ├── img
│ │ ├── a1.jpg
│ │ ├── a2.jpg
│ │ ├── a3.jpg
│ │ ├── picture-1.jpg
│ │ ├── picture-2.jpg
│ │ ├── picture-3.jpg
│ │ ├── slide-1.jpg
│ │ ├── slide-2.jpg
│ │ ├── slide-3.jpg
│ │ ├── slide-4.jpg
│ │ ├── thumb-1.jpg
│ │ ├── thumb-2.jpg
│ │ └── thumb-3.jpg
│ │ ├── index.html
│ │ ├── js
│ │ ├── jquery.min.js
│ │ └── mylib.js
│ │ ├── message.json
│ │ └── message.xml
├── docs
│ ├── Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf
│ ├── Why Vue.mp4
│ └── Why you should use Bulma.mp4
└── res
│ ├── baidu_echarts.png
│ ├── bootstrap-layoutit.png
│ ├── browser-joke-1.png
│ ├── browser-joke-2.png
│ ├── browser-joke-3.png
│ ├── dom-page.png
│ ├── dom-tree.png
│ ├── 字体样式.png
│ ├── 字符实体.png
│ ├── 客户端对字体文件的支持.png
│ ├── 尺寸单位.png
│ ├── 属性选择器.png
│ ├── 常用选择器.png
│ ├── 开始标签.png
│ ├── 标签属性.png
│ ├── 样式属性.png
│ ├── 盒子模型.png
│ ├── 相对路径.png
│ ├── 经典布局-1.png
│ ├── 经典布局-2.png
│ ├── 结束标签.png
│ ├── 网站地图.png
│ ├── 衬线字体+非衬线字体+等宽字体.png
│ └── 选择器语法.png
├── Day31-35
├── code
│ ├── dayofyear.py
│ ├── guess.py
│ ├── homework01.py
│ ├── josephu.py
│ └── mycal.py
├── res
│ ├── Ken-Thompson.png
│ ├── andrew-tanenbaum.png
│ ├── dennis-ritchie.png
│ ├── file-mode.png
│ ├── history-of-os.png
│ ├── history-of-unix.png
│ ├── ibm-col80-punched-card.png
│ ├── ken-and-dennis-pdp-11.png
│ ├── linus-torvalds.png
│ ├── linux-network-config.png
│ ├── pdp-7.png
│ ├── vim-diff.png
│ ├── vim-macro.png
│ └── vim-multi-window.png
└── 玩转Linux操作系统.md
├── Day36-40
├── NoSQL入门.md
├── code
│ ├── HRS_create_and_init.sql
│ ├── SRS_create_and_init.sql
│ ├── bank_create_and_init.sql
│ ├── booksys_create_and_init.sql
│ ├── contact
│ │ └── main.py
│ ├── demo_create_and_init.sql
│ ├── dist.sql
│ ├── library_create_and_init.sql
│ ├── mooc_create_and_init.sql
│ ├── sharebike_create_and_init.sql
│ ├── shop_create_sql.sql
│ ├── srs_exercise_origin.sql
│ ├── 人力资源管理.spf
│ └── 学校选课系统.spf
├── res
│ ├── redis-aof.png
│ ├── redis-bind-and-port.png
│ ├── redis-data-types.png
│ ├── redis-databases.png
│ ├── redis-hash.png
│ ├── redis-list.png
│ ├── redis-rdb-1.png
│ ├── redis-rdb-3.png
│ ├── redis-replication.png
│ ├── redis-security.png
│ ├── redis-set.png
│ ├── redis-slow-logs.png
│ ├── redis-string.png
│ └── redis-zset.png
└── 关系型数据库MySQL.md
├── Day41-55
├── 01.快速上手.md
├── 02.深入模型.md
├── 03.静态资源和Ajax请求.md
├── 04.表单的应用.md
├── 05.Cookie和会话.md
├── 06.中间件的应用.md
├── 07.日志和调试.md
├── 08.文件上传和富文本编辑.md
├── 09.文件下载和报表.md
├── 10.RESTful架构和DRF入门.md
├── 11.RESTful架构和DRF进阶.md
├── 12.使用缓存.md
├── 13.短信和邮件.md
├── 14.异步任务和定时任务.md
├── 15.单元测试和项目上线.md
├── code
│ ├── car
│ │ ├── car
│ │ │ ├── __init__.py
│ │ │ ├── settings.py
│ │ │ ├── urls.py
│ │ │ └── wsgi.py
│ │ ├── manage.py
│ │ ├── search
│ │ │ ├── __init__.py
│ │ │ ├── admin.py
│ │ │ ├── apps.py
│ │ │ ├── migrations
│ │ │ │ ├── 0001_initial.py
│ │ │ │ ├── 0002_auto_20180524_1420.py
│ │ │ │ └── __init__.py
│ │ │ ├── models.py
│ │ │ ├── tests.py
│ │ │ └── views.py
│ │ ├── static
│ │ │ └── images
│ │ │ │ ├── icon-no.svg
│ │ │ │ └── icon-yes.svg
│ │ └── templates
│ │ │ ├── add.html
│ │ │ ├── search.html
│ │ │ └── search2.html
│ ├── hellodjango
│ │ ├── demo
│ │ │ ├── __init__.py
│ │ │ ├── admin.py
│ │ │ ├── apps.py
│ │ │ ├── forms.py
│ │ │ ├── hello.py
│ │ │ ├── migrations
│ │ │ │ ├── 0001_initial.py
│ │ │ │ ├── 0002_auto_20180704_1117.py
│ │ │ │ ├── 0003_auto_20180704_1118.py
│ │ │ │ ├── 0004_auto_20180705_1017.py
│ │ │ │ ├── 0005_auto_20180706_1458.py
│ │ │ │ └── __init__.py
│ │ │ ├── models.py
│ │ │ ├── tests.py
│ │ │ └── views.py
│ │ ├── hellodjango
│ │ │ ├── __init__.py
│ │ │ ├── settings.py
│ │ │ ├── urls.py
│ │ │ └── wsgi.py
│ │ ├── manage.py
│ │ ├── static
│ │ │ ├── images
│ │ │ │ ├── andrew.png
│ │ │ │ ├── dennis.png
│ │ │ │ ├── icon-no.svg
│ │ │ │ ├── icon-yes.svg
│ │ │ │ ├── ken.png
│ │ │ │ └── linus.png
│ │ │ └── js
│ │ │ │ └── jquery.min.js
│ │ └── templates
│ │ │ └── demo
│ │ │ ├── login.html
│ │ │ ├── register.html
│ │ │ ├── subject.html
│ │ │ └── teacher.html
│ ├── oa
│ │ ├── hrs
│ │ │ ├── __init__.py
│ │ │ ├── admin.py
│ │ │ ├── apps.py
│ │ │ ├── index.html
│ │ │ ├── migrations
│ │ │ │ ├── 0001_initial.py
│ │ │ │ ├── 0002_auto_20180523_0923.py
│ │ │ │ ├── 0003_auto_20180524_1646.py
│ │ │ │ ├── 0004_auto_20180815_1345.py
│ │ │ │ └── __init__.py
│ │ │ ├── models.py
│ │ │ ├── tests.py
│ │ │ ├── urls.py
│ │ │ └── views.py
│ │ ├── manage.py
│ │ ├── oa
│ │ │ ├── __init__.py
│ │ │ ├── settings.py
│ │ │ ├── urls.py
│ │ │ └── wsgi.py
│ │ ├── requirements.txt
│ │ ├── static
│ │ │ ├── css
│ │ │ │ └── bootstrap.min.css
│ │ │ ├── images
│ │ │ │ └── mm.jpg
│ │ │ └── js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ └── jquery.min.js
│ │ └── templates
│ │ │ ├── dept.html
│ │ │ ├── emp.html
│ │ │ └── index.html
│ ├── shop
│ │ ├── cart
│ │ │ ├── __init__.py
│ │ │ ├── admin.py
│ │ │ ├── apps.py
│ │ │ ├── migrations
│ │ │ │ ├── 0001_initial.py
│ │ │ │ └── __init__.py
│ │ │ ├── models.py
│ │ │ ├── tests.py
│ │ │ └── views.py
│ │ ├── manage.py
│ │ ├── shop
│ │ │ ├── __init__.py
│ │ │ ├── settings.py
│ │ │ ├── urls.py
│ │ │ └── wsgi.py
│ │ ├── static
│ │ │ └── images
│ │ │ │ ├── dolbee.jpg
│ │ │ │ ├── lay.jpg
│ │ │ │ ├── noodle.jpg
│ │ │ │ ├── oil.jpg
│ │ │ │ ├── wang.jpg
│ │ │ │ └── wine.jpg
│ │ └── templates
│ │ │ ├── cart.html
│ │ │ └── goods.html
│ └── shop_origin
│ │ ├── cart
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── migrations
│ │ │ ├── 0001_initial.py
│ │ │ └── __init__.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ └── views.py
│ │ ├── manage.py
│ │ ├── shop
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ │ ├── shop_create_sql.sql
│ │ ├── static
│ │ └── images
│ │ │ ├── dolbee.jpg
│ │ │ ├── lay.jpg
│ │ │ ├── noodle.jpg
│ │ │ ├── oil.jpg
│ │ │ ├── wang.jpg
│ │ │ └── wine.jpg
│ │ └── templates
│ │ ├── cart.html
│ │ └── goods.html
└── res
│ ├── Django-Flowchart.png
│ ├── Django-MTV.png
│ ├── admin-login.png
│ ├── admin-model-create.png
│ ├── admin-model-delete-and-update.png
│ ├── admin-model-depts.png
│ ├── admin-model-emps-modified.png
│ ├── admin-model-emps.png
│ ├── admin-model-read.png
│ ├── admin-model.png
│ ├── admin-welcome.png
│ ├── django-index-1.png
│ ├── django-index-2.png
│ ├── er-graph.png
│ ├── http-request.png
│ ├── http-response.png
│ ├── mvc.png
│ ├── runserver01.png
│ ├── runserver02.png
│ ├── runserver03.png
│ ├── show-subjects.png
│ ├── show-teachers.png
│ └── web-application.png
├── Day56-60
├── 01.Flask入门.md
├── 02.模板的使用.md
├── 03.表单的处理.md
├── 04.数据库操作.md
└── 05.项目实战.md
├── Day61-65
├── .gitkeep
├── 01.预备知识.md
├── 02.Tornado入门.md
├── 03.异步化.md
├── 04.WebSocket的应用.md
├── 05.项目实战.md
├── code
│ ├── .gitkeep
│ ├── hello-tornado
│ │ ├── chat_handlers.py
│ │ ├── chat_server.py
│ │ ├── example01.py
│ │ ├── example02.py
│ │ ├── example03.py
│ │ ├── example04.py
│ │ ├── example05.py
│ │ ├── example06.py
│ │ ├── example07.py
│ │ ├── example_of_aiohttp.py
│ │ ├── example_of_asyncio.py
│ │ ├── example_of_coroutine.py
│ │ ├── example_of_multiprocess.py
│ │ ├── requirements.txt
│ │ └── templates
│ │ │ ├── chat.html
│ │ │ ├── login.html
│ │ │ └── news.html
│ └── project_of_tornado
│ │ ├── assets
│ │ ├── css
│ │ │ ├── admin.css
│ │ │ ├── amazeui.datatables.min.css
│ │ │ ├── amazeui.min.css
│ │ │ ├── app.css
│ │ │ ├── app.less
│ │ │ ├── fullcalendar.min.css
│ │ │ └── fullcalendar.print.css
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── html
│ │ │ ├── 404.html
│ │ │ ├── calendar.html
│ │ │ ├── chart.html
│ │ │ ├── form.html
│ │ │ ├── login.html
│ │ │ ├── sign-up.html
│ │ │ ├── table-list-img.html
│ │ │ ├── table-list.html
│ │ │ └── tables.html
│ │ ├── i
│ │ │ ├── app-icon72x72@2x.png
│ │ │ ├── examples
│ │ │ │ ├── admin-chrome.png
│ │ │ │ ├── admin-firefox.png
│ │ │ │ ├── admin-ie.png
│ │ │ │ ├── admin-opera.png
│ │ │ │ ├── admin-safari.png
│ │ │ │ ├── adminPage.png
│ │ │ │ ├── blogPage.png
│ │ │ │ ├── landing.png
│ │ │ │ ├── landingPage.png
│ │ │ │ ├── loginPage.png
│ │ │ │ └── sidebarPage.png
│ │ │ ├── favicon.png
│ │ │ └── startup-640x1096.png
│ │ ├── img
│ │ │ ├── a5.png
│ │ │ ├── k.jpg
│ │ │ ├── logo.png
│ │ │ ├── logoa.png
│ │ │ ├── logob.png
│ │ │ ├── user01.png
│ │ │ ├── user02.png
│ │ │ ├── user03.png
│ │ │ ├── user04.png
│ │ │ ├── user05.png
│ │ │ ├── user06.png
│ │ │ └── user07.png
│ │ └── js
│ │ │ ├── amazeui.datatables.min.js
│ │ │ ├── amazeui.min.js
│ │ │ ├── app.js
│ │ │ ├── dataTables.responsive.min.js
│ │ │ ├── echarts.min.js
│ │ │ ├── fullcalendar.min.js
│ │ │ ├── jquery.min.js
│ │ │ ├── moment.js
│ │ │ └── theme.js
│ │ ├── backend_server.py
│ │ ├── requirements.txt
│ │ ├── service
│ │ ├── __init__.py
│ │ └── handlers
│ │ │ ├── __init__.py
│ │ │ ├── handlers_for_charts.py
│ │ │ ├── handlers_for_nav.py
│ │ │ └── handlers_for_tables.py
│ │ └── templates
│ │ └── index.html
└── res
│ ├── .gitkeep
│ ├── run-hello-world-app.png
│ ├── websocket.png
│ └── ws_wss.png
├── Day66-75
├── 01.网络爬虫和相关工具.md
├── 02.数据采集和解析.md
├── 03.存储数据.md
├── 04.并发下载.md
├── 05.解析动态内容.md
├── 06.表单交互和验证码处理.md
├── 07.Scrapy入门.md
├── 08.Scrapy高级应用.md
├── 09.Scrapy分布式实现.md
├── 10.爬虫项目实战.md
├── code
│ ├── asyncio01.py
│ ├── asyncio02.py
│ ├── coroutine01.py
│ ├── coroutine02.py
│ ├── douban
│ │ ├── douban
│ │ │ ├── __init__.py
│ │ │ ├── items.py
│ │ │ ├── middlewares.py
│ │ │ ├── pipelines.py
│ │ │ ├── settings.py
│ │ │ └── spiders
│ │ │ │ ├── __init__.py
│ │ │ │ └── movie.py
│ │ ├── result.json
│ │ └── scrapy.cfg
│ ├── example01.py
│ ├── example02.py
│ ├── example03.py
│ ├── example04.py
│ ├── example05.py
│ ├── example06.py
│ ├── example07.py
│ ├── example08.py
│ ├── example09.py
│ ├── example10.py
│ ├── example10a.py
│ ├── example11.py
│ ├── example11a.py
│ ├── example12.py
│ ├── generator01.py
│ ├── generator02.py
│ ├── guido.jpg
│ ├── image360
│ │ ├── image360
│ │ │ ├── __init__.py
│ │ │ ├── items.py
│ │ │ ├── middlewares.py
│ │ │ ├── pipelines.py
│ │ │ ├── settings.py
│ │ │ └── spiders
│ │ │ │ ├── __init__.py
│ │ │ │ ├── image.py
│ │ │ │ └── taobao.py
│ │ └── scrapy.cfg
│ ├── main.py
│ ├── main_redis.py
│ ├── myutils.py
│ └── tesseract.png
├── res
│ ├── api-image360.png
│ ├── baidu-search-taobao.png
│ ├── chrome-developer-tools.png
│ ├── crawler-workflow.png
│ ├── douban-xpath.png
│ ├── http-request.png
│ ├── http-response.png
│ ├── image360-website.png
│ ├── postman.png
│ ├── redis-save.png
│ ├── scrapy-architecture.png
│ └── tesseract.gif
└── 常见反爬策略及应对方案.md
├── Day76-90
├── 01.机器学习基础.md
├── 02.Pandas的应用.md
├── 03.NumPy和SciPy的应用.md
├── 04.Matplotlib和数据可视化.md
├── 05.k最近邻分类.md
├── 06.决策树.md
├── 07.贝叶斯分类.md
├── 08.支持向量机.md
├── 09.K-均值聚类.md
├── 10.回归分析.md
├── 11.大数据分析入门.md
├── 12.大数据分析进阶.md
├── 13.Tensorflow入门.md
├── 14.Tensorflow实战.md
├── 15.推荐系统实战.md
└── res
│ ├── 201205230001213115.png
│ ├── 201205230001238839.png
│ ├── 20120523000125800.png
│ ├── result-in-jupyter.png
│ ├── result1.png
│ ├── result2.png
│ ├── result3.png
│ ├── result4.png
│ ├── result5.png
│ ├── result6.png
│ ├── result7.png
│ ├── result8.png
│ └── result9.png
├── Day91-100
├── Django知识点概述.md
├── Docker简易上手指南.md
├── MySQL相关知识.md
├── res
│ ├── 01.django_single_server.png
│ ├── 02.django_dedicated_db_server.png
│ ├── 03.django_dedicated_static_server.png
│ ├── 04.django_load_balance.png
│ ├── 05.django_massive_cluster.png
│ ├── Celery_RabitMQ.png
│ ├── Producer-Broker-Consumer-Arrangement.png
│ ├── algorithm_complexity_1.png
│ ├── algorithm_complexity_2.png
│ ├── alipay_web_developer.png
│ ├── aliyun-certificate.png
│ ├── aliyun-dnslist.png
│ ├── aliyun-domain.png
│ ├── aliyun-keeprecord.png
│ ├── aliyun-resolve-settings.png
│ ├── builtin-middlewares.png
│ ├── celery_architecture.png
│ ├── click-jacking.png
│ ├── company_architecture.png
│ ├── django-middleware.png
│ ├── django-mtv.png
│ ├── django_request_response_cycle.png
│ ├── docker_logo.png
│ ├── docker_vs_vm.png
│ ├── er-graph.png
│ ├── git_logo.png
│ ├── git_repository.png
│ ├── hadoop_ecosystem.png
│ ├── http-request.png
│ ├── http-response.png
│ ├── jenkins_new_project.png
│ ├── mvc.png
│ ├── oauth2.png
│ ├── power-designer-pdm.png
│ ├── pylint.png
│ ├── python_jobs_chengdu.png
│ ├── python_salary_chengdu.png
│ ├── rbac-basic.png
│ ├── rbac-full.png
│ ├── redmine_new_issue.png
│ ├── requirements_by_xmind.png
│ ├── selenium_ide.png
│ ├── shopping-pdm.png
│ ├── the-daily-scrum-in-the-sprint-cycle.png
│ ├── uml-class-diagram.png
│ ├── uml-graph.png
│ ├── uml.png
│ └── web-application.png
├── 关于测试.md
├── 团队项目开发.md
├── 电商网站技术要点剖析.md
├── 网络API接口设计.md
├── 英语面试.md
├── 面试中的公共问题.md
└── 项目部署上线指南.md
├── PEP 8风格指南.md
├── Python参考书籍.md
├── Python惯例.md
├── README.md
├── res
├── 01.django_single_server.png
├── 02.django_dedicated_db_server.png
├── 03.django_dedicated_static_server.png
├── 04.django_load_balance.png
├── 05.django_massive_cluster.png
├── Celery_RabitMQ.png
├── Producer-Broker-Consumer-Arrangement.png
├── abstraction-view.png
├── algorithm_complexity_1.png
├── algorithm_complexity_2.png
├── alipay_web_developer.png
├── aliyun-certificate.png
├── aliyun-dnslist.png
├── aliyun-domain.png
├── aliyun-keeprecord.png
├── aliyun-resolve-settings.png
├── app_folder_arch.png
├── builtin-middlewares.png
├── celery.png
├── celery_architecture.png
├── class-and-object.png
├── click-jacking.png
├── company_architecture.png
├── concurrency.png
├── deployment_pipelines.png
├── django-middleware.png
├── django-mtv.png
├── django_request_response_cycle.png
├── docker_logo.png
├── docker_vs_vm.png
├── encapsulation.png
├── er-graph.png
├── git_logo.png
├── git_repository.png
├── gitignore_io.png
├── greedy.png
├── hadoop_ecosystem.png
├── http-request.png
├── http-response.png
├── int-is-comparation.png
├── jenkins_new_project.png
├── modularity.png
├── multi-inheritance.png
├── mvc.png
├── oauth2.png
├── object-roles.png
├── objects-collaborate.png
├── objects-lifetime.png
├── power-designer-pdm.png
├── pycharm-activate.png
├── pycharm-comm-django-1.png
├── pycharm-comm-django-2.png
├── pycharm-comm-django-3.png
├── pycharm-comm-django-4.png
├── pycharm-comm-django-5.png
├── pycharm-comm-django-6.png
├── pycharm-comm-django-7.png
├── pycharm-comm-django-8.png
├── pycharm-create-launcher-script.png
├── pycharm-import-settings.png
├── pycharm-new-project.png
├── pycharm-plugins.png
├── pycharm-prof-django-2.png
├── pycharm-prof-django-3.png
├── pycharm-set-ui-theme.png
├── pycharm-welcome.png
├── pycharm-workspace.png
├── pylint.png
├── python-bj-salary.png
├── python-built-in-functions.png
├── python-cd-salary.png
├── python-job-all.png
├── python-job-chengdu.png
├── python-salary-beijing.png
├── python-salary-chengdu.png
├── python-salary-hangzhou.png
├── python-salary-shanghai.png
├── python-salary-shenzhen.png
├── python-salary.png
├── python-str-join.png
├── python-top-10.png
├── python-tutor-visualize.png
├── python-tutor-visualize2.png
├── python_jobs_chengdu.png
├── python_salary_chengdu.png
├── python_salary_guangzhou.png
├── rbac-basic.png
├── rbac-full.png
├── redmine_new_issue.png
├── requirements_by_xmind.png
├── result-of-dis.png
├── selenium-ide.png
├── selenium_ide.png
├── shopping-pdm.png
├── the-daily-scrum-in-the-sprint-cycle.png
├── uml-class-diagram.png
├── uml-graph.png
├── uml.png
├── web-application.png
├── web-queue-worker-physical.png
└── zen-of-python.png
├── 玩转PyCharm.md
├── 用函数还是用复杂的表达式.md
├── 知乎问题回答.md
└── 那些年我们踩过的那些坑.md
/.gitignore:
--------------------------------------------------------------------------------
1 | venv
2 | .idea
3 | *.pyc
4 | __pycache__
5 |
6 |
--------------------------------------------------------------------------------
/Day01-15/Day01/code/hello.py:
--------------------------------------------------------------------------------
1 | """
2 | 第一个Python程序 - hello, world!
3 | 向伟大的Dennis M. Ritchie先生致敬
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-26
8 |
9 | 请将该文件命名为hello.py并在终端中通过下面的命令运行它
10 | python hello.py
11 | """
12 |
13 | print('hello, world!')
14 | # print("你好,世界!")
15 | print('你好', '世界')
16 | print('hello', 'world', sep=', ', end='!')
17 | print('goodbye, world', end='!\n')
18 |
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-idle.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-ipython.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-ipython.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-jupyter-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-jupyter-1.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-jupyter-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-jupyter-2.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-pycharm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-pycharm.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-sublime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day01/res/python-sublime.png
--------------------------------------------------------------------------------
/Day01-15/Day02/code/centigrade.py:
--------------------------------------------------------------------------------
1 | """
2 | 将华氏温度转换为摄氏温度
3 | F = 1.8C + 32
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 | """
9 |
10 | f = float(input('请输入华氏温度: '))
11 | c = (f - 32) / 1.8
12 | print('%.1f华氏度 = %.1f摄氏度' % (f, c))
13 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/circle.py:
--------------------------------------------------------------------------------
1 | """
2 | 输入半径计算圆的周长和面积
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | import math
10 |
11 | radius = float(input('请输入圆的半径: '))
12 | perimeter = 2 * math.pi * radius
13 | area = math.pi * radius * radius
14 | print('周长: %.2f' % perimeter)
15 | print('面积: %.2f' % area)
16 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/leap.py:
--------------------------------------------------------------------------------
1 | """
2 | 输入年份 如果是闰年输出True 否则输出False
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | year = int(input('请输入年份: '))
10 | # 如果代码太长写成一行不便于阅读 可以使用\或()折行
11 | is_leap = (year % 4 == 0 and year % 100 != 0 or
12 | year % 400 == 0)
13 | print(is_leap)
14 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/operator.py:
--------------------------------------------------------------------------------
1 | """
2 | 运算符的使用
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | a = 5
10 | b = 10
11 | c = 3
12 | d = 4
13 | e = 5
14 | a += b
15 | a -= c
16 | a *= d
17 | a /= e
18 | print("a = ", a)
19 |
20 | flag1 = 3 > 2
21 | flag2 = 2 < 1
22 | flag3 = flag1 and flag2
23 | flag4 = flag1 or flag2
24 | flag5 = not flag1
25 | print("flag1 = ", flag1)
26 | print("flag2 = ", flag2)
27 | print("flag3 = ", flag3)
28 | print("flag4 = ", flag4)
29 | print("flag5 = ", flag5)
30 | print(flag1 is True)
31 | print(flag2 is not False)
32 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/string.py:
--------------------------------------------------------------------------------
1 | """
2 | 字符串常用操作
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | str1 = 'hello, world!'
10 | print('字符串的长度是:', len(str1))
11 | print('单词首字母大写: ', str1.title())
12 | print('字符串变大写: ', str1.upper())
13 | # str1 = str1.upper()
14 | print('字符串是不是大写: ', str1.isupper())
15 | print('字符串是不是以hello开头: ', str1.startswith('hello'))
16 | print('字符串是不是以hello结尾: ', str1.endswith('hello'))
17 | print('字符串是不是以感叹号开头: ', str1.startswith('!'))
18 | print('字符串是不是一感叹号结尾: ', str1.endswith('!'))
19 | str2 = '- \u9a86\u660a'
20 | str3 = str1.title() + ' ' + str2.lower()
21 | print(str3)
22 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable1.py:
--------------------------------------------------------------------------------
1 | """
2 | 使用变量保存数据并进行操作
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | a = 321
10 | b = 123
11 | print(a + b)
12 | print(a - b)
13 | print(a * b)
14 | print(a / b)
15 | print(a // b)
16 | print(a % b)
17 | print(a ** b)
18 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable2.py:
--------------------------------------------------------------------------------
1 | """
2 | 将input函数输入的数据保存在变量中并进行操作
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | a = int(input('a = '))
10 | b = int(input('b = '))
11 | print(a + b)
12 | print(a - b)
13 | print(a * b)
14 | print(a / b)
15 | print(a // b)
16 | print(a % b)
17 | print(a ** b)
18 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable3.py:
--------------------------------------------------------------------------------
1 | """
2 | 格式化输出
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | a = int(input('a = '))
10 | b = int(input('b = '))
11 | print('%d + %d = %d' % (a, b, a + b))
12 | print('%d - %d = %d' % (a, b, a - b))
13 | print('%d * %d = %d' % (a, b, a * b))
14 | print('%d / %d = %f' % (a, b, a / b))
15 | print('%d // %d = %d' % (a, b, a // b))
16 | print('%d %% %d = %d' % (a, b, a % b))
17 | print('%d ** %d = %d' % (a, b, a ** b))
18 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable4.py:
--------------------------------------------------------------------------------
1 | """
2 | 检查变量的类型
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-27
7 | """
8 |
9 | a = 100
10 | b = 1000000000000000000
11 | c = 12.345
12 | d = 1 + 5j
13 | e = 'A'
14 | f = 'hello, world'
15 | g = True
16 | print(type(a))
17 | print(type(b))
18 | print(type(c))
19 | print(type(d))
20 | print(type(e))
21 | print(type(f))
22 | print(type(g))
23 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/convert.py:
--------------------------------------------------------------------------------
1 | """
2 | 英制单位英寸和公制单位厘米互换
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-28
7 | """
8 |
9 | value = float(input('请输入长度: '))
10 | unit = input('请输入单位: ')
11 | if unit == 'in' or unit == '英寸':
12 | print('%f英寸 = %f厘米' % (value, value * 2.54))
13 | elif unit == 'cm' or unit == '厘米':
14 | print('%f厘米 = %f英寸' % (value, value / 2.54))
15 | else:
16 | print('请输入有效的单位')
17 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/grade.py:
--------------------------------------------------------------------------------
1 | """
2 | 百分制成绩转等级制成绩
3 | 90分以上 --> A
4 | 80分~89分 --> B
5 | 70分~79分 --> C
6 | 60分~69分 --> D
7 | 60分以下 --> E
8 |
9 | Version: 0.1
10 | Author: 骆昊
11 | Date: 2018-02-28
12 | """
13 |
14 | score = float(input('请输入成绩: '))
15 | if score >= 90:
16 | grade = 'A'
17 | elif score >= 80:
18 | grade = 'B'
19 | elif score >= 70:
20 | grade = 'C'
21 | elif score >= 60:
22 | grade = 'D'
23 | else:
24 | grade = 'E'
25 | print('对应的等级是:', grade)
26 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/piecewise.py:
--------------------------------------------------------------------------------
1 | """
2 | 分段函数求值
3 | 3x - 5 (x > 1)
4 | f(x) = x + 2 (-1 <= x <= 1)
5 | 5x + 3 (x < -1)
6 |
7 | Version: 0.1
8 | Author: 骆昊
9 | Date: 2018-02-28
10 | """
11 |
12 | x = float(input('x = '))
13 | if x > 1:
14 | y = 3 * x - 5
15 | elif x >= -1:
16 | y = x + 2
17 | else:
18 | y = 5 * x + 3
19 | print('f(%.2f) = %.2f' % (x, y))
20 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/rolldice.py:
--------------------------------------------------------------------------------
1 | """
2 | 掷骰子决定做什么事情
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-28
7 | """
8 |
9 | from random import randint
10 |
11 | face = randint(1, 6)
12 | if face == 1:
13 | result = '唱首歌'
14 | elif face == 2:
15 | result = '跳个舞'
16 | elif face == 3:
17 | result = '学狗叫'
18 | elif face == 4:
19 | result = '做俯卧撑'
20 | elif face == 5:
21 | result = '念绕口令'
22 | else:
23 | result = '讲冷笑话'
24 | print(result)
25 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/triangle.py:
--------------------------------------------------------------------------------
1 | """
2 | 判断输入的边长能否构成三角形
3 | 如果能则计算出三角形的周长和面积
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-28
8 | """
9 |
10 | import math
11 |
12 | a = float(input('a = '))
13 | b = float(input('b = '))
14 | c = float(input('c = '))
15 | if a + b > c and a + c > b and b + c > a:
16 | print('周长: %f' % (a + b + c))
17 | p = (a + b + c) / 2
18 | area = math.sqrt(p * (p - a) * (p - b) * (p - c))
19 | print('面积: %f' % (area))
20 | else:
21 | print('不能构成三角形')
22 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/verify.py:
--------------------------------------------------------------------------------
1 | """
2 | 用户身份验证
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-02-28
7 | """
8 |
9 | # import getpass
10 | # from getpass import getpass
11 | # from getpass import *
12 |
13 | username = input('请输入用户名: ')
14 | password = input('请输入口令: ')
15 | # 输入口令的时候终端中没有回显
16 | # password = getpass.getpass('请输入口令: ')
17 | if username == 'admin' and password == '123456':
18 | print('身份验证成功!')
19 | else:
20 | print('身份验证失败!')
21 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for1.py:
--------------------------------------------------------------------------------
1 | """
2 | 用for循环实现1~100求和
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | sum = 0
10 | for x in range(1, 101):
11 | if x % 2 == 0:
12 | sum += x
13 | print(sum)
14 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for2.py:
--------------------------------------------------------------------------------
1 | """
2 | 用for循环实现1~100之间的偶数求和
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | sum = 0
10 | for x in range(2, 101, 2):
11 | sum += x
12 | print(sum)
13 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for3.py:
--------------------------------------------------------------------------------
1 | """
2 | 输入非负整数n计算n!
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | n = int(input('n = '))
10 | result = 1
11 | for x in range(1, n + 1):
12 | result *= x
13 | print('%d! = %d' % (n, result))
14 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for4.py:
--------------------------------------------------------------------------------
1 | """
2 | 输入一个正整数判断它是不是素数
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | from math import sqrt
10 |
11 | num = int(input('请输入一个正整数: '))
12 | end = int(sqrt(num))
13 | is_prime = True
14 | for x in range(2, end + 1):
15 | if num % x == 0:
16 | is_prime = False
17 | break
18 | if is_prime and num != 1:
19 | print('%d是素数' % num)
20 | else:
21 | print('%d不是素数' % num)
22 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for5.py:
--------------------------------------------------------------------------------
1 | """
2 | 输入两个正整数计算最大公约数和最小公倍数
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | x = int(input('x = '))
10 | y = int(input('y = '))
11 | if x > y:
12 | (x, y) = (y, x)
13 | for factor in range(x, 0, -1):
14 | if x % factor == 0 and y % factor == 0:
15 | print('%d和%d的最大公约数是%d' % (x, y, factor))
16 | print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
17 | break
18 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/while1.py:
--------------------------------------------------------------------------------
1 | """
2 | 用while循环实现1~100求和
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | sum = 0
10 | num = 1
11 | while num <= 100:
12 | sum += num
13 | num += 1
14 | print(sum)
15 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/while2.py:
--------------------------------------------------------------------------------
1 | """
2 | 用while循环实现1~100之间的偶数求和
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-01
7 | """
8 |
9 | sum = 0
10 | num = 2
11 | while num <= 100:
12 | sum += num
13 | num += 2
14 | print(sum)
15 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/chicken.py:
--------------------------------------------------------------------------------
1 | """
2 | 求解《百钱百鸡》问题
3 | 1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡
4 | 问公鸡 母鸡 小鸡各有多少只
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-02
9 | """
10 |
11 | for x in range(0, 20):
12 | for y in range(0, 33):
13 | z = 100 - x - y
14 | if 5 * x + 3 * y + z / 3 == 100:
15 | print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z))
16 |
17 | # 要理解程序背后的算法 - 穷举法
18 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/fibonacci.py:
--------------------------------------------------------------------------------
1 | """
2 | 输出斐波那契数列的前20个数
3 | 1 1 2 3 5 8 13 21 ...
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-02
8 | """
9 |
10 | a = 0
11 | b = 1
12 | for _ in range(20):
13 | (a, b) = (b, a + b)
14 | print(a, end=' ')
15 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/guess.py:
--------------------------------------------------------------------------------
1 | """
2 | 猜数字游戏
3 | 计算机出一个1~100之间的随机数由人来猜
4 | 计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-02
9 | """
10 |
11 | import random
12 |
13 | answer = random.randint(1, 100)
14 | counter = 0
15 | while True:
16 | counter += 1
17 | number = int(input('请输入: '))
18 | if number < answer:
19 | print('大一点')
20 | elif number > answer:
21 | print('小一点')
22 | else:
23 | print('恭喜你猜对了!')
24 | break
25 | print('你总共猜了%d次' % counter)
26 | if counter > 7:
27 | print('你的智商余额明显不足')
28 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/lily.py:
--------------------------------------------------------------------------------
1 | """
2 | 找出100~999之间的所有水仙花数
3 | 水仙花数是各位立方和等于这个数本身的数
4 | 如: 153 = 1**3 + 5**3 + 3**3
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-02
9 | """
10 |
11 | for num in range(100, 1000):
12 | low = num % 10
13 | mid = num // 10 % 10
14 | high = num // 100
15 | if num == low ** 3 + mid ** 3 + high ** 3:
16 | print(num)
17 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/palindrome.py:
--------------------------------------------------------------------------------
1 | """
2 | 判断输入的正整数是不是回文数
3 | 回文数是指将一个正整数从左往右排列和从右往左排列值一样的数
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-02
8 | """
9 |
10 | num = int(input('请输入一个正整数: '))
11 | temp = num
12 | num2 = 0
13 | while temp > 0:
14 | num2 *= 10
15 | num2 += temp % 10
16 | temp //= 10
17 | if num == num2:
18 | print('%d是回文数' % num)
19 | else:
20 | print('%d不是回文数' % num)
21 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/perfect.py:
--------------------------------------------------------------------------------
1 | """
2 | 找出1~9999之间的所有完美数
3 | 完美数是除自身外其他所有因子的和正好等于这个数本身的数
4 | 例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-02
9 | """
10 | import time
11 | import math
12 |
13 | start = time.clock()
14 | for num in range(1, 10000):
15 | sum = 0
16 | for factor in range(1, int(math.sqrt(num)) + 1):
17 | if num % factor == 0:
18 | sum += factor
19 | if factor > 1 and num / factor != factor:
20 | sum += num / factor
21 | if sum == num:
22 | print(num)
23 | end = time.clock()
24 | print("执行时间:", (end - start), "秒")
25 |
26 | # 通过比较上面两种不同的解决方案的执行时间 意识到优化程序的重要性
27 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/prime.py:
--------------------------------------------------------------------------------
1 | """
2 | 输出2~99之间的素数
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-02
7 | """
8 |
9 | import math
10 |
11 | for num in range(2, 100):
12 | is_prime = True
13 | for factor in range(2, int(math.sqrt(num)) + 1):
14 | if num % factor == 0:
15 | is_prime = False
16 | break
17 | if is_prime:
18 | print(num, end=' ')
19 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/table.py:
--------------------------------------------------------------------------------
1 | """
2 | 输出乘法口诀表(九九表)
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-02
7 | """
8 |
9 | for i in range(1, 10):
10 | for j in range(1, i + 1):
11 | print('%d*%d=%d' % (i, j, i * j), end='\t')
12 | print()
13 |
--------------------------------------------------------------------------------
/Day01-15/Day05/总结和练习.md:
--------------------------------------------------------------------------------
1 | ## 练习
2 |
3 | ### 练习清单
4 |
5 | 1. 寻找[“水仙花数”](https://baike.baidu.com/item/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0)。
6 | 2. 寻找[“完美数”](https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E6%95%B0/370913)。
7 | 3. [“百钱百鸡”](https://baike.baidu.com/item/%E7%99%BE%E9%B8%A1%E7%99%BE%E9%92%B1/5857320)问题。
8 | 4. 生成[“斐波拉切数列”](https://baike.baidu.com/item/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97/99145)。
9 | 5. Craps赌博游戏。
--------------------------------------------------------------------------------
/Day01-15/Day06/code/function1.py:
--------------------------------------------------------------------------------
1 | """
2 | 函数的定义和使用 - 计算组合数C(7,3)
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-05
7 | """
8 |
9 |
10 | # 将求阶乘的功能封装成一个函数
11 | def factorial(n):
12 | result = 1
13 | for num in range(1, n + 1):
14 | result *= num
15 | return result
16 |
17 |
18 | print(factorial(7) // factorial(3) // factorial(4))
19 |
--------------------------------------------------------------------------------
/Day01-15/Day06/code/function2.py:
--------------------------------------------------------------------------------
1 | """
2 | 函数的定义和使用 - 求最大公约数和最小公倍数
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-05
7 | """
8 |
9 |
10 | def gcd(x, y):
11 | if x > y:
12 | (x, y) = (y, x)
13 | for factor in range(x, 1, -1):
14 | if x % factor == 0 and y % factor == 0:
15 | return factor
16 | return 1
17 |
18 |
19 | def lcm(x, y):
20 | return x * y // gcd(x, y)
21 |
22 |
23 | print(gcd(15, 27))
24 | print(lcm(15, 27))
25 |
--------------------------------------------------------------------------------
/Day01-15/Day06/code/function6.py:
--------------------------------------------------------------------------------
1 | """
2 | 作用域问题
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-05
7 | """
8 |
9 |
10 | # 局部作用域
11 | def foo1():
12 | a = 5
13 |
14 |
15 | foo1()
16 | # print(a) # NameError
17 |
18 | # 全局作用域
19 | b = 10
20 |
21 |
22 | def foo2():
23 | print(b)
24 |
25 |
26 | foo2()
27 |
28 |
29 | def foo3():
30 | b = 100 # 局部变量
31 | print(b)
32 |
33 |
34 | foo3()
35 | print(b)
36 |
37 |
38 | def foo4():
39 | global b
40 | b = 200 # 全局变量
41 | print(b)
42 |
43 |
44 | foo4()
45 | print(b)
46 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/dict2.py:
--------------------------------------------------------------------------------
1 | """
2 | 字典的常用操作
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-06
7 | """
8 |
9 |
10 | def main():
11 | stu = {'name': '骆昊', 'age': 38, 'gender': True}
12 | print(stu)
13 | print(stu.keys())
14 | print(stu.values())
15 | print(stu.items())
16 | for elem in stu.items():
17 | print(elem)
18 | print(elem[0], elem[1])
19 | if 'age' in stu:
20 | stu['age'] = 20
21 | print(stu)
22 | stu.setdefault('score', 60)
23 | print(stu)
24 | stu.setdefault('score', 100)
25 | print(stu)
26 | stu['score'] = 100
27 | print(stu)
28 |
29 |
30 | if __name__ == '__main__':
31 | main()
32 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/fibonacci.py:
--------------------------------------------------------------------------------
1 | """
2 | 生成斐波拉切数列
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-06
7 | """
8 |
9 |
10 | def main():
11 | f = [1 , 1]
12 | for i in range(2, 20):
13 | f += [f[i - 1] + f[i - 2]]
14 | # f.append(f[i - 1] + f[i - 2])
15 | for val in f:
16 | print(val, end=' ')
17 |
18 |
19 | if __name__ == '__main__':
20 | main()
21 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/marquee.py:
--------------------------------------------------------------------------------
1 | """
2 | 输入学生考试成绩计算平均分
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-06
7 | """
8 |
9 | import os
10 | import time
11 |
12 |
13 | def main():
14 | str = 'Welcome to 1000 Phone Chengdu Campus '
15 | while True:
16 | print(str)
17 | time.sleep(0.2)
18 | str = str[1:] + str[0:1]
19 | # for Windows use os.system('cls') instead
20 | os.system('clear')
21 |
22 |
23 | if __name__ == '__main__':
24 | main()
25 |
--------------------------------------------------------------------------------
/Day01-15/Day07/res/fibonacci-blocks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day07/res/fibonacci-blocks.png
--------------------------------------------------------------------------------
/Day01-15/Day07/res/ipython-timeit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day07/res/ipython-timeit.png
--------------------------------------------------------------------------------
/Day01-15/Day07/res/python-set.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day07/res/python-set.png
--------------------------------------------------------------------------------
/Day01-15/Day08/code/access.py:
--------------------------------------------------------------------------------
1 | class Test:
2 |
3 | def __init__(self, foo):
4 | self.__foo = foo
5 |
6 | def __bar(self):
7 | print(self.__foo)
8 | print('__bar')
9 |
10 |
11 | def main():
12 | test = Test('hello')
13 | test._Test__bar()
14 | print(test._Test__foo)
15 |
16 |
17 | if __name__ == "__main__":
18 | main()
19 |
--------------------------------------------------------------------------------
/Day01-15/Day08/code/hack.py:
--------------------------------------------------------------------------------
1 | """
2 | 另一种创建类的方式
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-08
7 | """
8 |
9 |
10 | def bar(self, name):
11 | self._name = name
12 |
13 |
14 | def foo(self, course_name):
15 | print('%s正在学习%s.' % (self._name, course_name))
16 |
17 |
18 | def main():
19 | Student = type('Student', (object,), dict(__init__=bar, study=foo))
20 | stu1 = Student('骆昊')
21 | stu1.study('Python程序设计')
22 |
23 |
24 | if __name__ == '__main__':
25 | main()
26 |
--------------------------------------------------------------------------------
/Day01-15/Day08/res/object-feature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day08/res/object-feature.png
--------------------------------------------------------------------------------
/Day01-15/Day08/res/oop-zhihu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day08/res/oop-zhihu.png
--------------------------------------------------------------------------------
/Day01-15/Day09/res/uml-components.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day09/res/uml-components.png
--------------------------------------------------------------------------------
/Day01-15/Day09/res/uml-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day09/res/uml-example.png
--------------------------------------------------------------------------------
/Day01-15/Day10/code/turtle1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 用turtle模块绘图
4 | 这是一个非常有趣的模块 它模拟一只乌龟在窗口上爬行的方式来进行绘图
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-14
9 |
10 | """
11 |
12 | import turtle
13 |
14 | turtle.pensize(3)
15 | turtle.penup()
16 | turtle.goto(-180, 150)
17 | turtle.pencolor('red')
18 | turtle.fillcolor('yellow')
19 | turtle.pendown()
20 | turtle.begin_fill()
21 | for _ in range(36):
22 | turtle.forward(200)
23 | turtle.right(170)
24 | turtle.end_fill()
25 | turtle.mainloop()
26 |
--------------------------------------------------------------------------------
/Day01-15/Day10/res/ball-game.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day10/res/ball-game.png
--------------------------------------------------------------------------------
/Day01-15/Day10/res/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day10/res/ball.png
--------------------------------------------------------------------------------
/Day01-15/Day11/code/csv1.py:
--------------------------------------------------------------------------------
1 | """
2 | 读取CSV文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | import csv
10 |
11 | filename = 'example.csv'
12 |
13 | try:
14 | with open(filename) as f:
15 | reader = csv.reader(f)
16 | data = list(reader)
17 | except FileNotFoundError:
18 | print('无法打开文件:', filename)
19 | else:
20 | for item in data:
21 | print('%-30s%-20s%-10s' % (item[0], item[1], item[2]))
22 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex1.py:
--------------------------------------------------------------------------------
1 | """
2 | 异常机制 - 处理程序在运行时可能发生的状态
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | input_again = True
10 | while input_again:
11 | try:
12 | a = int(input('a = '))
13 | b = int(input('b = '))
14 | print('%d / %d = %f' % (a, b, a / b))
15 | input_again = False
16 | except ValueError:
17 | print('请输入整数')
18 | except ZeroDivisionError:
19 | print('除数不能为0')
20 | # 处理异常让代码不因异常而崩溃是一方面
21 | # 更重要的是可以通过对异常的处理让代码从异常中恢复过来
22 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex2.py:
--------------------------------------------------------------------------------
1 | """
2 | 异常机制 - 处理程序在运行时可能发生的状态
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | input_again = True
10 | while input_again:
11 | try:
12 | a = int(input('a = '))
13 | b = int(input('b = '))
14 | print('%d / %d = %f' % (a, b, a / b))
15 | input_again = False
16 | except (ValueError, ZeroDivisionError) as msg:
17 | print(msg)
18 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex3.py:
--------------------------------------------------------------------------------
1 | """
2 | 异常机制 - 处理程序在运行时可能发生的状态
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | import time
10 | import sys
11 |
12 | filename = input('请输入文件名: ')
13 | try:
14 | with open(filename) as f:
15 | lines = f.readlines()
16 | except FileNotFoundError as msg:
17 | print('无法打开文件:', filename)
18 | print(msg)
19 | except UnicodeDecodeError as msg:
20 | print('非文本文件无法解码')
21 | sys.exit()
22 | else:
23 | for line in lines:
24 | print(line.rstrip())
25 | time.sleep(0.5)
26 | finally:
27 | # 此处最适合做善后工作
28 | print('不管发生什么我都会执行')
29 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex4.py:
--------------------------------------------------------------------------------
1 | """
2 | 引发异常和异常栈
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 |
10 | def f1():
11 | raise AssertionError('发生异常')
12 |
13 |
14 | def f2():
15 | f1()
16 |
17 |
18 | def f3():
19 | f2()
20 |
21 |
22 | f3()
23 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/example.csv:
--------------------------------------------------------------------------------
1 | 4/5/2014 13:34,Apples,73
2 | 4/5/2014 3:41,Cherries,85
3 | 4/6/2014 12:46,Pears,14
4 | 4/8/2014 8:59,Oranges,52
5 | 4/10/2014 2:07,Apples,152
6 | 4/10/2014 18:10,Bananas,23
7 | 4/10/2014 2:40,Strawberries,98
8 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file1.py:
--------------------------------------------------------------------------------
1 | """
2 | 从文本文件中读取数据
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | import time
10 |
11 |
12 | def main():
13 | # 一次性读取整个文件内容
14 | with open('致橡树.txt', 'r', encoding='utf-8') as f:
15 | print(f.read())
16 |
17 | # 通过for-in循环逐行读取
18 | with open('致橡树.txt', mode='r') as f:
19 | for line in f:
20 | print(line, end='')
21 | time.sleep(0.5)
22 | print()
23 |
24 | # 读取文件按行读取到列表中
25 | with open('致橡树.txt') as f:
26 | lines = f.readlines()
27 | print(lines)
28 |
29 |
30 | if __name__ == '__main__':
31 | main()
32 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file2.py:
--------------------------------------------------------------------------------
1 | """
2 | 读取圆周率文件判断其中是否包含自己的生日
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | birth = input('请输入你的生日: ')
10 | with open('pi_million_digits.txt') as f:
11 | lines = f.readlines()
12 | pi_string = ''
13 | for line in lines:
14 | pi_string += line.strip()
15 | if birth in pi_string:
16 | print('Bingo!!!')
17 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file3.py:
--------------------------------------------------------------------------------
1 | """
2 | 写文本文件
3 | 将100以内的素数写入到文件中
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 | """
9 |
10 | from math import sqrt
11 |
12 |
13 | def is_prime(n):
14 | for factor in range(2, int(sqrt(n)) + 1):
15 | if n % factor == 0:
16 | return False
17 | return True
18 |
19 |
20 | # 试一试有什么不一样
21 | # with open('prime.txt', 'a') as f:
22 | with open('prime.txt', 'w') as f:
23 | for num in range(2, 100):
24 | if is_prime(num):
25 | f.write(str(num) + '\n')
26 | print('写入完成!')
27 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file4.py:
--------------------------------------------------------------------------------
1 | """
2 | 读写二进制文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 | import base64
9 |
10 | with open('mm.jpg', 'rb') as f:
11 | data = f.read()
12 | # print(type(data))
13 | # print(data)
14 | print('字节数:', len(data))
15 | # 将图片处理成BASE-64编码
16 | print(base64.b64encode(data))
17 |
18 | with open('girl.jpg', 'wb') as f:
19 | f.write(data)
20 | print('写入完成!')
21 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/json2.py:
--------------------------------------------------------------------------------
1 | """
2 | 写入JSON文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-13
7 | """
8 |
9 | import json
10 |
11 | teacher_dict = {'name': '白元芳', 'age': 25, 'title': '讲师'}
12 | json_str = json.dumps(teacher_dict)
13 | print(json_str)
14 | print(type(json_str))
15 | fruits_list = ['apple', 'orange', 'strawberry', 'banana', 'pitaya']
16 | json_str = json.dumps(fruits_list)
17 | print(json_str)
18 | print(type(json_str))
19 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/mm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day11/code/mm.jpg
--------------------------------------------------------------------------------
/Day01-15/Day11/code/teacher.csv:
--------------------------------------------------------------------------------
1 | 骆昊,38,叫兽
2 | 狄仁杰,25,砖家
3 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/致橡树.txt:
--------------------------------------------------------------------------------
1 | 我如果爱你
2 | 绝不学攀援的凌霄花
3 | 借你的高枝炫耀自己
4 |
5 | 我如果爱你
6 | 绝不学痴情的鸟儿
7 | 为绿荫重复单调的歌曲
8 |
9 | 也不止像泉源
10 | 常年送来清凉的慰藉
11 | 也不止像险峰
12 | 增加你的高度 衬托你的威仪
13 | 甚至日光 甚至春雨
14 | 不 这些都还不够
15 | 我必须是你近旁的一株木棉
16 | 作为树的形象和你站在一起
17 | 根 紧握在地下
18 | 叶 相触在云里
19 | 每一阵风过
20 | 我们都互相致意
21 | 但没有人 听懂我们的言语
22 | 你有你的铜枝铁干
23 | 像刀 像剑 也像戟;
24 | 我有我红硕的花朵
25 | 像沉重的叹息 又像英勇的火炬
26 | 我们分担寒潮、风雷、霹雳
27 | 我们共享雾霭、流岚、虹霓
28 | 仿佛永远分离 却又终身相依
29 | 这才是伟大的爱情
30 | 坚贞就在这里
31 | 爱 不仅爱你伟岸的身躯
32 | 也爱你坚持的位置 足下的土地
--------------------------------------------------------------------------------
/Day01-15/Day11/res/file-open-mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day11/res/file-open-mode.png
--------------------------------------------------------------------------------
/Day01-15/Day12/code/test3.py:
--------------------------------------------------------------------------------
1 | """
2 | 验证输入用户名和QQ号是否有效并给出对应的提示信息
3 |
4 | 要求:
5 | 用户名必须由字母、数字或下划线构成且长度在6~20个字符之间
6 | QQ号是5~12的数字且首位不能为0
7 | """
8 |
9 | import re
10 |
11 |
12 | def main():
13 | username = input('请输入用户名: ')
14 | qq = input('请输入QQ号: ')
15 | m1 = re.match(r'^[0-9a-zA-Z_]{6,20}$', username)
16 | if not m1:
17 | print('请输入有效的用户名.')
18 | m2 = re.match(r'^[1-9]\d{4,11}$', qq)
19 | if not m2:
20 | print('请输入有效的QQ号.')
21 | if m1 and m2:
22 | print('你输入的信息是有效的!')
23 |
24 |
25 | if __name__ == '__main__':
26 | main()
27 |
--------------------------------------------------------------------------------
/Day01-15/Day12/code/test5.py:
--------------------------------------------------------------------------------
1 | """
2 | 不良内容过滤
3 | """
4 | import re
5 |
6 |
7 | def main():
8 | sentence = '你丫是傻叉吗? 我操你大爷的. Fuck you.'
9 | purified = re.sub('[操肏艹]|fuck|shit|傻[比屄逼叉缺吊屌]|煞笔',
10 | '*', sentence, flags=re.IGNORECASE)
11 | print(purified)
12 |
13 |
14 | if __name__ == '__main__':
15 | main()
16 |
--------------------------------------------------------------------------------
/Day01-15/Day12/res/tel-start-number.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day12/res/tel-start-number.png
--------------------------------------------------------------------------------
/Day01-15/Day13/code/asyncio2.py:
--------------------------------------------------------------------------------
1 | """
2 | 异步I/O操作 - async和await
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-21
7 | """
8 | import asyncio
9 | import threading
10 |
11 |
12 | # 通过async修饰的函数不再是普通函数而是一个协程
13 | # 注意async和await将在Python 3.7中作为关键字出现
14 | async def hello():
15 | print('%s: hello, world!' % threading.current_thread())
16 | await asyncio.sleep(2)
17 | print('%s: goodbye, world!' % threading.current_thread())
18 |
19 |
20 | loop = asyncio.get_event_loop()
21 | tasks = [hello(), hello()]
22 | # 等待两个异步I/O操作执行结束
23 | loop.run_until_complete(asyncio.wait(tasks))
24 | loop.close()
25 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/generator1.py:
--------------------------------------------------------------------------------
1 | """
2 | 生成器 - 生成器语法
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-21
7 | """
8 |
9 | seq = [x * x for x in range(10)]
10 | print(seq)
11 |
12 | gen = (x * x for x in range(10))
13 | print(gen)
14 | for x in gen:
15 | print(x)
16 |
17 | num = 10
18 | gen = (x ** y for x, y in zip(range(1, num), range(num - 1, 0, -1)))
19 | print(gen)
20 | n = 1
21 | while n < num:
22 | print(next(gen))
23 | n += 1
24 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/generator2.py:
--------------------------------------------------------------------------------
1 | """
2 | 生成器 - 使用yield关键字
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-21
7 | """
8 |
9 |
10 | def fib(num):
11 | n, a, b = 0, 0, 1
12 | while n < num:
13 | yield b
14 | a, b = b, a + b
15 | n += 1
16 |
17 |
18 | for x in fib(20):
19 | print(x)
20 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/multiprocess3.py:
--------------------------------------------------------------------------------
1 | """
2 | 创建进程调用其他程序
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-20
7 | """
8 |
9 | import subprocess
10 | import sys
11 |
12 | def main():
13 | # 通过sys.argv获取命令行参数
14 | if len(sys.argv) > 1:
15 | # 第一个命令行参数是程序本身所以从第二个开始取
16 | for index in range(1, len(sys.argv)):
17 | try:
18 | # 通过subprocess模块的call函数启动子进程
19 | status = subprocess.call(sys.argv[index])
20 | except FileNotFoundError:
21 | print('不能执行%s命令' % sys.argv[index])
22 | else:
23 | print('请使用命令行参数指定要执行的进程')
24 |
25 |
26 | if __name__ == '__main__':
27 | main()
28 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/multiprocess4.py:
--------------------------------------------------------------------------------
1 | from time import time
2 |
3 |
4 | def main():
5 | total = 0
6 | number_list = [x for x in range(1, 100000001)]
7 | start = time()
8 | for number in number_list:
9 | total += number
10 | print(total)
11 | end = time()
12 | print('Execution time: %.3fs' % (end - start))
13 |
14 |
15 | if __name__ == '__main__':
16 | main()
--------------------------------------------------------------------------------
/Day01-15/Day13/code/singlethread1.py:
--------------------------------------------------------------------------------
1 | """
2 | 不使用多线程的情况 - 模拟多个下载任务
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-20
7 | """
8 |
9 | from random import randint
10 | from time import time, sleep
11 |
12 |
13 | def download_task(filename):
14 | print('开始下载%s...' % filename)
15 | time_to_download = randint(5, 10)
16 | sleep(time_to_download)
17 | print('下载完成! 耗费了%d秒' % time_to_download)
18 |
19 |
20 | def main():
21 | start = time()
22 | download_task('Python从入门到住院.pdf')
23 | download_task('Peking Hot.avi')
24 | end = time()
25 | print('总共耗费了%.2f秒.' % (end - start))
26 |
27 |
28 | if __name__ == '__main__':
29 | main()
30 |
--------------------------------------------------------------------------------
/Day01-15/Day13/res/macos-monitor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day13/res/macos-monitor.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/guido.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/code/guido.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket1.py:
--------------------------------------------------------------------------------
1 | """
2 | 套接字 - 基于TCP协议创建时间服务器
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-22
7 | """
8 |
9 | from socket import *
10 | from time import *
11 |
12 | server = socket(AF_INET, SOCK_STREAM)
13 | server.bind(('localhost', 6789))
14 | server.listen()
15 | print('服务器已经启动正在监听客户端连接.')
16 | while True:
17 | client, addr = server.accept()
18 | print('客户端%s:%d连接成功.' % (addr[0], addr[1]))
19 | currtime = localtime(time())
20 | timestr = strftime('%Y-%m-%d %H:%M:%S', currtime)
21 | client.send(timestr.encode('utf-8'))
22 | client.close()
23 | server.close()
24 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket2.py:
--------------------------------------------------------------------------------
1 | """
2 | 套接字 - 基于TCP协议创建时间客户端
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-22
7 | """
8 |
9 | from socket import *
10 |
11 | client = socket(AF_INET, SOCK_STREAM)
12 | client.connect(('localhost', 6789))
13 | while True:
14 | data = client.recv(1024)
15 | if not data:
16 | break
17 | print(data.decode('utf-8'))
18 | client.close()
19 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket3.py:
--------------------------------------------------------------------------------
1 | """
2 | 套接字 - 基于UDP协议Echo服务器
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-22
7 | """
8 | from socket import *
9 | from time import *
10 |
11 | server = socket(AF_INET, SOCK_DGRAM)
12 | server.bind(('localhost', 6789))
13 | while True:
14 | data, addr = server.recvfrom(1024)
15 | server.sendto(data, addr)
16 | server.close()
17 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket4.py:
--------------------------------------------------------------------------------
1 | """
2 | 套接字 - 基于UDP协议创建Echo客户端
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-22
7 | """
8 |
9 | from socket import *
10 |
11 | client = socket(AF_INET, SOCK_DGRAM)
12 | while True:
13 | data_str = input('请输入: ')
14 | client.sendto(data_str.encode('utf-8'), ('localhost', 6789))
15 | data, addr = client.recvfrom(1024)
16 | data_str = data.decode('utf-8')
17 | print('服务器回应:', data_str)
18 | if data_str == 'bye':
19 | break
20 | client.close()
21 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket5.py:
--------------------------------------------------------------------------------
1 | """
2 | 使用socketserver模块创建时间服务器
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-22
7 | """
8 | from socketserver import TCPServer, StreamRequestHandler
9 | from time import *
10 |
11 |
12 | class EchoRequestHandler(StreamRequestHandler):
13 |
14 | def handle(self):
15 | currtime = localtime(time())
16 | timestr = strftime('%Y-%m-%d %H:%M:%S', currtime)
17 | self.wfile.write(timestr.encode('utf-8'))
18 |
19 |
20 | server = TCPServer(('localhost', 6789), EchoRequestHandler)
21 | server.serve_forever()
22 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/timeclient.py:
--------------------------------------------------------------------------------
1 | from socket import socket
2 |
3 |
4 | def main():
5 | client = socket()
6 | client.connect(('10.7.152.69', 6789))
7 | print(client.recv(1024).decode('utf-8'))
8 | client.close()
9 |
10 |
11 | if __name__ == '__main__':
12 | main()
13 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/TCP-IP-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/TCP-IP-model.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/after-browser.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/after-browser.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/arpanet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/arpanet.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/before-browser.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/before-browser.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/browers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/browers.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/browser-market-place.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/browser-market-place.jpeg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/how-data-is-processed.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/how-data-is-processed.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/osi_rm.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/osi_rm.gif
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/osimodel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/osimodel.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/tcpipprotocols.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/tcpipprotocols.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/telnet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day14-A/res/telnet.png
--------------------------------------------------------------------------------
/Day01-15/Day15/code/excel2.py:
--------------------------------------------------------------------------------
1 | """
2 | 读取Excel文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-26
7 | """
8 |
9 | from openpyxl import load_workbook
10 | from openpyxl import Workbook
11 |
12 | workbook = load_workbook('./res/学生明细表.xlsx')
13 | print(workbook.sheetnames)
14 | sheet = workbook[workbook.sheetnames[0]]
15 | print(sheet.title)
16 | for row in range(2, 7):
17 | for col in range(65, 70):
18 | cell_index = chr(col) + str(row)
19 | print(sheet[cell_index].value, end='\t')
20 | print()
21 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/pdf1.py:
--------------------------------------------------------------------------------
1 | """
2 | 创建PDF文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-26
7 | """
--------------------------------------------------------------------------------
/Day01-15/Day15/code/pdf2.py:
--------------------------------------------------------------------------------
1 | """
2 | 读取PDF文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-26
7 | """
8 |
9 | from PyPDF2 import PdfFileReader
10 |
11 | with open('./res/Python课程大纲.pdf', 'rb') as f:
12 | reader = PdfFileReader(f, strict=False)
13 | print(reader.numPages)
14 | if reader.isEncrypted:
15 | reader.decrypt('')
16 | current_page = reader.getPage(5)
17 | print(current_page)
18 | print(current_page.extractText())
19 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/pillow1.py:
--------------------------------------------------------------------------------
1 | """
2 | 使用pillow操作图像
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-26
7 | """
8 | from PIL import Image
9 |
10 | img = Image.open('./res/guido.jpg')
11 | print(img.size)
12 | print(img.format)
13 | print(img.format_description)
14 | img.save('./res/guido.png')
15 |
16 | img2 = Image.open('./res/guido.png')
17 | img3 = img2.crop((335, 435, 430, 615))
18 | for x in range(4):
19 | for y in range(5):
20 | img2.paste(img3, (95 * y , 180 * x))
21 | img2.resize((img.size[0] // 2, img.size[1] // 2))
22 | img2.rotate(90)
23 | img2.save('./res/guido2.png')
24 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/Python课程大纲.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/Python课程大纲.pdf
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/guido.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/guido.jpg
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/学生明细表.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/学生明细表.xlsx
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/用函数还是用复杂的表达式.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day01-15/Day15/code/res/用函数还是用复杂的表达式.docx
--------------------------------------------------------------------------------
/Day01-15/Day15/code/word1.py:
--------------------------------------------------------------------------------
1 | """
2 | 创建Word文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-26
7 | """
--------------------------------------------------------------------------------
/Day01-15/Day15/code/word2.py:
--------------------------------------------------------------------------------
1 | """
2 | 读取Word文件
3 |
4 | Version: 0.1
5 | Author: 骆昊
6 | Date: 2018-03-26
7 | """
8 |
9 | from docx import Document
10 |
11 | doc = Document('./res/用函数还是用复杂的表达式.docx')
12 | print(len(doc.paragraphs))
13 | print(doc.paragraphs[0].text)
14 | # print(doc.paragraphs[1].runs[0].text)
15 |
16 | content = []
17 | for para in doc.paragraphs:
18 | content.append(para.text)
19 | print(''.join(content))
20 |
--------------------------------------------------------------------------------
/Day16-20/code/example11.py:
--------------------------------------------------------------------------------
1 | """
2 | 变量的作用域以及Python搜索变量的顺序
3 | LEGB: Local --> Embedded --> Global --> Built-in
4 | global - 声明或定义全局变量(要么直接使用现有的全局作用域的变量,要么定义一个变量放到全局作用域)
5 | nonlocal - 声明使用嵌套作用域的变量(如果嵌套作用域没有对应的变量直接报错)
6 | """
7 | x = 100
8 |
9 |
10 | def foo():
11 | global x
12 | x = 200
13 |
14 | def bar():
15 | x = 300
16 | print(x)
17 |
18 | bar()
19 | print(x)
20 |
21 |
22 | foo()
23 | print(x)
24 |
--------------------------------------------------------------------------------
/Day16-20/code/example13.py:
--------------------------------------------------------------------------------
1 | from example12 import EmployeeFactory
2 |
3 |
4 | def main():
5 | """主函数"""
6 | emps = [
7 | EmployeeFactory.create('M', '曹操'),
8 | EmployeeFactory.create('P', '荀彧', 120),
9 | EmployeeFactory.create('P', '郭嘉', 85),
10 | EmployeeFactory.create('S', '典韦', 123000),
11 | ]
12 | for emp in emps:
13 | print('%s: %.2f元' % (emp.name, emp.get_salary()))
14 |
15 |
16 | if __name__ == '__main__':
17 | main()
18 |
--------------------------------------------------------------------------------
/Day16-20/res/algorithm_complexity_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day16-20/res/algorithm_complexity_1.png
--------------------------------------------------------------------------------
/Day16-20/res/algorithm_complexity_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day16-20/res/algorithm_complexity_2.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/audio/test-audio.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/audio/test-audio.mp3
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/audio/test-audio.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/audio/test-audio.ogg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/example_of_audio_video.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 音视频
6 |
7 |
8 |
11 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/example_of_js_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 猜数字
6 |
7 |
8 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/example_of_js_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/fonts/chunkfive.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/fonts/chunkfive.ttf
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/fonts/quicksand.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/fonts/quicksand.ttf
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/a1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/a1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/a2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/a2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/a3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/a3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/add.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/add.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/backdrop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/backdrop.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/bird.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/bird.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/bok-choi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/bok-choi.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/button-sprite.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/button-sprite.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/buttons.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/buttons.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/chocolate-islands.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/chocolate-islands.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/clavinet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/clavinet.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/dark-wood.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/dark-wood.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/dots.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/dots.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/email.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/header.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/header.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/header.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/icon-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/icon-plus.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/icon.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/icons.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/icons.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/keys.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/keys.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/lemon-posset.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/lemon-posset.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo-1.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo-2.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo-3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo-3.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/logo.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/magnolia-large.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/magnolia-large.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/magnolia-medium.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/magnolia-medium.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/magnolia-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/magnolia-small.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/otters.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/otters.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/pattern.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/pattern.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/picture-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/picture-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/picture-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/picture-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/picture-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/picture-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-01.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-02.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-03.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-04.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-05.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/print-06.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/puppy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/puppy.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/python-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/python-logo.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/quokka.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/quokka.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/rhodes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/rhodes.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/roasted-brussel-sprouts.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/roasted-brussel-sprouts.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/shadow.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/slide-4.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/star.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/subscribe.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/subscribe.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/teriyaki.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/teriyaki.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/thumb-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/thumb-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/thumb-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/thumb-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/thumb-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/thumb-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/tim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/tim.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/title.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/title.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/tulip.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/tulip.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/twitter.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/web.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/wurlitzer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/wurlitzer.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/zucchini-cake.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/images/zucchini-cake.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/js/hello.js:
--------------------------------------------------------------------------------
1 | function randomColor(opacity=1) {
2 | let r = parseInt(Math.random() * 256)
3 | let g = parseInt(Math.random() * 256)
4 | let b = parseInt(Math.random() * 256)
5 | return `rgba(${r}, ${g}, ${b}, ${opacity})`
6 | }
7 |
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/video/puppy.flv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/video/puppy.flv
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/video/puppy.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/video/puppy.mp4
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/video/puppy.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/new/web1901/video/puppy.webm
--------------------------------------------------------------------------------
/Day21-30/code/old/html+css/qq_link.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
19 |
20 |
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/a1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/a1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/a2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/a2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/a3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/a3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/picture-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/picture-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/picture-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/picture-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/picture-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/picture-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/slide-4.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/thumb-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/thumb-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/thumb-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/thumb-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/thumb-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/code/old/javascript/img/thumb-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/js/mylib.js:
--------------------------------------------------------------------------------
1 | function randomColor() {
2 | var r = parseInt(Math.random() * 128 + 128);
3 | var g = parseInt(Math.random() * 128 + 128);
4 | var b = parseInt(Math.random() * 128 + 128);
5 | return 'rgb(' + r + ', ' + g + ', ' + b + ')';
6 | }
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/message.json:
--------------------------------------------------------------------------------
1 | {
2 | "from": "骆昊",
3 | "to": "王大锤",
4 | "content": "今天晚上你请我吃饭!"
5 | }
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/message.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 骆昊
4 | 王大锤
5 | 今天晚上你请我吃饭!
6 |
--------------------------------------------------------------------------------
/Day21-30/docs/Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/docs/Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf
--------------------------------------------------------------------------------
/Day21-30/docs/Why Vue.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/docs/Why Vue.mp4
--------------------------------------------------------------------------------
/Day21-30/docs/Why you should use Bulma.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/docs/Why you should use Bulma.mp4
--------------------------------------------------------------------------------
/Day21-30/res/baidu_echarts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/baidu_echarts.png
--------------------------------------------------------------------------------
/Day21-30/res/bootstrap-layoutit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/bootstrap-layoutit.png
--------------------------------------------------------------------------------
/Day21-30/res/browser-joke-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/browser-joke-1.png
--------------------------------------------------------------------------------
/Day21-30/res/browser-joke-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/browser-joke-2.png
--------------------------------------------------------------------------------
/Day21-30/res/browser-joke-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/browser-joke-3.png
--------------------------------------------------------------------------------
/Day21-30/res/dom-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/dom-page.png
--------------------------------------------------------------------------------
/Day21-30/res/dom-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/dom-tree.png
--------------------------------------------------------------------------------
/Day21-30/res/字体样式.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/字体样式.png
--------------------------------------------------------------------------------
/Day21-30/res/字符实体.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/字符实体.png
--------------------------------------------------------------------------------
/Day21-30/res/客户端对字体文件的支持.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/客户端对字体文件的支持.png
--------------------------------------------------------------------------------
/Day21-30/res/尺寸单位.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/尺寸单位.png
--------------------------------------------------------------------------------
/Day21-30/res/属性选择器.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/属性选择器.png
--------------------------------------------------------------------------------
/Day21-30/res/常用选择器.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/常用选择器.png
--------------------------------------------------------------------------------
/Day21-30/res/开始标签.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/开始标签.png
--------------------------------------------------------------------------------
/Day21-30/res/标签属性.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/标签属性.png
--------------------------------------------------------------------------------
/Day21-30/res/样式属性.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/样式属性.png
--------------------------------------------------------------------------------
/Day21-30/res/盒子模型.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/盒子模型.png
--------------------------------------------------------------------------------
/Day21-30/res/相对路径.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/相对路径.png
--------------------------------------------------------------------------------
/Day21-30/res/经典布局-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/经典布局-1.png
--------------------------------------------------------------------------------
/Day21-30/res/经典布局-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/经典布局-2.png
--------------------------------------------------------------------------------
/Day21-30/res/结束标签.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/结束标签.png
--------------------------------------------------------------------------------
/Day21-30/res/网站地图.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/网站地图.png
--------------------------------------------------------------------------------
/Day21-30/res/衬线字体+非衬线字体+等宽字体.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/衬线字体+非衬线字体+等宽字体.png
--------------------------------------------------------------------------------
/Day21-30/res/选择器语法.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day21-30/res/选择器语法.png
--------------------------------------------------------------------------------
/Day31-35/code/dayofyear.py:
--------------------------------------------------------------------------------
1 | import sys
2 | import mycal
3 |
4 |
5 | def main():
6 | if len(sys.argv) != 4:
7 | print('Not enough arguments')
8 | return
9 | year = int(sys.argv[1])
10 | month = int(sys.argv[2])
11 | day = int(sys.argv[3])
12 | total = 0
13 | for m in range(1, month):
14 | total += mycal.get_days(year, m)
15 | total += day
16 | print(f'{year}年{month}月{day}日是{year}年的第{total}天')
17 |
18 |
19 | if __name__ == '__main__':
20 | main()
21 |
22 |
--------------------------------------------------------------------------------
/Day31-35/code/guess.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python3
2 | # coding: utf-8
3 | from random import randint
4 |
5 |
6 | def main():
7 | answer = randint(1, 100)
8 | while True:
9 | number = int(input('请输入: '))
10 | if number < answer:
11 | print('大一点')
12 | elif number > answer:
13 | print('小一点')
14 | else:
15 | print('恭喜你猜对了!')
16 | break
17 |
18 |
19 | if __name__ == '__main__':
20 | main()
21 |
--------------------------------------------------------------------------------
/Day31-35/code/josephu.py:
--------------------------------------------------------------------------------
1 | def main():
2 | persons = [True] * 30
3 | counter = 0
4 | index = 0
5 | number = 0
6 | while counter < 15:
7 | if persons[index]:
8 | number += 1
9 | if number == 9:
10 | persons[index] = False
11 | number = 0
12 | counter += 1
13 | index += 1
14 | index %= len(persons)
15 | for person in persons:
16 | print('基' if person else '非', end='')
17 | print()
18 |
19 |
20 | if __name__ == '__main__':
21 | main()
22 |
23 |
--------------------------------------------------------------------------------
/Day31-35/res/Ken-Thompson.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/Ken-Thompson.png
--------------------------------------------------------------------------------
/Day31-35/res/andrew-tanenbaum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/andrew-tanenbaum.png
--------------------------------------------------------------------------------
/Day31-35/res/dennis-ritchie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/dennis-ritchie.png
--------------------------------------------------------------------------------
/Day31-35/res/file-mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/file-mode.png
--------------------------------------------------------------------------------
/Day31-35/res/history-of-os.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/history-of-os.png
--------------------------------------------------------------------------------
/Day31-35/res/history-of-unix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/history-of-unix.png
--------------------------------------------------------------------------------
/Day31-35/res/ibm-col80-punched-card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/ibm-col80-punched-card.png
--------------------------------------------------------------------------------
/Day31-35/res/ken-and-dennis-pdp-11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/ken-and-dennis-pdp-11.png
--------------------------------------------------------------------------------
/Day31-35/res/linus-torvalds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/linus-torvalds.png
--------------------------------------------------------------------------------
/Day31-35/res/linux-network-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/linux-network-config.png
--------------------------------------------------------------------------------
/Day31-35/res/pdp-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/pdp-7.png
--------------------------------------------------------------------------------
/Day31-35/res/vim-diff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/vim-diff.png
--------------------------------------------------------------------------------
/Day31-35/res/vim-macro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/vim-macro.png
--------------------------------------------------------------------------------
/Day31-35/res/vim-multi-window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day31-35/res/vim-multi-window.png
--------------------------------------------------------------------------------
/Day36-40/code/bank_create_and_init.sql:
--------------------------------------------------------------------------------
1 | drop database if exists bank;
2 |
3 | create database bank default charset utf8;
4 |
5 | use bank;
6 |
7 | create table tb_account
8 | (
9 | accid char(8) primary key,
10 | accowner varchar(20) not null,
11 | accbalance float not null default 0
12 | );
13 |
14 | insert into tb_account values (11223344, '王大锤', 1000);
15 | insert into tb_account values (22334455, '李小龙', 1000);
--------------------------------------------------------------------------------
/Day36-40/res/redis-aof.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-aof.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-bind-and-port.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-bind-and-port.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-data-types.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-data-types.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-databases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-databases.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-hash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-hash.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-list.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-rdb-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-rdb-1.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-rdb-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-rdb-3.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-replication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-replication.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-security.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-set.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-set.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-slow-logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-slow-logs.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-string.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-string.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-zset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day36-40/res/redis-zset.png
--------------------------------------------------------------------------------
/Day41-55/04.表单的应用.md:
--------------------------------------------------------------------------------
1 | ## Django实战(04) - 表单的应用
2 |
3 | 我们继续来完成上一章节中的项目,实现“用户注册”和“用户登录”的功能,并限制只有登录的用户才能为老师投票。Django框架中提供了对表单的封装,而且提供了多种不同的使用方式。
4 |
5 | 首先添加用户模型。
6 |
7 | ```Python
8 |
9 | ```
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Day41-55/05.Cookie和会话.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战-05:Cookie和会话
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Day41-55/06.中间件的应用.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战06:中间件的应用
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/07.日志和调试.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战-07:日志和调试
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/08.文件上传和富文本编辑.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战08:文件上传和富文本编辑
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/09.文件下载和报表.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战08:文件下载和报表
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/10.RESTful架构和DRF入门.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战10:RESTful架构和DRF入门
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/11.RESTful架构和DRF进阶.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战11:RESTful架构和DRF进阶
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/12.使用缓存.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战12:使用缓存
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/13.短信和邮件.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战13:短信和邮件
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/14.异步任务和定时任务.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战14:异步任务和定时任务
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Day41-55/15.单元测试和项目上线.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战15:单元测试和项目上线
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Day41-55/code/car/car/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 |
3 | pymysql.install_as_MySQLdb()
--------------------------------------------------------------------------------
/Day41-55/code/car/car/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for car project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/Day41-55/code/car/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/Day41-55/code/car/search/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/car/search/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/car/search/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | from search.models import CarRecord
4 |
5 |
6 | class CarRecordAdmin(admin.ModelAdmin):
7 |
8 | list_display = ('carno', 'reason', 'date', 'punish', 'isdone')
9 | search_fields = ('carno', )
10 |
11 |
12 | admin.site.register(CarRecord, CarRecordAdmin)
13 |
--------------------------------------------------------------------------------
/Day41-55/code/car/search/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class SearchConfig(AppConfig):
5 | name = 'search'
6 |
--------------------------------------------------------------------------------
/Day41-55/code/car/search/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/car/search/migrations/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/car/search/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/Day41-55/code/car/static/images/icon-no.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Day41-55/code/car/static/images/icon-yes.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/demo/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class DemoConfig(AppConfig):
5 | name = '投票'
6 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 |
3 | from demo.models import User
4 |
5 |
6 | class UserForm(forms.ModelForm):
7 | username = forms.CharField(widget=forms.TextInput, min_length=6, max_length=20)
8 | password = forms.CharField(widget=forms.PasswordInput, min_length=8, max_length=20)
9 | email = forms.CharField(widget=forms.EmailInput, max_length=255)
10 |
11 | class Meta(object):
12 | model = User
13 | fields = ('username', 'password', 'email')
14 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/hello.py:
--------------------------------------------------------------------------------
1 | # 序列化 - 把对象写入数据流 - 串行化 / 归档 / 腌咸菜
2 | # 反序列化 - 从数据流中恢复出对象 - 反串行化 / 解归档
3 | # Python有三个支持序列化的模块
4 | # json - JSON / pickle - 二进制 / shelve
5 | import json
6 | import pickle
7 |
8 |
9 | class Student(object):
10 |
11 | def __init__(self, name, age):
12 | self.name = name
13 | self.age = age
14 |
15 |
16 | if __name__ == '__main__':
17 | list1 = [10, 'hello', 99.9, 'goodbye']
18 | print(json.dumps(list1))
19 | print(pickle.dumps(list1))
20 | dict1 = {'name': '骆昊', 'age': 38}
21 | print(json.dumps(dict1))
22 | print(pickle.dumps(dict1))
23 | stu = Student('骆昊', 38)
24 | print(pickle.dumps(stu))
25 |
26 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/demo/migrations/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/hellodjango/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 |
3 | pymysql.install_as_MySQLdb()
4 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/hellodjango/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for hellodjango project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hellodjango.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hellodjango.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/andrew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/andrew.png
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/dennis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/dennis.png
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/icon-no.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/icon-yes.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/ken.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/ken.png
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/linus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/hellodjango/static/images/linus.png
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/templates/demo/subject.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 学科信息
6 |
15 |
16 |
17 | 学科信息
18 |
19 | {% for subject in subjects_list %}
20 |
21 | - {{ subject.name }}
22 | - {{ subject.intro }}
23 |
24 | {% endfor %}
25 |
26 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/oa/hrs/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | from hrs.models import Dept, Emp
4 |
5 |
6 | class DeptAdmin(admin.ModelAdmin):
7 |
8 | list_display = ('no', 'name', 'location')
9 | ordering = ('no', )
10 |
11 |
12 | class EmpAdmin(admin.ModelAdmin):
13 |
14 | list_display = ('no', 'name', 'job', 'sal', 'dept')
15 | search_fields = ('name', 'job')
16 | ordering = ('dept', )
17 |
18 |
19 | admin.site.register(Dept, DeptAdmin)
20 | admin.site.register(Emp, EmpAdmin)
21 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class HrsConfig(AppConfig):
5 | name = 'hrs'
6 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Document
6 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/migrations/0003_auto_20180524_1646.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-05-24 08:46
2 |
3 | from django.db import migrations, models
4 | import django.db.models.deletion
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('hrs', '0002_auto_20180523_0923'),
11 | ]
12 |
13 | operations = [
14 | migrations.AlterField(
15 | model_name='emp',
16 | name='mgr',
17 | field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='hrs.Emp'),
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/oa/hrs/migrations/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/hrs/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 |
3 | from hrs import views
4 |
5 | urlpatterns = [
6 | path('depts', views.depts, name='depts'),
7 | # url('depts/emps/(?P[0-9]+)', views.emps, name='empsindept'),
8 | path('depts/emps/', views.emps, name='empsindept'),
9 | path('deldept/', views.del_dept, name='ddel')
10 | ]
11 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "oa.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/oa/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 |
3 | pymysql.install_as_MySQLdb()
4 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/oa/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for oa project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "oa.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/requirements.txt:
--------------------------------------------------------------------------------
1 | asn1crypto==0.24.0
2 | cffi==1.11.5
3 | cryptography==2.3
4 | Django>=2.1.6
5 | idna==2.7
6 | pycparser==2.18
7 | PyMySQL==0.9.2
8 | pytz==2018.5
9 | six==1.11.0
10 |
--------------------------------------------------------------------------------
/Day41-55/code/oa/static/images/mm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/oa/static/images/mm.jpg
--------------------------------------------------------------------------------
/Day41-55/code/oa/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 | {% load staticfiles %}
3 |
4 |
5 |
6 | 首页
7 |
8 |
9 | {{ greeting }}
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/cart/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/cart/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/shop/cart/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | from cart.models import Goods
4 |
5 |
6 | class GoodsAdmin(admin.ModelAdmin):
7 |
8 | list_display = ('id', 'name', 'price', 'image')
9 | search_fields = ('name', )
10 |
11 |
12 | admin.site.register(Goods, GoodsAdmin)
13 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/cart/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class CartConfig(AppConfig):
5 | name = 'cart'
6 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/cart/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/cart/migrations/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/shop/cart/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 |
4 | class Goods(models.Model):
5 | """商品模型类"""
6 |
7 | id = models.AutoField(primary_key=True, db_column='gid')
8 | name = models.CharField(max_length=50, db_column='gname')
9 | price = models.DecimalField(max_digits=10, decimal_places=2, db_column='gprice')
10 | image = models.CharField(max_length=255, db_column='gimage')
11 |
12 | class Meta:
13 |
14 | db_table = 'tb_goods'
15 | ordering = ('id', )
16 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/cart/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/shop/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 |
3 | pymysql.install_as_MySQLdb()
4 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/shop/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for shop project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/dolbee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/dolbee.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/lay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/lay.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/noodle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/noodle.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/oil.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/oil.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/wang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/wang.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/wine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop/static/images/wine.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/cart/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | from cart.models import Goods
4 |
5 |
6 | class GoodsAdmin(admin.ModelAdmin):
7 |
8 | list_display = ('id', 'name', 'price', 'image')
9 |
10 |
11 | admin.site.register(Goods, GoodsAdmin)
12 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class CartConfig(AppConfig):
5 | name = 'cart'
6 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/cart/migrations/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 |
4 | class Goods(models.Model):
5 |
6 | id = models.AutoField(primary_key=True, db_column='gid')
7 | name = models.CharField(max_length=50, db_column='gname')
8 | price = models.DecimalField(max_digits=10, decimal_places=2, db_column='gprice')
9 | image = models.CharField(max_length=255, db_column='gimage')
10 |
11 | class Meta:
12 | db_table = 'tb_goods'
13 | ordering = ('id',)
14 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/views.py:
--------------------------------------------------------------------------------
1 | from django.shortcuts import render
2 |
3 | from cart.models import Goods
4 |
5 |
6 | def index(request):
7 | goods_list = list(Goods.objects.all())
8 | return render(request, 'goods.html', {'goods_list': goods_list})
9 |
10 |
11 | def show_cart(request):
12 | return render(request, 'cart.html')
13 |
14 |
15 | def add_to_cart(request, no):
16 | pass
17 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/shop/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 |
3 | pymysql.install_as_MySQLdb()
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/shop/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for shop project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/shop_create_sql.sql:
--------------------------------------------------------------------------------
1 | insert into tb_goods values
2 | (default, '乐事(Lay’s)无限薯片', 8.2, 'images/lay.jpg'),
3 | (default, '旺旺 仙贝 加量装 540g', 18.5, 'images/wang.jpg'),
4 | (default, '多儿比(Dolbee)黄桃水果罐头', 6.8, 'images/dolbee.jpg'),
5 | (default, '王致和 精制料酒 500ml', 7.9, 'images/wine.jpg'),
6 | (default, '陈克明 面条 鸡蛋龙须挂面', 1.0, 'images/noodle.jpg'),
7 | (default, '鲁花 菜籽油 4L', 69.9, 'images/oil.jpg');
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/dolbee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/dolbee.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/lay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/lay.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/noodle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/noodle.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/oil.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/oil.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/wang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/wang.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/wine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/code/shop_origin/static/images/wine.jpg
--------------------------------------------------------------------------------
/Day41-55/res/Django-Flowchart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/Django-Flowchart.png
--------------------------------------------------------------------------------
/Day41-55/res/Django-MTV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/Django-MTV.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-login.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-create.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-delete-and-update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-delete-and-update.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-depts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-depts.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-emps-modified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-emps-modified.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-emps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-emps.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model-read.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-model.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/admin-welcome.png
--------------------------------------------------------------------------------
/Day41-55/res/django-index-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/django-index-1.png
--------------------------------------------------------------------------------
/Day41-55/res/django-index-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/django-index-2.png
--------------------------------------------------------------------------------
/Day41-55/res/er-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/er-graph.png
--------------------------------------------------------------------------------
/Day41-55/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/http-request.png
--------------------------------------------------------------------------------
/Day41-55/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/http-response.png
--------------------------------------------------------------------------------
/Day41-55/res/mvc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/mvc.png
--------------------------------------------------------------------------------
/Day41-55/res/runserver01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/runserver01.png
--------------------------------------------------------------------------------
/Day41-55/res/runserver02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/runserver02.png
--------------------------------------------------------------------------------
/Day41-55/res/runserver03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/runserver03.png
--------------------------------------------------------------------------------
/Day41-55/res/show-subjects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/show-subjects.png
--------------------------------------------------------------------------------
/Day41-55/res/show-teachers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/show-teachers.png
--------------------------------------------------------------------------------
/Day41-55/res/web-application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day41-55/res/web-application.png
--------------------------------------------------------------------------------
/Day56-60/01.Flask入门.md:
--------------------------------------------------------------------------------
1 | ## Flask入门
2 |
3 |
--------------------------------------------------------------------------------
/Day56-60/02.模板的使用.md:
--------------------------------------------------------------------------------
1 | ## 模板的使用
2 |
3 |
--------------------------------------------------------------------------------
/Day56-60/03.表单的处理.md:
--------------------------------------------------------------------------------
1 | ## 表单的处理
2 |
3 |
--------------------------------------------------------------------------------
/Day56-60/04.数据库操作.md:
--------------------------------------------------------------------------------
1 | ## 数据库操作
2 |
3 |
--------------------------------------------------------------------------------
/Day56-60/05.项目实战.md:
--------------------------------------------------------------------------------
1 | ## 项目实战
2 |
3 |
--------------------------------------------------------------------------------
/Day61-65/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/.gitkeep
--------------------------------------------------------------------------------
/Day61-65/05.项目实战.md:
--------------------------------------------------------------------------------
1 | ## 项目实战
2 |
3 |
--------------------------------------------------------------------------------
/Day61-65/code/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/.gitkeep
--------------------------------------------------------------------------------
/Day61-65/code/hello-tornado/requirements.txt:
--------------------------------------------------------------------------------
1 | aiohttp==3.5.4
2 | aiomysql==0.0.20
3 | asn1crypto==0.24.0
4 | async-timeout==3.0.1
5 | attrs==19.1.0
6 | certifi==2019.3.9
7 | cffi==1.12.2
8 | chardet==3.0.4
9 | cryptography==2.6.1
10 | idna==2.8
11 | multidict==4.5.2
12 | pycparser==2.19
13 | PyMySQL==0.9.2
14 | requests==2.21.0
15 | six==1.12.0
16 | tornado==5.1.1
17 | urllib3==1.24.1
18 | yarl==1.3.0
19 |
--------------------------------------------------------------------------------
/Day61-65/code/hello-tornado/templates/news.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 新闻列表
6 |
7 |
8 | 新闻列表
9 |
10 | {% for news in newslist %}
11 |
12 |

13 |
{{news['title']}}
14 |
15 | {% end %}
16 |
17 |
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/app-icon72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/app-icon72x72@2x.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/admin-chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-chrome.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/admin-firefox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-firefox.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/admin-ie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-ie.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/admin-opera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-opera.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/admin-safari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/admin-safari.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/adminPage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/adminPage.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/blogPage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/blogPage.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/landing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/landing.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/landingPage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/landingPage.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/loginPage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/loginPage.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/examples/sidebarPage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/examples/sidebarPage.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/favicon.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/i/startup-640x1096.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/i/startup-640x1096.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/a5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/a5.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/k.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/k.jpg
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/logo.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/logoa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/logoa.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/logob.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/logob.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user01.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user02.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user03.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user04.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user05.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user06.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/assets/img/user07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/assets/img/user07.png
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/requirements.txt:
--------------------------------------------------------------------------------
1 | aiomysql==0.0.20
2 | asn1crypto==0.24.0
3 | cffi==1.12.2
4 | cryptography==2.6.1
5 | pycparser==2.19
6 | PyMySQL==0.9.2
7 | six==1.12.0
8 | tornado==5.1.1
9 |
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/service/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/service/__init__.py
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/service/handlers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/code/project_of_tornado/service/handlers/__init__.py
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/service/handlers/handlers_for_nav.py:
--------------------------------------------------------------------------------
1 | import tornado
2 |
3 |
4 | class IndexHandler(tornado.web.RequestHandler):
5 |
6 | async def get(self, *args, **kwargs):
7 | return await self.render('index.html')
8 |
--------------------------------------------------------------------------------
/Day61-65/code/project_of_tornado/service/handlers/handlers_for_tables.py:
--------------------------------------------------------------------------------
1 | import json
2 |
3 | import aiomysql
4 | import tornado
5 |
6 |
7 | class EmpHandler(tornado.web.RequestHandler):
8 |
9 | async def get(self, *args, **kwargs):
10 | async with self.settings['mysql'].cursor(aiomysql.DictCursor) as cursor:
11 | await cursor.execute("select eno as no, ename as name, job, sal, intro from tb_emp")
12 | emps = list(await cursor.fetchall())
13 | self.finish(json.dumps(emps))
14 |
--------------------------------------------------------------------------------
/Day61-65/res/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/.gitkeep
--------------------------------------------------------------------------------
/Day61-65/res/run-hello-world-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/run-hello-world-app.png
--------------------------------------------------------------------------------
/Day61-65/res/websocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/websocket.png
--------------------------------------------------------------------------------
/Day61-65/res/ws_wss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day61-65/res/ws_wss.png
--------------------------------------------------------------------------------
/Day66-75/06.表单交互和验证码处理.md:
--------------------------------------------------------------------------------
1 | ## 表单交互和验证码处理
2 |
3 | ### 提交表单
4 |
5 | #### 手动提交
6 |
7 |
8 |
9 | #### 自动提交
10 |
11 |
12 |
13 | ### 验证码处理
14 |
15 | #### 加载验证码
16 |
17 |
18 |
19 | #### 光学字符识别
20 |
21 | 光学字符识别(OCR)是从图像中抽取文本的工具,可以应用于公安、电信、物流、金融等诸多行业,例如识别车牌,身份证扫描识别、名片信息提取等。在爬虫开发中,如果遭遇了有文字验证码的表单,就可以利用OCR来进行验证码处理。Tesseract-OCR引擎最初是由惠普公司开发的光学字符识别系统,目前发布在Github上,由Google赞助开发。
22 |
23 | 
24 |
25 | #### 改善OCR
26 |
27 |
28 |
29 | #### 处理更复杂的验证码
30 |
31 | 很多网站为了分别出提供验证码的是人还是机器使用了更为复杂的验证码,例如拼图验证码、点触验证码、九宫格验证码等。关于这方面的知识,在崔庆才同学的[《Python 3网络爬虫开发实战》](http://www.ituring.com.cn/book/2003)有较为详细的讲解,有兴趣的可以购买阅读。
32 |
33 | #### 验证码处理服务
34 |
35 |
--------------------------------------------------------------------------------
/Day66-75/10.爬虫项目实战.md:
--------------------------------------------------------------------------------
1 | ## 爬虫项目实战
2 |
--------------------------------------------------------------------------------
/Day66-75/code/asyncio01.py:
--------------------------------------------------------------------------------
1 | import asyncio
2 |
3 |
4 | @asyncio.coroutine
5 | def countdown(name, num):
6 | while num > 0:
7 | print(f'Countdown[{name}]: {num}')
8 | yield from asyncio.sleep(1)
9 | num -= 1
10 |
11 |
12 | def main():
13 | loop = asyncio.get_event_loop()
14 | tasks = [
15 | countdown("A", 10), countdown("B", 5),
16 | ]
17 | loop.run_until_complete(asyncio.wait(tasks))
18 | loop.close()
19 |
20 |
21 | if __name__ == '__main__':
22 | main()
23 |
--------------------------------------------------------------------------------
/Day66-75/code/coroutine01.py:
--------------------------------------------------------------------------------
1 | from time import sleep
2 |
3 |
4 | def countdown_gen(n, consumer):
5 | consumer.send(None)
6 | while n > 0:
7 | consumer.send(n)
8 | n -= 1
9 | consumer.send(None)
10 |
11 |
12 | def countdown_con():
13 | while True:
14 | n = yield
15 | if n:
16 | print(f'Countdown {n}')
17 | sleep(1)
18 | else:
19 | print('Countdown Over!')
20 |
21 |
22 | def main():
23 | countdown_gen(5, countdown_con())
24 |
25 |
26 | if __name__ == '__main__':
27 | main()
28 |
--------------------------------------------------------------------------------
/Day66-75/code/douban/douban/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/douban/douban/__init__.py
--------------------------------------------------------------------------------
/Day66-75/code/douban/douban/items.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Define here the models for your scraped items
4 | #
5 | # See documentation in:
6 | # https://doc.scrapy.org/en/latest/topics/items.html
7 |
8 | import scrapy
9 |
10 |
11 | class MovieItem(scrapy.Item):
12 |
13 | title = scrapy.Field()
14 | score = scrapy.Field()
15 | motto = scrapy.Field()
16 |
--------------------------------------------------------------------------------
/Day66-75/code/douban/douban/pipelines.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Define your item pipelines here
4 | #
5 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting
6 | # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html
7 |
8 |
9 | class DoubanPipeline(object):
10 |
11 | # def __init__(self, server, port):
12 | # pass
13 |
14 | # @classmethod
15 | # def from_crawler(cls, crawler):
16 | # return cls(crawler.settings['MONGO_SERVER'],
17 | # crawler.settings['MONGO_PORT'])
18 |
19 | def process_item(self, item, spider):
20 | return item
21 |
--------------------------------------------------------------------------------
/Day66-75/code/douban/douban/spiders/__init__.py:
--------------------------------------------------------------------------------
1 | # This package will contain the spiders of your Scrapy project
2 | #
3 | # Please refer to the documentation for information on how to create and manage
4 | # your spiders.
5 |
--------------------------------------------------------------------------------
/Day66-75/code/douban/result.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/douban/result.json
--------------------------------------------------------------------------------
/Day66-75/code/douban/scrapy.cfg:
--------------------------------------------------------------------------------
1 | # Automatically created by: scrapy startproject
2 | #
3 | # For more information about the [deploy] section see:
4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html
5 |
6 | [settings]
7 | default = douban.settings
8 |
9 | [deploy]
10 | #url = http://localhost:6800/
11 | project = douban
12 |
--------------------------------------------------------------------------------
/Day66-75/code/example09.py:
--------------------------------------------------------------------------------
1 | import robobrowser
2 |
3 |
4 | def main():
5 | b = robobrowser.RoboBrowser(parser='lxml')
6 | b.open('https://github.com/login')
7 | f = b.get_form(action='/session')
8 | f['login'].value = 'jackfrued@gmail.com'
9 | f['password'].value = 'yourpassword'
10 | b.submit_form(f)
11 | for a_tag in b.select('a[href]'):
12 | print(a_tag.attrs['href'])
13 |
14 |
15 | if __name__ == '__main__':
16 | main()
17 |
--------------------------------------------------------------------------------
/Day66-75/code/example10.py:
--------------------------------------------------------------------------------
1 | import robobrowser
2 |
3 |
4 | def main():
5 | b = robobrowser.RoboBrowser(parser='lxml')
6 | b.open('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang')
7 | for img_tag in b.select('img[src]'):
8 | print(img_tag.attrs['src'])
9 |
10 |
11 | if __name__ == '__main__':
12 | main()
13 |
--------------------------------------------------------------------------------
/Day66-75/code/example10a.py:
--------------------------------------------------------------------------------
1 | import requests
2 |
3 | from bs4 import BeautifulSoup
4 |
5 |
6 | def main():
7 | resp = requests.get('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang')
8 | soup = BeautifulSoup(resp.text, 'lxml')
9 | for img_tag in soup.select('img[src]'):
10 | print(img_tag.attrs['src'])
11 |
12 |
13 | if __name__ == '__main__':
14 | main()
15 |
--------------------------------------------------------------------------------
/Day66-75/code/example11.py:
--------------------------------------------------------------------------------
1 | from bs4 import BeautifulSoup
2 | from selenium import webdriver
3 | from selenium.webdriver.common.keys import Keys
4 |
5 |
6 | def main():
7 | driver = webdriver.Chrome()
8 | driver.get('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang')
9 | elem = driver.find_element_by_css_selector('input[placeholder=输入关键词搜索]')
10 | elem.send_keys('运动')
11 | elem.send_keys(Keys.ENTER)
12 | soup = BeautifulSoup(driver.page_source, 'lxml')
13 | for img_tag in soup.body.select('img[src]'):
14 | print(img_tag.attrs['src'])
15 |
16 |
17 | if __name__ == '__main__':
18 | main()
19 |
--------------------------------------------------------------------------------
/Day66-75/code/example11a.py:
--------------------------------------------------------------------------------
1 | from bs4 import BeautifulSoup
2 | from selenium import webdriver
3 | from selenium.webdriver.common.keys import Keys
4 |
5 |
6 | def main():
7 | driver = webdriver.Chrome()
8 | driver.get('https://v.taobao.com/v/content/live?catetype=704&from=taonvlang')
9 | soup = BeautifulSoup(driver.page_source, 'lxml')
10 | for img_tag in soup.body.select('img[src]'):
11 | print(img_tag.attrs['src'])
12 |
13 |
14 | if __name__ == '__main__':
15 | main()
16 |
--------------------------------------------------------------------------------
/Day66-75/code/generator01.py:
--------------------------------------------------------------------------------
1 | def fib():
2 | a, b = 0, 1
3 | while True:
4 | a, b = b, a + b
5 | yield a
6 |
7 |
8 | def even(gen):
9 | for val in gen:
10 | if val % 2 == 0:
11 | yield val
12 |
13 |
14 | def main():
15 | gen = even(fib())
16 | for _ in range(10):
17 | print(next(gen))
18 |
19 |
20 | if __name__ == '__main__':
21 | main()
22 |
--------------------------------------------------------------------------------
/Day66-75/code/generator02.py:
--------------------------------------------------------------------------------
1 | from time import sleep
2 |
3 |
4 | def countdown(n):
5 | while n > 0:
6 | yield n
7 | n -= 1
8 |
9 |
10 | def main():
11 | for num in countdown(5):
12 | print(f'Countdown: {num}')
13 | sleep(1)
14 | print('Countdown Over!')
15 |
16 |
17 | if __name__ == '__main__':
18 | main()
19 |
--------------------------------------------------------------------------------
/Day66-75/code/guido.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/guido.jpg
--------------------------------------------------------------------------------
/Day66-75/code/image360/image360/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/image360/image360/__init__.py
--------------------------------------------------------------------------------
/Day66-75/code/image360/image360/items.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Define here the models for your scraped items
4 | #
5 | # See documentation in:
6 | # https://doc.scrapy.org/en/latest/topics/items.html
7 |
8 | import scrapy
9 |
10 |
11 | class GoodsItem(scrapy.Item):
12 |
13 | price = scrapy.Field()
14 | deal = scrapy.Field()
15 | title = scrapy.Field()
16 |
17 |
18 | class BeautyItem(scrapy.Item):
19 |
20 | title = scrapy.Field()
21 | tag = scrapy.Field()
22 | width = scrapy.Field()
23 | height = scrapy.Field()
24 | url = scrapy.Field()
25 |
--------------------------------------------------------------------------------
/Day66-75/code/image360/image360/spiders/__init__.py:
--------------------------------------------------------------------------------
1 | # This package will contain the spiders of your Scrapy project
2 | #
3 | # Please refer to the documentation for information on how to create and manage
4 | # your spiders.
5 |
--------------------------------------------------------------------------------
/Day66-75/code/image360/scrapy.cfg:
--------------------------------------------------------------------------------
1 | # Automatically created by: scrapy startproject
2 | #
3 | # For more information about the [deploy] section see:
4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html
5 |
6 | [settings]
7 | default = image360.settings
8 |
9 | [deploy]
10 | #url = http://localhost:6800/
11 | project = image360
12 |
--------------------------------------------------------------------------------
/Day66-75/code/myutils.py:
--------------------------------------------------------------------------------
1 | from functools import wraps
2 |
3 |
4 | def coroutine(fn):
5 |
6 | @wraps(fn)
7 | def wrapper(*args, **kwargs):
8 | gen = fn(*args, **kwargs)
9 | next(gen)
10 | return gen
11 |
12 | return wrapper
13 |
--------------------------------------------------------------------------------
/Day66-75/code/tesseract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/code/tesseract.png
--------------------------------------------------------------------------------
/Day66-75/res/api-image360.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/api-image360.png
--------------------------------------------------------------------------------
/Day66-75/res/baidu-search-taobao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/baidu-search-taobao.png
--------------------------------------------------------------------------------
/Day66-75/res/chrome-developer-tools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/chrome-developer-tools.png
--------------------------------------------------------------------------------
/Day66-75/res/crawler-workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/crawler-workflow.png
--------------------------------------------------------------------------------
/Day66-75/res/douban-xpath.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/douban-xpath.png
--------------------------------------------------------------------------------
/Day66-75/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/http-request.png
--------------------------------------------------------------------------------
/Day66-75/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/http-response.png
--------------------------------------------------------------------------------
/Day66-75/res/image360-website.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/image360-website.png
--------------------------------------------------------------------------------
/Day66-75/res/postman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/postman.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/redis-save.png
--------------------------------------------------------------------------------
/Day66-75/res/scrapy-architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/scrapy-architecture.png
--------------------------------------------------------------------------------
/Day66-75/res/tesseract.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day66-75/res/tesseract.gif
--------------------------------------------------------------------------------
/Day76-90/02.Pandas的应用.md:
--------------------------------------------------------------------------------
1 | ## Pandas的应用
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/03.NumPy和SciPy的应用.md:
--------------------------------------------------------------------------------
1 | ## NumPy和SciPy的应用
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/05.k最近邻分类.md:
--------------------------------------------------------------------------------
1 | ## k最近邻分类
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/06.决策树.md:
--------------------------------------------------------------------------------
1 | ## 决策树
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/07.贝叶斯分类.md:
--------------------------------------------------------------------------------
1 | ## 贝叶斯分类
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/08.支持向量机.md:
--------------------------------------------------------------------------------
1 | ## 支持向量机
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/09.K-均值聚类.md:
--------------------------------------------------------------------------------
1 | ## K-均值聚类
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/10.回归分析.md:
--------------------------------------------------------------------------------
1 | ## 回归分析
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/11.大数据分析入门.md:
--------------------------------------------------------------------------------
1 | ## 大数据分析入门
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/12.大数据分析进阶.md:
--------------------------------------------------------------------------------
1 | ## 大数据分析进阶
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/13.Tensorflow入门.md:
--------------------------------------------------------------------------------
1 | ## Tensorflow入门
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/14.Tensorflow实战.md:
--------------------------------------------------------------------------------
1 | ## Tensorflow实战
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/15.推荐系统实战.md:
--------------------------------------------------------------------------------
1 | ## 推荐系统实战
2 |
3 |
--------------------------------------------------------------------------------
/Day76-90/res/201205230001213115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/201205230001213115.png
--------------------------------------------------------------------------------
/Day76-90/res/201205230001238839.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/201205230001238839.png
--------------------------------------------------------------------------------
/Day76-90/res/20120523000125800.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/20120523000125800.png
--------------------------------------------------------------------------------
/Day76-90/res/result-in-jupyter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result-in-jupyter.png
--------------------------------------------------------------------------------
/Day76-90/res/result1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result1.png
--------------------------------------------------------------------------------
/Day76-90/res/result2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result2.png
--------------------------------------------------------------------------------
/Day76-90/res/result3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result3.png
--------------------------------------------------------------------------------
/Day76-90/res/result4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result4.png
--------------------------------------------------------------------------------
/Day76-90/res/result5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result5.png
--------------------------------------------------------------------------------
/Day76-90/res/result6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result6.png
--------------------------------------------------------------------------------
/Day76-90/res/result7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result7.png
--------------------------------------------------------------------------------
/Day76-90/res/result8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result8.png
--------------------------------------------------------------------------------
/Day76-90/res/result9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day76-90/res/result9.png
--------------------------------------------------------------------------------
/Day91-100/res/01.django_single_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/01.django_single_server.png
--------------------------------------------------------------------------------
/Day91-100/res/02.django_dedicated_db_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/02.django_dedicated_db_server.png
--------------------------------------------------------------------------------
/Day91-100/res/03.django_dedicated_static_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/03.django_dedicated_static_server.png
--------------------------------------------------------------------------------
/Day91-100/res/04.django_load_balance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/04.django_load_balance.png
--------------------------------------------------------------------------------
/Day91-100/res/05.django_massive_cluster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/05.django_massive_cluster.png
--------------------------------------------------------------------------------
/Day91-100/res/Celery_RabitMQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/Celery_RabitMQ.png
--------------------------------------------------------------------------------
/Day91-100/res/Producer-Broker-Consumer-Arrangement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/Producer-Broker-Consumer-Arrangement.png
--------------------------------------------------------------------------------
/Day91-100/res/algorithm_complexity_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/algorithm_complexity_1.png
--------------------------------------------------------------------------------
/Day91-100/res/algorithm_complexity_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/algorithm_complexity_2.png
--------------------------------------------------------------------------------
/Day91-100/res/alipay_web_developer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/alipay_web_developer.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-certificate.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-dnslist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-dnslist.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-domain.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-keeprecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-keeprecord.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-resolve-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/aliyun-resolve-settings.png
--------------------------------------------------------------------------------
/Day91-100/res/builtin-middlewares.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/builtin-middlewares.png
--------------------------------------------------------------------------------
/Day91-100/res/celery_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/celery_architecture.png
--------------------------------------------------------------------------------
/Day91-100/res/click-jacking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/click-jacking.png
--------------------------------------------------------------------------------
/Day91-100/res/company_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/company_architecture.png
--------------------------------------------------------------------------------
/Day91-100/res/django-middleware.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/django-middleware.png
--------------------------------------------------------------------------------
/Day91-100/res/django-mtv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/django-mtv.png
--------------------------------------------------------------------------------
/Day91-100/res/django_request_response_cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/django_request_response_cycle.png
--------------------------------------------------------------------------------
/Day91-100/res/docker_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/docker_logo.png
--------------------------------------------------------------------------------
/Day91-100/res/docker_vs_vm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/docker_vs_vm.png
--------------------------------------------------------------------------------
/Day91-100/res/er-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/er-graph.png
--------------------------------------------------------------------------------
/Day91-100/res/git_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/git_logo.png
--------------------------------------------------------------------------------
/Day91-100/res/git_repository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/git_repository.png
--------------------------------------------------------------------------------
/Day91-100/res/hadoop_ecosystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/hadoop_ecosystem.png
--------------------------------------------------------------------------------
/Day91-100/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/http-request.png
--------------------------------------------------------------------------------
/Day91-100/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/http-response.png
--------------------------------------------------------------------------------
/Day91-100/res/jenkins_new_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/jenkins_new_project.png
--------------------------------------------------------------------------------
/Day91-100/res/mvc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/mvc.png
--------------------------------------------------------------------------------
/Day91-100/res/oauth2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/oauth2.png
--------------------------------------------------------------------------------
/Day91-100/res/power-designer-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/power-designer-pdm.png
--------------------------------------------------------------------------------
/Day91-100/res/pylint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/pylint.png
--------------------------------------------------------------------------------
/Day91-100/res/python_jobs_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/python_jobs_chengdu.png
--------------------------------------------------------------------------------
/Day91-100/res/python_salary_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/python_salary_chengdu.png
--------------------------------------------------------------------------------
/Day91-100/res/rbac-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/rbac-basic.png
--------------------------------------------------------------------------------
/Day91-100/res/rbac-full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/rbac-full.png
--------------------------------------------------------------------------------
/Day91-100/res/redmine_new_issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/redmine_new_issue.png
--------------------------------------------------------------------------------
/Day91-100/res/requirements_by_xmind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/requirements_by_xmind.png
--------------------------------------------------------------------------------
/Day91-100/res/selenium_ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/selenium_ide.png
--------------------------------------------------------------------------------
/Day91-100/res/shopping-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/shopping-pdm.png
--------------------------------------------------------------------------------
/Day91-100/res/the-daily-scrum-in-the-sprint-cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/the-daily-scrum-in-the-sprint-cycle.png
--------------------------------------------------------------------------------
/Day91-100/res/uml-class-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/uml-class-diagram.png
--------------------------------------------------------------------------------
/Day91-100/res/uml-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/uml-graph.png
--------------------------------------------------------------------------------
/Day91-100/res/uml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/uml.png
--------------------------------------------------------------------------------
/Day91-100/res/web-application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/Day91-100/res/web-application.png
--------------------------------------------------------------------------------
/res/01.django_single_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/01.django_single_server.png
--------------------------------------------------------------------------------
/res/02.django_dedicated_db_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/02.django_dedicated_db_server.png
--------------------------------------------------------------------------------
/res/03.django_dedicated_static_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/03.django_dedicated_static_server.png
--------------------------------------------------------------------------------
/res/04.django_load_balance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/04.django_load_balance.png
--------------------------------------------------------------------------------
/res/05.django_massive_cluster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/05.django_massive_cluster.png
--------------------------------------------------------------------------------
/res/Celery_RabitMQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/Celery_RabitMQ.png
--------------------------------------------------------------------------------
/res/Producer-Broker-Consumer-Arrangement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/Producer-Broker-Consumer-Arrangement.png
--------------------------------------------------------------------------------
/res/abstraction-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/abstraction-view.png
--------------------------------------------------------------------------------
/res/algorithm_complexity_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/algorithm_complexity_1.png
--------------------------------------------------------------------------------
/res/algorithm_complexity_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/algorithm_complexity_2.png
--------------------------------------------------------------------------------
/res/alipay_web_developer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/alipay_web_developer.png
--------------------------------------------------------------------------------
/res/aliyun-certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-certificate.png
--------------------------------------------------------------------------------
/res/aliyun-dnslist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-dnslist.png
--------------------------------------------------------------------------------
/res/aliyun-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-domain.png
--------------------------------------------------------------------------------
/res/aliyun-keeprecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-keeprecord.png
--------------------------------------------------------------------------------
/res/aliyun-resolve-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/aliyun-resolve-settings.png
--------------------------------------------------------------------------------
/res/app_folder_arch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/app_folder_arch.png
--------------------------------------------------------------------------------
/res/builtin-middlewares.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/builtin-middlewares.png
--------------------------------------------------------------------------------
/res/celery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/celery.png
--------------------------------------------------------------------------------
/res/celery_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/celery_architecture.png
--------------------------------------------------------------------------------
/res/class-and-object.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/class-and-object.png
--------------------------------------------------------------------------------
/res/click-jacking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/click-jacking.png
--------------------------------------------------------------------------------
/res/company_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/company_architecture.png
--------------------------------------------------------------------------------
/res/concurrency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/concurrency.png
--------------------------------------------------------------------------------
/res/deployment_pipelines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/deployment_pipelines.png
--------------------------------------------------------------------------------
/res/django-middleware.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/django-middleware.png
--------------------------------------------------------------------------------
/res/django-mtv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/django-mtv.png
--------------------------------------------------------------------------------
/res/django_request_response_cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/django_request_response_cycle.png
--------------------------------------------------------------------------------
/res/docker_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/docker_logo.png
--------------------------------------------------------------------------------
/res/docker_vs_vm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/docker_vs_vm.png
--------------------------------------------------------------------------------
/res/encapsulation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/encapsulation.png
--------------------------------------------------------------------------------
/res/er-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/er-graph.png
--------------------------------------------------------------------------------
/res/git_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/git_logo.png
--------------------------------------------------------------------------------
/res/git_repository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/git_repository.png
--------------------------------------------------------------------------------
/res/gitignore_io.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/gitignore_io.png
--------------------------------------------------------------------------------
/res/greedy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/greedy.png
--------------------------------------------------------------------------------
/res/hadoop_ecosystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/hadoop_ecosystem.png
--------------------------------------------------------------------------------
/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/http-request.png
--------------------------------------------------------------------------------
/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/http-response.png
--------------------------------------------------------------------------------
/res/int-is-comparation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/int-is-comparation.png
--------------------------------------------------------------------------------
/res/jenkins_new_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/jenkins_new_project.png
--------------------------------------------------------------------------------
/res/modularity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/modularity.png
--------------------------------------------------------------------------------
/res/multi-inheritance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/multi-inheritance.png
--------------------------------------------------------------------------------
/res/mvc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/mvc.png
--------------------------------------------------------------------------------
/res/oauth2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/oauth2.png
--------------------------------------------------------------------------------
/res/object-roles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/object-roles.png
--------------------------------------------------------------------------------
/res/objects-collaborate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/objects-collaborate.png
--------------------------------------------------------------------------------
/res/objects-lifetime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/objects-lifetime.png
--------------------------------------------------------------------------------
/res/power-designer-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/power-designer-pdm.png
--------------------------------------------------------------------------------
/res/pycharm-activate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-activate.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-1.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-2.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-3.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-4.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-5.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-6.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-7.png
--------------------------------------------------------------------------------
/res/pycharm-comm-django-8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-comm-django-8.png
--------------------------------------------------------------------------------
/res/pycharm-create-launcher-script.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-create-launcher-script.png
--------------------------------------------------------------------------------
/res/pycharm-import-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-import-settings.png
--------------------------------------------------------------------------------
/res/pycharm-new-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-new-project.png
--------------------------------------------------------------------------------
/res/pycharm-plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-plugins.png
--------------------------------------------------------------------------------
/res/pycharm-prof-django-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-prof-django-2.png
--------------------------------------------------------------------------------
/res/pycharm-prof-django-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-prof-django-3.png
--------------------------------------------------------------------------------
/res/pycharm-set-ui-theme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-set-ui-theme.png
--------------------------------------------------------------------------------
/res/pycharm-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-welcome.png
--------------------------------------------------------------------------------
/res/pycharm-workspace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pycharm-workspace.png
--------------------------------------------------------------------------------
/res/pylint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/pylint.png
--------------------------------------------------------------------------------
/res/python-bj-salary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-bj-salary.png
--------------------------------------------------------------------------------
/res/python-built-in-functions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-built-in-functions.png
--------------------------------------------------------------------------------
/res/python-cd-salary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-cd-salary.png
--------------------------------------------------------------------------------
/res/python-job-all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-job-all.png
--------------------------------------------------------------------------------
/res/python-job-chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-job-chengdu.png
--------------------------------------------------------------------------------
/res/python-salary-beijing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-beijing.png
--------------------------------------------------------------------------------
/res/python-salary-chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-chengdu.png
--------------------------------------------------------------------------------
/res/python-salary-hangzhou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-hangzhou.png
--------------------------------------------------------------------------------
/res/python-salary-shanghai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-shanghai.png
--------------------------------------------------------------------------------
/res/python-salary-shenzhen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary-shenzhen.png
--------------------------------------------------------------------------------
/res/python-salary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-salary.png
--------------------------------------------------------------------------------
/res/python-str-join.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-str-join.png
--------------------------------------------------------------------------------
/res/python-top-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-top-10.png
--------------------------------------------------------------------------------
/res/python-tutor-visualize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-tutor-visualize.png
--------------------------------------------------------------------------------
/res/python-tutor-visualize2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python-tutor-visualize2.png
--------------------------------------------------------------------------------
/res/python_jobs_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python_jobs_chengdu.png
--------------------------------------------------------------------------------
/res/python_salary_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python_salary_chengdu.png
--------------------------------------------------------------------------------
/res/python_salary_guangzhou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/python_salary_guangzhou.png
--------------------------------------------------------------------------------
/res/rbac-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/rbac-basic.png
--------------------------------------------------------------------------------
/res/rbac-full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/rbac-full.png
--------------------------------------------------------------------------------
/res/redmine_new_issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/redmine_new_issue.png
--------------------------------------------------------------------------------
/res/requirements_by_xmind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/requirements_by_xmind.png
--------------------------------------------------------------------------------
/res/result-of-dis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/result-of-dis.png
--------------------------------------------------------------------------------
/res/selenium-ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/selenium-ide.png
--------------------------------------------------------------------------------
/res/selenium_ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/selenium_ide.png
--------------------------------------------------------------------------------
/res/shopping-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/shopping-pdm.png
--------------------------------------------------------------------------------
/res/the-daily-scrum-in-the-sprint-cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/the-daily-scrum-in-the-sprint-cycle.png
--------------------------------------------------------------------------------
/res/uml-class-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/uml-class-diagram.png
--------------------------------------------------------------------------------
/res/uml-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/uml-graph.png
--------------------------------------------------------------------------------
/res/uml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/uml.png
--------------------------------------------------------------------------------
/res/web-application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/web-application.png
--------------------------------------------------------------------------------
/res/web-queue-worker-physical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/web-queue-worker-physical.png
--------------------------------------------------------------------------------
/res/zen-of-python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jackh001/python100Day/ff4912b37d59e9eb644176cbbec1e7b35991fcc9/res/zen-of-python.png
--------------------------------------------------------------------------------