├── .gitattributes
├── .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
│ ├── .py
│ ├── 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
│ ├── .py
│ ├── 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
│ │ ├── test01.py
│ │ └── test02.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
├── res
│ ├── IMG_0358.PNG
│ ├── IMG_0360.png
│ ├── IMG_0361.png
│ ├── IMG_0362.png
│ ├── IMG_0363.png
│ ├── IMG_0364.png
│ ├── IMG_0365.png
│ ├── IMG_0366.png
│ └── redis-data-type.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
│ └── web-application.png
├── Day56-65
├── 01.Flask入门.md
├── 02.模板的使用.md
├── 03.表单的处理.md
├── 04.数据库操作.md
└── 05.项目结构.md
├── 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-aof.png
│ ├── redis-bind.png
│ ├── redis-database.png
│ ├── redis-port.png
│ ├── redis-rdb.png
│ ├── redis-replication.png
│ ├── redis-save.png
│ ├── redis-security.png
│ ├── redis-slow-log.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-create-launcher-script.png
├── pycharm-import-settings.png
├── pycharm-new-project.png
├── pycharm-plugins.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
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | venv
2 | .idea
3 | *.pyc
4 | __pycache__
5 |
6 |
--------------------------------------------------------------------------------
/Day01-15/Day01/code/hello.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 第一个Python程序 - hello, world!
4 | 向伟大的Dennis M. Ritchie先生致敬
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-02-26
9 |
10 | 请将该文件命名为hello.py并在终端中通过下面的命令运行它
11 | python hello.py
12 |
13 | """
14 |
15 | print('hello, world!')
16 | # print("你好,世界!")
17 | print('你好', '世界')
18 | print('hello', 'world', sep=', ', end='!')
19 | print('goodbye, world', end='!\n')
20 |
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day01/res/python-idle.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-ipython.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day01/res/python-ipython.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-jupyter-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day01/res/python-jupyter-1.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-jupyter-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day01/res/python-jupyter-2.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-pycharm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day01/res/python-pycharm.png
--------------------------------------------------------------------------------
/Day01-15/Day01/res/python-sublime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day01/res/python-sublime.png
--------------------------------------------------------------------------------
/Day01-15/Day02/code/centigrade.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 将华氏温度转换为摄氏温度
4 | F = 1.8C + 32
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-02-27
9 |
10 | """
11 |
12 | f = float(input('请输入华氏温度: '))
13 | c = (f - 32) / 1.8
14 | print('%.1f华氏度 = %.1f摄氏度' % (f, c))
15 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/circle.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入半径计算圆的周长和面积
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | import math
12 |
13 | radius = float(input('请输入圆的半径: '))
14 | perimeter = 2 * math.pi * radius
15 | area = math.pi * radius * radius
16 | print('周长: %.2f' % perimeter)
17 | print('面积: %.2f' % area)
18 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/leap.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入年份 如果是闰年输出True 否则输出False
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | year = int(input('请输入年份: '))
12 | # 如果代码太长写成一行不便于阅读 可以使用\或()折行
13 | is_leap = (year % 4 == 0 and year % 100 != 0 or
14 | year % 400 == 0)
15 | print(is_leap)
16 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/operator.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 运算符的使用
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | a = 5
12 | b = 10
13 | c = 3
14 | d = 4
15 | e = 5
16 | a += b
17 | a -= c
18 | a *= d
19 | a /= e
20 | print("a = ", a)
21 |
22 | flag1 = 3 > 2
23 | flag2 = 2 < 1
24 | flag3 = flag1 and flag2
25 | flag4 = flag1 or flag2
26 | flag5 = not flag1
27 | print("flag1 = ", flag1)
28 | print("flag2 = ", flag2)
29 | print("flag3 = ", flag3)
30 | print("flag4 = ", flag4)
31 | print("flag5 = ", flag5)
32 | print(flag1 is True)
33 | print(flag2 is not False)
34 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/string.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 字符串常用操作
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | str1 = 'hello, world!'
12 | print('字符串的长度是:', len(str1))
13 | print('单词首字母大写: ', str1.title())
14 | print('字符串变大写: ', str1.upper())
15 | # str1 = str1.upper()
16 | print('字符串是不是大写: ', str1.isupper())
17 | print('字符串是不是以hello开头: ', str1.startswith('hello'))
18 | print('字符串是不是以hello结尾: ', str1.endswith('hello'))
19 | print('字符串是不是以感叹号开头: ', str1.startswith('!'))
20 | print('字符串是不是一感叹号结尾: ', str1.endswith('!'))
21 | str2 = '- \u9a86\u660a'
22 | str3 = str1.title() + ' ' + str2.lower()
23 | print(str3)
24 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 使用变量保存数据并进行操作
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | a = 321
12 | b = 123
13 | print(a + b)
14 | print(a - b)
15 | print(a * b)
16 | print(a / b)
17 | print(a // b)
18 | print(a % b)
19 | print(a ** b)
20 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 将input函数输入的数据保存在变量中并进行操作
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | a = int(input('a = '))
12 | b = int(input('b = '))
13 | print(a + b)
14 | print(a - b)
15 | print(a * b)
16 | print(a / b)
17 | print(a // b)
18 | print(a % b)
19 | print(a ** b)
20 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 格式化输出
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | a = int(input('a = '))
12 | b = int(input('b = '))
13 | print('%d + %d = %d' % (a, b, a + b))
14 | print('%d - %d = %d' % (a, b, a - b))
15 | print('%d * %d = %d' % (a, b, a * b))
16 | print('%d / %d = %f' % (a, b, a / b))
17 | print('%d // %d = %d' % (a, b, a // b))
18 | print('%d %% %d = %d' % (a, b, a % b))
19 | print('%d ** %d = %d' % (a, b, a ** b))
20 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable4.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 检查变量的类型
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | a = 100
12 | b = 1000000000000000000
13 | c = 12.345
14 | d = 1 + 5j
15 | e = 'A'
16 | f = 'hello, world'
17 | g = True
18 | print(type(a))
19 | print(type(b))
20 | print(type(c))
21 | print(type(d))
22 | print(type(e))
23 | print(type(f))
24 | print(type(g))
25 |
--------------------------------------------------------------------------------
/Day01-15/Day02/code/variable5.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 类型转换
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-27
8 |
9 | """
10 |
11 | a = 100
12 | b = str(a)
13 | c = 12.345
14 | d = str(c)
15 | e = '123'
16 | f = int(e)
17 | g = '123.456'
18 | h = float(g)
19 | i = False
20 | j = str(i)
21 | k = 'hello'
22 | m = bool(k)
23 | print(a)
24 | print(type(a))
25 | print(b)
26 | print(type(b))
27 | print(c)
28 | print(type(c))
29 | print(d)
30 | print(type(d))
31 | print(e)
32 | print(type(e))
33 | print(f)
34 | print(type(f))
35 | print(g)
36 | print(type(g))
37 | print(h)
38 | print(type(h))
39 | print(i)
40 | print(type(i))
41 | print(j)
42 | print(type(j))
43 | print(k)
44 | print(type(k))
45 | print(m)
46 | print(type(m))
47 |
--------------------------------------------------------------------------------
/Day01-15/Day03/.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day03/.py
--------------------------------------------------------------------------------
/Day01-15/Day03/code/convert.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 英制单位英寸和公制单位厘米互换
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-28
8 |
9 | """
10 |
11 | value = float(input('请输入长度: '))
12 | unit = input('请输入单位: ')
13 | if unit == 'in' or unit == '英寸':
14 | print('%f英寸 = %f厘米' % (value, value * 2.54))
15 | elif unit == 'cm' or unit == '厘米':
16 | print('%f厘米 = %f英寸' % (value, value / 2.54))
17 | else:
18 | print('请输入有效的单位')
19 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/grade.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 百分制成绩转等级制成绩
4 | 90分以上 --> A
5 | 80分~89分 --> B
6 | 70分~79分 --> C
7 | 60分~69分 --> D
8 | 60分以下 --> E
9 |
10 | Version: 0.1
11 | Author: 骆昊
12 | Date: 2018-02-28
13 |
14 | """
15 |
16 | score = float(input('请输入成绩: '))
17 | if score >= 90:
18 | grade = 'A'
19 | elif score >= 80:
20 | grade = 'B'
21 | elif score >= 70:
22 | grade = 'C'
23 | elif score >= 60:
24 | grade = 'D'
25 | else:
26 | grade = 'E'
27 | print('对应的等级是:', grade)
28 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/piecewise.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 分段函数求值
4 | 3x - 5 (x > 1)
5 | f(x) = x + 2 (-1 <= x <= 1)
6 | 5x + 3 (x < -1)
7 |
8 | Version: 0.1
9 | Author: 骆昊
10 | Date: 2018-02-28
11 |
12 | """
13 |
14 | x = float(input('x = '))
15 | if x > 1:
16 | y = 3 * x - 5
17 | elif x >= -1:
18 | y = x + 2
19 | else:
20 | y = 5 * x + 3
21 | print('f(%.2f) = %.2f' % (x, y))
22 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/rolldice.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 掷骰子决定做什么事情
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-28
8 |
9 | """
10 |
11 | from random import randint
12 |
13 | face = randint(1, 6)
14 | if face == 1:
15 | result = '唱首歌'
16 | elif face == 2:
17 | result = '跳个舞'
18 | elif face == 3:
19 | result = '学狗叫'
20 | elif face == 4:
21 | result = '做俯卧撑'
22 | elif face == 5:
23 | result = '念绕口令'
24 | else:
25 | result = '讲冷笑话'
26 | print(result)
27 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/triangle.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 判断输入的边长能否构成三角形
4 | 如果能则计算出三角形的周长和面积
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-02-28
9 |
10 | """
11 |
12 | import math
13 |
14 | a = float(input('a = '))
15 | b = float(input('b = '))
16 | c = float(input('c = '))
17 | if a + b > c and a + c > b and b + c > a:
18 | print('周长: %f' % (a + b + c))
19 | p = (a + b + c) / 2
20 | area = math.sqrt(p * (p - a) * (p - b) * (p - c))
21 | print('面积: %f' % (area))
22 | else:
23 | print('不能构成三角形')
24 |
--------------------------------------------------------------------------------
/Day01-15/Day03/code/verify.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 用户身份验证
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-02-28
8 |
9 | """
10 |
11 | # import getpass
12 | # from getpass import getpass
13 | # from getpass import *
14 |
15 | username = input('请输入用户名: ')
16 | password = input('请输入口令: ')
17 | # 输入口令的时候终端中没有回显
18 | # password = getpass.getpass('请输入口令: ')
19 | if username == 'admin' and password == '123456':
20 | print('身份验证成功!')
21 | else:
22 | print('身份验证失败!')
23 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 用for循环实现1~100求和
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | sum = 0
12 | for x in range(1, 101):
13 | if x % 2 == 0:
14 | sum += x
15 | print(sum)
16 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 用for循环实现1~100之间的偶数求和
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | sum = 0
12 | for x in range(2, 101, 2):
13 | sum += x
14 | print(sum)
15 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入非负整数n计算n!
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | n = int(input('n = '))
12 | result = 1
13 | for x in range(1, n + 1):
14 | result *= x
15 | print('%d! = %d' % (n, result))
16 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for4.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入一个正整数判断它是不是素数
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | from math import sqrt
12 |
13 | num = int(input('请输入一个正整数: '))
14 | end = int(sqrt(num))
15 | is_prime = True
16 | for x in range(2, end + 1):
17 | if num % x == 0:
18 | is_prime = False
19 | break
20 | if is_prime and num != 1:
21 | print('%d是素数' % num)
22 | else:
23 | print('%d不是素数' % num)
24 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/for5.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入两个正整数计算最大公约数和最小公倍数
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | x = int(input('x = '))
12 | y = int(input('y = '))
13 | if x > y:
14 | (x, y) = (y, x)
15 | for factor in range(x, 0, -1):
16 | if x % factor == 0 and y % factor == 0:
17 | print('%d和%d的最大公约数是%d' % (x, y, factor))
18 | print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
19 | break
20 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/while1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 用while循环实现1~100求和
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | sum = 0
12 | num = 1
13 | while num <= 100:
14 | sum += num
15 | num += 1
16 | print(sum)
17 |
--------------------------------------------------------------------------------
/Day01-15/Day04/code/while2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 用while循环实现1~100之间的偶数求和
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-01
8 |
9 | """
10 |
11 | sum = 0
12 | num = 2
13 | while num <= 100:
14 | sum += num
15 | num += 2
16 | print(sum)
17 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/chicken.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 求解《百钱百鸡》问题
4 | 1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡
5 | 问公鸡 母鸡 小鸡各有多少只
6 |
7 | Version: 0.1
8 | Author: 骆昊
9 | Date: 2018-03-02
10 |
11 | """
12 |
13 | for x in range(0, 20):
14 | for y in range(0, 33):
15 | z = 100 - x - y
16 | if 5 * x + 3 * y + z / 3 == 100:
17 | print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z))
18 |
19 | # 要理解程序背后的算法 - 穷举法
20 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/fibonacci.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输出斐波那契数列的前20个数
4 | 1 1 2 3 5 8 13 21 ...
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-02
9 |
10 | """
11 |
12 | a = 0
13 | b = 1
14 | for _ in range(20):
15 | (a, b) = (b, a + b)
16 | print(a, end=' ')
17 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/guess.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 猜数字游戏
4 | 计算机出一个1~100之间的随机数由人来猜
5 | 计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
6 |
7 | Version: 0.1
8 | Author: 骆昊
9 | Date: 2018-03-02
10 |
11 | """
12 |
13 | import random
14 |
15 | answer = random.randint(1, 100)
16 | counter = 0
17 | while True:
18 | counter += 1
19 | number = int(input('请输入: '))
20 | if number < answer:
21 | print('大一点')
22 | elif number > answer:
23 | print('小一点')
24 | else:
25 | print('恭喜你猜对了!')
26 | break
27 | print('你总共猜了%d次' % counter)
28 | if counter > 7:
29 | print('你的智商余额明显不足')
30 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/lily.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 找出100~999之间的所有水仙花数
4 | 水仙花数是各位立方和等于这个数本身的数
5 | 如: 153 = 1**3 + 5**3 + 3**3
6 |
7 | Version: 0.1
8 | Author: 骆昊
9 | Date: 2018-03-02
10 |
11 | """
12 |
13 | for num in range(100, 1000):
14 | low = num % 10
15 | mid = num // 10 % 10
16 | high = num // 100
17 | if num == low ** 3 + mid ** 3 + high ** 3:
18 | print(num)
19 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/palindrome.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 判断输入的正整数是不是回文数
4 | 回文数是指将一个正整数从左往右排列和从右往左排列值一样的数
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-02
9 |
10 | """
11 |
12 | num = int(input('请输入一个正整数: '))
13 | temp = num
14 | num2 = 0
15 | while temp > 0:
16 | num2 *= 10
17 | num2 += temp % 10
18 | temp //= 10
19 | if num == num2:
20 | print('%d是回文数' % num)
21 | else:
22 | print('%d不是回文数' % num)
23 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/perfect.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 找出1~9999之间的所有完美数
4 | 完美数是除自身外其他所有因子的和正好等于这个数本身的数
5 | 例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
6 |
7 | Version: 0.1
8 | Author: 骆昊
9 | Date: 2018-03-02
10 |
11 | """
12 | import time
13 | import math
14 |
15 | start = time.clock()
16 | for num in range(1, 10000):
17 | sum = 0
18 | for factor in range(1, int(math.sqrt(num)) + 1):
19 | if num % factor == 0:
20 | sum += factor
21 | if factor > 1 and num / factor != factor:
22 | sum += num / factor
23 | if sum == num:
24 | print(num)
25 | end = time.clock()
26 | print("执行时间:", (end - start), "秒")
27 |
28 | # 通过比较上面两种不同的解决方案的执行时间 意识到优化程序的重要性
29 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/prime.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输出2~99之间的素数
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-02
8 |
9 | """
10 |
11 | import math
12 |
13 | for num in range(2, 100):
14 | is_prime = True
15 | for factor in range(2, int(math.sqrt(num)) + 1):
16 | if num % factor == 0:
17 | is_prime = False
18 | break
19 | if is_prime:
20 | print(num, end=' ')
21 |
--------------------------------------------------------------------------------
/Day01-15/Day05/code/table.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输出乘法口诀表(九九表)
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-02
8 |
9 | """
10 |
11 | for i in range(1, 10):
12 | for j in range(1, i + 1):
13 | print('%d*%d=%d' % (i, j, i * j), end='\t')
14 | print()
15 |
--------------------------------------------------------------------------------
/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 |
3 | 函数的定义和使用 - 计算组合数C(7,3)
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-05
8 |
9 | """
10 |
11 |
12 | # 将求阶乘的功能封装成一个函数
13 | def factorial(n):
14 | result = 1
15 | for num in range(1, n + 1):
16 | result *= num
17 | return result
18 |
19 |
20 | print(factorial(7) // factorial(3) // factorial(4))
21 |
--------------------------------------------------------------------------------
/Day01-15/Day06/code/function2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 函数的定义和使用 - 求最大公约数和最小公倍数
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-05
8 |
9 | """
10 |
11 |
12 | def gcd(x, y):
13 | if x > y:
14 | (x, y) = (y, x)
15 | for factor in range(x, 1, -1):
16 | if x % factor == 0 and y % factor == 0:
17 | return factor
18 | return 1
19 |
20 |
21 | def lcm(x, y):
22 | return x * y // gcd(x, y)
23 |
24 |
25 | print(gcd(15, 27))
26 | print(lcm(15, 27))
27 |
--------------------------------------------------------------------------------
/Day01-15/Day06/code/function6.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 作用域问题
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-05
8 |
9 | """
10 |
11 |
12 | # 局部作用域
13 | def foo1():
14 | a = 5
15 |
16 |
17 | foo1()
18 | # print(a) # NameError
19 |
20 | # 全局作用域
21 | b = 10
22 |
23 |
24 | def foo2():
25 | print(b)
26 |
27 |
28 | foo2()
29 |
30 |
31 | def foo3():
32 | b = 100 # 局部变量
33 | print(b)
34 |
35 |
36 | foo3()
37 | print(b)
38 |
39 |
40 | def foo4():
41 | global b
42 | b = 200 # 全局变量
43 | print(b)
44 |
45 |
46 | foo4()
47 | print(b)
48 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/avgscore.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入学生考试成绩计算平均分
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 |
12 | def main():
13 | number = int(input('请输入学生人数: '))
14 | names = [None] * number
15 | scores = [None] * number
16 | for index in range(len(names)):
17 | names[index] = input('请输入第%d个学生的名字: ' % (index + 1))
18 | scores[index] = float(input('请输入第%d个学生的成绩: ' % (index + 1)))
19 | total = 0
20 | for index in range(len(names)):
21 | print('%s: %.1f分' % (names[index], scores[index]))
22 | total += scores[index]
23 | print('平均成绩是: %.1f分' % (total / number))
24 |
25 |
26 | if __name__ == '__main__':
27 | main()
28 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/dict1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 定义和使用字典
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 |
12 | def main():
13 | scores = {'骆昊': 95, '白元芳': 78, '狄仁杰': 82}
14 | print(scores['骆昊'])
15 | print(scores['狄仁杰'])
16 | for elem in scores:
17 | print('%s\t--->\t%d' % (elem, scores[elem]))
18 | scores['白元芳'] = 65
19 | scores['诸葛王朗'] = 71
20 | scores.update(冷面=67, 方启鹤=85)
21 | print(scores)
22 | if '武则天' in scores:
23 | print(scores['武则天'])
24 | print(scores.get('武则天'))
25 | print(scores.get('武则天', 60))
26 | print(scores.popitem())
27 | print(scores.popitem())
28 | print(scores.pop('骆昊', 100))
29 | scores.clear()
30 | print(scores)
31 |
32 |
33 | if __name__ == '__main__':
34 | main()
35 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/dict2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 字典的常用操作
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 |
12 | def main():
13 | stu = {'name': '骆昊', 'age': 38, 'gender': True}
14 | print(stu)
15 | print(stu.keys())
16 | print(stu.values())
17 | print(stu.items())
18 | for elem in stu.items():
19 | print(elem)
20 | print(elem[0], elem[1])
21 | if 'age' in stu:
22 | stu['age'] = 20
23 | print(stu)
24 | stu.setdefault('score', 60)
25 | print(stu)
26 | stu.setdefault('score', 100)
27 | print(stu)
28 | stu['score'] = 100
29 | print(stu)
30 |
31 |
32 | if __name__ == '__main__':
33 | main()
34 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/fibonacci.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 生成斐波拉切数列
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 |
12 | def main():
13 | f = [1 , 1]
14 | for i in range(2, 20):
15 | f += [f[i - 1] + f[i - 2]]
16 | # f.append(f[i - 1] + f[i - 2])
17 | for val in f:
18 | print(val, end=' ')
19 |
20 |
21 | if __name__ == '__main__':
22 | main()
23 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/findmax.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 找出列表中最大或最小的元素
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 |
12 | def main():
13 | fruits = ['grape', 'apple', 'strawberry', 'waxberry', 'pitaya']
14 | # 直接使用内置的max和min函数找出列表中最大和最小元素
15 | # print(max(fruits))
16 | # print(min(fruits))
17 | max_value = min_value = fruits[0]
18 | for index in range(1, len(fruits)):
19 | if fruits[index] > max_value:
20 | max_value = fruits[index]
21 | elif fruits[index] < min_value:
22 | min_value = fruits[index]
23 | print('Max:', max_value)
24 | print('Min:', min_value)
25 |
26 |
27 | if __name__ == '__main__':
28 | main()
29 | # 想一想如果最大的元素有两个要找出第二大的又该怎么做
30 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/list1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 定义和使用列表
4 | - 用下标访问元素
5 | - 添加元素
6 | - 删除元素
7 |
8 | Version: 0.1
9 | Author: 骆昊
10 | Date: 2018-03-06
11 |
12 | """
13 |
14 |
15 | def main():
16 | fruits = ['grape', '@pple', 'strawberry', 'waxberry']
17 | print(fruits)
18 | # 通过下标访问元素
19 | print(fruits[0])
20 | print(fruits[1])
21 | print(fruits[-1])
22 | print(fruits[-2])
23 | # print(fruits[-5]) # IndexError
24 | # print(fruits[4]) # IndexError
25 | fruits[1] = 'apple'
26 | print(fruits)
27 | # 添加元素
28 | fruits.append('pitaya')
29 | fruits.insert(0, 'banana')
30 | print(fruits)
31 | # 删除元素
32 | del fruits[1]
33 | fruits.pop()
34 | fruits.pop(0)
35 | fruits.remove('apple')
36 | print(fruits)
37 |
38 |
39 | if __name__ == '__main__':
40 | main()
41 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/list2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 列表常用操作
4 | - 列表连接
5 | - 获取长度
6 | - 遍历列表
7 | - 列表切片
8 | - 列表排序
9 | - 列表反转
10 | - 查找元素
11 |
12 | Version: 0.1
13 | Author: 骆昊
14 | Date: 2018-03-06
15 |
16 | """
17 |
18 |
19 | def main():
20 | fruits = ['grape', 'apple', 'strawberry', 'waxberry']
21 | fruits += ['pitaya', 'pear', 'mango']
22 | # 循环遍历列表元素
23 | for fruit in fruits:
24 | print(fruit.title(), end=' ')
25 | print()
26 | # 列表切片
27 | fruits2 = fruits[1:4]
28 | print(fruits2)
29 | # fruit3 = fruits # 没有复制列表只创建了新的引用
30 | fruits3 = fruits[:]
31 | print(fruits3)
32 | fruits4 = fruits[-3:-1]
33 | print(fruits4)
34 | fruits5 = fruits[::-1]
35 | print(fruits5)
36 |
37 |
38 | if __name__ == '__main__':
39 | main()
40 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/marquee.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输入学生考试成绩计算平均分
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 | import os
12 | import time
13 |
14 |
15 | def main():
16 | str = 'Welcome to 1000 Phone Chengdu Campus '
17 | while True:
18 | print(str)
19 | time.sleep(0.2)
20 | str = str[1:] + str[0:1]
21 | # for Windows use os.system('cls') instead
22 | os.system('clear')
23 |
24 |
25 | if __name__ == '__main__':
26 | main()
27 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/scoretable.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 学生考试成绩表
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-06
8 |
9 | """
10 |
11 |
12 | def main():
13 | names = ['关羽', '张飞', '赵云', '马超', '黄忠']
14 | subjs = ['语文', '数学', '英语']
15 | scores = [[0] * 3] * 5
16 | for row, name in enumerate(names):
17 | print('请输入%s的成绩' % name)
18 | for col, subj in enumerate(subjs):
19 | scores[row][col] = float(input(subj + ': '))
20 | print(scores)
21 | # for row, name in enumerate(names):
22 | # print('请输入%s的成绩' % name)
23 | # scores[row] = [None] * len(subjs)
24 | # for col, subj in enumerate(subjs):
25 | # score = float(input(subj + ': '))
26 | # scores[row][col] = score
27 | # print(scores)
28 |
29 | if __name__ == '__main__':
30 | main()
31 |
--------------------------------------------------------------------------------
/Day01-15/Day07/code/yanghui.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 输出10行的杨辉三角 - 二项式的n次方展开系数
4 | 1
5 | 1 1
6 | 1 2 1
7 | 1 3 3 1
8 | 1 4 6 4 1
9 | ... ... ...
10 |
11 |
12 | Version: 0.1
13 | Author: 骆昊
14 | Date: 2018-03-06
15 |
16 | """
17 |
18 |
19 | def main():
20 | num = int(input('Number of rows: '))
21 | yh = [[]] * num
22 | for row in range(len(yh)):
23 | yh[row] = [None] * (row + 1)
24 | for col in range(len(yh[row])):
25 | if col == 0 or col == row:
26 | yh[row][col] = 1
27 | else:
28 | yh[row][col] = yh[row - 1][col] + yh[row - 1][col - 1]
29 | print(yh[row][col], end='\t')
30 | print()
31 |
32 |
33 | if __name__ == '__main__':
34 | main()
35 |
--------------------------------------------------------------------------------
/Day01-15/Day07/res/fibonacci-blocks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day07/res/fibonacci-blocks.png
--------------------------------------------------------------------------------
/Day01-15/Day07/res/ipython-timeit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day07/res/ipython-timeit.png
--------------------------------------------------------------------------------
/Day01-15/Day07/res/python-set.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-08
8 |
9 | """
10 |
11 |
12 | def bar(self, name):
13 | self._name = name
14 |
15 |
16 | def foo(self, course_name):
17 | print('%s正在学习%s.' % (self._name, course_name))
18 |
19 |
20 | def main():
21 | Student = type('Student', (object,), dict(__init__=bar, study=foo))
22 | stu1 = Student('骆昊')
23 | stu1.study('Python程序设计')
24 |
25 |
26 | if __name__ == '__main__':
27 | main()
28 |
--------------------------------------------------------------------------------
/Day01-15/Day08/res/object-feature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day08/res/object-feature.png
--------------------------------------------------------------------------------
/Day01-15/Day08/res/oop-zhihu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day08/res/oop-zhihu.png
--------------------------------------------------------------------------------
/Day01-15/Day09/code/diamond.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 多重继承
4 | - 菱形继承(钻石继承)
5 | - C3算法(替代DFS的算法)
6 |
7 | Version: 0.1
8 | Author: 骆昊
9 | Date: 2018-03-12
10 |
11 | """
12 |
13 |
14 | class A(object):
15 |
16 | def foo(self):
17 | print('foo of A')
18 |
19 |
20 | class B(A):
21 | pass
22 |
23 |
24 | class C(A):
25 |
26 | def foo(self):
27 | print('foo fo C')
28 |
29 |
30 | class D(B, C):
31 | pass
32 |
33 |
34 | class E(D):
35 |
36 | def foo(self):
37 | print('foo in E')
38 | super().foo()
39 | super(B, self).foo()
40 | super(C, self).foo()
41 |
42 |
43 | if __name__ == '__main__':
44 | d = D()
45 | d.foo()
46 | e = E()
47 | e.foo()
48 |
--------------------------------------------------------------------------------
/Day01-15/Day09/code/pet.py:
--------------------------------------------------------------------------------
1 | from abc import ABCMeta, abstractmethod
2 |
3 |
4 | class Pet(object, metaclass=ABCMeta):
5 |
6 | def __init__(self, nickname):
7 | self._nickname = nickname
8 |
9 | @abstractmethod
10 | def make_voice(self):
11 | pass
12 |
13 |
14 | class Dog(Pet):
15 |
16 | def make_voice(self):
17 | print('%s: 汪汪汪...' % self._nickname)
18 |
19 |
20 | class Cat(Pet):
21 |
22 | def make_voice(self):
23 | print('%s: 喵...喵...' % self._nickname)
24 |
25 |
26 | def main():
27 | pets = [Dog('旺财'), Cat('凯蒂'), Dog('大黄')]
28 | for pet in pets:
29 | pet.make_voice()
30 |
31 |
32 | if __name__ == '__main__':
33 | main()
34 |
--------------------------------------------------------------------------------
/Day01-15/Day09/res/uml-components.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day09/res/uml-components.png
--------------------------------------------------------------------------------
/Day01-15/Day09/res/uml-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day10/res/ball-game.png
--------------------------------------------------------------------------------
/Day01-15/Day10/res/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day10/res/ball.png
--------------------------------------------------------------------------------
/Day01-15/Day11/.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day11/.py
--------------------------------------------------------------------------------
/Day01-15/Day11/code/csv1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 读取CSV文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | import csv
12 |
13 | filename = 'example.csv'
14 |
15 | try:
16 | with open(filename) as f:
17 | reader = csv.reader(f)
18 | data = list(reader)
19 | except FileNotFoundError:
20 | print('无法打开文件:', filename)
21 | else:
22 | for item in data:
23 | print('%-30s%-20s%-10s' % (item[0], item[1], item[2]))
24 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 异常机制 - 处理程序在运行时可能发生的状态
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | input_again = True
12 | while input_again:
13 | try:
14 | a = int(input('a = '))
15 | b = int(input('b = '))
16 | print('%d / %d = %f' % (a, b, a / b))
17 | input_again = False
18 | except ValueError:
19 | print('请输入整数')
20 | except ZeroDivisionError:
21 | print('除数不能为0')
22 | # 处理异常让代码不因异常而崩溃是一方面
23 | # 更重要的是可以通过对异常的处理让代码从异常中恢复过来
24 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 异常机制 - 处理程序在运行时可能发生的状态
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | input_again = True
12 | while input_again:
13 | try:
14 | a = int(input('a = '))
15 | b = int(input('b = '))
16 | print('%d / %d = %f' % (a, b, a / b))
17 | input_again = False
18 | except (ValueError, ZeroDivisionError) as msg:
19 | print(msg)
20 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 异常机制 - 处理程序在运行时可能发生的状态
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | import time
12 | import sys
13 |
14 | filename = input('请输入文件名: ')
15 | try:
16 | with open(filename) as f:
17 | lines = f.readlines()
18 | except FileNotFoundError as msg:
19 | print('无法打开文件:', filename)
20 | print(msg)
21 | except UnicodeDecodeError as msg:
22 | print('非文本文件无法解码')
23 | sys.exit()
24 | else:
25 | for line in lines:
26 | print(line.rstrip())
27 | time.sleep(0.5)
28 | finally:
29 | # 此处最适合做善后工作
30 | print('不管发生什么我都会执行')
31 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/ex4.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 引发异常和异常栈
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 |
12 | def f1():
13 | raise AssertionError('发生异常')
14 |
15 |
16 | def f2():
17 | f1()
18 |
19 |
20 | def f3():
21 | f2()
22 |
23 |
24 | f3()
25 |
--------------------------------------------------------------------------------
/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 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | import time
12 |
13 |
14 | def main():
15 | # 一次性读取整个文件内容
16 | with open('致橡树.txt', 'r', encoding='utf-8') as f:
17 | print(f.read())
18 |
19 | # 通过for-in循环逐行读取
20 | with open('致橡树.txt', mode='r') as f:
21 | for line in f:
22 | print(line, end='')
23 | time.sleep(0.5)
24 | print()
25 |
26 | # 读取文件按行读取到列表中
27 | with open('致橡树.txt') as f:
28 | lines = f.readlines()
29 | print(lines)
30 |
31 |
32 | if __name__ == '__main__':
33 | main()
34 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 读取圆周率文件判断其中是否包含自己的生日
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | birth = input('请输入你的生日: ')
12 | with open('pi_million_digits.txt') as f:
13 | lines = f.readlines()
14 | pi_string = ''
15 | for line in lines:
16 | pi_string += line.strip()
17 | if birth in pi_string:
18 | print('Bingo!!!')
19 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 写文本文件
4 | 将100以内的素数写入到文件中
5 |
6 | Version: 0.1
7 | Author: 骆昊
8 | Date: 2018-03-13
9 |
10 | """
11 |
12 | from math import sqrt
13 |
14 |
15 | def is_prime(n):
16 | for factor in range(2, int(sqrt(n)) + 1):
17 | if n % factor == 0:
18 | return False
19 | return True
20 |
21 |
22 | # 试一试有什么不一样
23 | # with open('prime.txt', 'a') as f:
24 | with open('prime.txt', 'w') as f:
25 | for num in range(2, 100):
26 | if is_prime(num):
27 | f.write(str(num) + '\n')
28 | print('写入完成!')
29 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/file4.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 读写二进制文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | import base64
12 |
13 | with open('mm.jpg', 'rb') as f:
14 | data = f.read()
15 | # print(type(data))
16 | # print(data)
17 | print('字节数:', len(data))
18 | # 将图片处理成BASE-64编码
19 | print(base64.b64encode(data))
20 |
21 | with open('girl.jpg', 'wb') as f:
22 | f.write(data)
23 | print('写入完成!')
24 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/json2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 写入JSON文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-13
8 |
9 | """
10 |
11 | import json
12 |
13 | teacher_dict = {'name': '白元芳', 'age': 25, 'title': '讲师'}
14 | json_str = json.dumps(teacher_dict)
15 | print(json_str)
16 | print(type(json_str))
17 | fruits_list = ['apple', 'orange', 'strawberry', 'banana', 'pitaya']
18 | json_str = json.dumps(fruits_list)
19 | print(json_str)
20 | print(type(json_str))
21 |
--------------------------------------------------------------------------------
/Day01-15/Day11/code/mm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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 |
--------------------------------------------------------------------------------
/Day01-15/Day11/res/file-open-mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day11/res/file-open-mode.png
--------------------------------------------------------------------------------
/Day01-15/Day12/code/test3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 验证输入用户名和QQ号是否有效并给出对应的提示信息
4 |
5 | 要求:
6 | 用户名必须由字母、数字或下划线构成且长度在6~20个字符之间
7 | QQ号是5~12的数字且首位不能为0
8 |
9 | """
10 |
11 | import re
12 |
13 |
14 | def main():
15 | username = input('请输入用户名: ')
16 | qq = input('请输入QQ号: ')
17 | m1 = re.match(r'^[0-9a-zA-Z_]{6,20}$', username)
18 | if not m1:
19 | print('请输入有效的用户名.')
20 | m2 = re.match(r'^[1-9]\d{4,11}$', qq)
21 | if not m2:
22 | print('请输入有效的QQ号.')
23 | if m1 and m2:
24 | print('你输入的信息是有效的!')
25 |
26 |
27 | if __name__ == '__main__':
28 | main()
29 |
30 |
--------------------------------------------------------------------------------
/Day01-15/Day12/code/test5.py:
--------------------------------------------------------------------------------
1 | import re
2 |
3 |
4 | def main():
5 | sentence = '你丫是傻叉吗? 我操你大爷的. Fuck you.'
6 | purified = re.sub('[操肏艹草曹]|fuck|shit|傻[比屄逼叉缺吊屌]|煞笔',
7 | '*', sentence, flags=re.IGNORECASE)
8 | print(purified)
9 |
10 |
11 | if __name__ == '__main__':
12 | main()
13 |
--------------------------------------------------------------------------------
/Day01-15/Day12/res/tel-start-number.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day12/res/tel-start-number.png
--------------------------------------------------------------------------------
/Day01-15/Day13/code/asyncio1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 异步I/O操作 - asyncio模块
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-21
8 |
9 | """
10 |
11 | import asyncio
12 | import threading
13 | # import time
14 |
15 |
16 | @asyncio.coroutine
17 | def hello():
18 | print('%s: hello, world!' % threading.current_thread())
19 | # 休眠不会阻塞主线程因为使用了异步I/O操作
20 | # 注意有yield from才会等待休眠操作执行完成
21 | yield from asyncio.sleep(2)
22 | # asyncio.sleep(1)
23 | # time.sleep(1)
24 | print('%s: goodbye, world!' % threading.current_thread())
25 |
26 |
27 | loop = asyncio.get_event_loop()
28 | tasks = [hello(), hello()]
29 | # 等待两个异步I/O操作执行结束
30 | loop.run_until_complete(asyncio.wait(tasks))
31 | print('game over!')
32 | loop.close()
33 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/asyncio2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 异步I/O操作 - async和await
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-21
8 |
9 | """
10 |
11 | import asyncio
12 | import threading
13 |
14 |
15 | # 通过async修饰的函数不再是普通函数而是一个协程
16 | # 注意async和await将在Python 3.7中作为关键字出现
17 | async def hello():
18 | print('%s: hello, world!' % threading.current_thread())
19 | await asyncio.sleep(2)
20 | print('%s: goodbye, world!' % threading.current_thread())
21 |
22 |
23 | loop = asyncio.get_event_loop()
24 | tasks = [hello(), hello()]
25 | # 等待两个异步I/O操作执行结束
26 | loop.run_until_complete(asyncio.wait(tasks))
27 | loop.close()
28 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/generator1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 生成器 - 生成器语法
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-21
8 |
9 | """
10 |
11 | seq = [x * x for x in range(10)]
12 | print(seq)
13 |
14 | gen = (x * x for x in range(10))
15 | print(gen)
16 | for x in gen:
17 | print(x)
18 |
19 | num = 10
20 | gen = (x ** y for x, y in zip(range(1, num), range(num - 1, 0, -1)))
21 | print(gen)
22 | n = 1
23 | while n < num:
24 | print(next(gen))
25 | n += 1
26 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/generator2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 生成器 - 使用yield关键字
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-21
8 |
9 | """
10 |
11 |
12 | def fib(num):
13 | n, a, b = 0, 0, 1
14 | while n < num:
15 | yield b
16 | a, b = b, a + b
17 | n += 1
18 |
19 |
20 | for x in fib(20):
21 | print(x)
22 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/multiprocess2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 实现进程间的通信
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-20
8 |
9 | """
10 |
11 | import multiprocessing
12 | import os
13 |
14 |
15 | def sub_task(queue):
16 | print('子进程进程号:', os.getpid())
17 | counter = 0
18 | while counter < 1000:
19 | queue.put('Pong')
20 | counter += 1
21 |
22 |
23 | if __name__ == '__main__':
24 | print('当前进程号:', os.getpid())
25 | queue = multiprocessing.Queue()
26 | p = multiprocessing.Process(target=sub_task, args=(queue,))
27 | p.start()
28 | counter = 0
29 | while counter < 1000:
30 | queue.put('Ping')
31 | counter += 1
32 | p.join()
33 | print('子任务已经完成.')
34 | for _ in range(2000):
35 | print(queue.get(), end='')
36 |
--------------------------------------------------------------------------------
/Day01-15/Day13/code/multiprocess3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 创建进程调用其他程序
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-20
8 |
9 | """
10 |
11 | import subprocess
12 | import sys
13 |
14 | def main():
15 | # 通过sys.argv获取命令行参数
16 | if len(sys.argv) > 1:
17 | # 第一个命令行参数是程序本身所以从第二个开始取
18 | for index in range(1, len(sys.argv)):
19 | try:
20 | # 通过subprocess模块的call函数启动子进程
21 | status = subprocess.call(sys.argv[index])
22 | except FileNotFoundError:
23 | print('不能执行%s命令' % sys.argv[index])
24 | else:
25 | print('请使用命令行参数指定要执行的进程')
26 |
27 |
28 | if __name__ == '__main__':
29 | main()
30 |
--------------------------------------------------------------------------------
/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 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-20
8 |
9 | """
10 |
11 | from random import randint
12 | from time import time, sleep
13 |
14 |
15 | def download_task(filename):
16 | print('开始下载%s...' % filename)
17 | time_to_download = randint(5, 10)
18 | sleep(time_to_download)
19 | print('下载完成! 耗费了%d秒' % time_to_download)
20 |
21 |
22 | def main():
23 | start = time()
24 | download_task('Python从入门到住院.pdf')
25 | download_task('Peking Hot.avi')
26 | end = time()
27 | print('总共耗费了%.2f秒.' % (end - start))
28 |
29 |
30 | if __name__ == '__main__':
31 | main()
32 |
--------------------------------------------------------------------------------
/Day01-15/Day13/res/macos-monitor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day13/res/macos-monitor.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/guido.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/code/guido.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 套接字 - 基于TCP协议创建时间服务器
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-22
8 |
9 | """
10 |
11 | from socket import *
12 | from time import *
13 |
14 | server = socket(AF_INET, SOCK_STREAM)
15 | server.bind(('localhost', 6789))
16 | server.listen()
17 | print('服务器已经启动正在监听客户端连接.')
18 | while True:
19 | client, addr = server.accept()
20 | print('客户端%s:%d连接成功.' % (addr[0], addr[1]))
21 | currtime = localtime(time())
22 | timestr = strftime('%Y-%m-%d %H:%M:%S', currtime)
23 | client.send(timestr.encode('utf-8'))
24 | client.close()
25 | server.close()
26 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 套接字 - 基于TCP协议创建时间客户端
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-22
8 |
9 | """
10 |
11 | from socket import *
12 |
13 | client = socket(AF_INET, SOCK_STREAM)
14 | client.connect(('localhost', 6789))
15 | while True:
16 | data = client.recv(1024)
17 | if not data:
18 | break
19 | print(data.decode('utf-8'))
20 | client.close()
21 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket3.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 套接字 - 基于UDP协议Echo服务器
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-22
8 |
9 | """
10 |
11 | from socket import *
12 | from time import *
13 |
14 | server = socket(AF_INET, SOCK_DGRAM)
15 | server.bind(('localhost', 6789))
16 | while True:
17 | data, addr = server.recvfrom(1024)
18 | server.sendto(data, addr)
19 | server.close()
20 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket4.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 套接字 - 基于UDP协议创建Echo客户端
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-22
8 |
9 | """
10 |
11 | from socket import *
12 |
13 | client = socket(AF_INET, SOCK_DGRAM)
14 | while True:
15 | data_str = input('请输入: ')
16 | client.sendto(data_str.encode('utf-8'), ('localhost', 6789))
17 | data, addr = client.recvfrom(1024)
18 | data_str = data.decode('utf-8')
19 | print('服务器回应:', data_str)
20 | if data_str == 'bye':
21 | break
22 | client.close()
23 |
--------------------------------------------------------------------------------
/Day01-15/Day14-A/code/socket5.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 使用socketserver模块创建时间服务器
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-22
8 |
9 | """
10 |
11 | from socketserver import TCPServer, StreamRequestHandler
12 | from time import *
13 |
14 |
15 | class EchoRequestHandler(StreamRequestHandler):
16 |
17 | def handle(self):
18 | currtime = localtime(time())
19 | timestr = strftime('%Y-%m-%d %H:%M:%S', currtime)
20 | self.wfile.write(timestr.encode('utf-8'))
21 |
22 |
23 | server = TCPServer(('localhost', 6789), EchoRequestHandler)
24 | server.serve_forever()
25 |
--------------------------------------------------------------------------------
/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/TCP-IP-model.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/after-browser.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/after-browser.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/arpanet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/arpanet.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/before-browser.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/before-browser.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/browers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/browers.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/browser-market-place.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/browser-market-place.jpeg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/how-data-is-processed.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/how-data-is-processed.jpg
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/osi_rm.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/osi_rm.gif
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/osimodel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/osimodel.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/tcpipprotocols.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/tcpipprotocols.png
--------------------------------------------------------------------------------
/Day01-15/Day14-A/res/telnet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day14-A/res/telnet.png
--------------------------------------------------------------------------------
/Day01-15/Day15/code/excel2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 读取Excel文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-26
8 |
9 | """
10 |
11 | from openpyxl import load_workbook
12 | from openpyxl import Workbook
13 |
14 | workbook = load_workbook('./res/学生明细表.xlsx')
15 | print(workbook.sheetnames)
16 | sheet = workbook[workbook.sheetnames[0]]
17 | print(sheet.title)
18 | for row in range(2, 7):
19 | for col in range(65, 70):
20 | cell_index = chr(col) + str(row)
21 | print(sheet[cell_index].value, end='\t')
22 | print()
23 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/pdf1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 创建PDF文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-26
8 |
9 | """
10 |
11 | import PyPDF2
12 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/pdf2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 读取PDF文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-26
8 |
9 | """
10 |
11 | from PyPDF2 import PdfFileReader
12 |
13 | with open('./res/Python课程大纲.pdf', 'rb') as f:
14 | reader = PdfFileReader(f, strict=False)
15 | print(reader.numPages)
16 | if reader.isEncrypted:
17 | reader.decrypt('')
18 | current_page = reader.getPage(5)
19 | print(current_page)
20 | print(current_page.extractText())
21 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/pillow1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 使用pillow操作图像
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-26
8 |
9 | """
10 |
11 | from PIL import Image
12 |
13 | img = Image.open('./res/guido.jpg')
14 | print(img.size)
15 | print(img.format)
16 | print(img.format_description)
17 | img.save('./res/guido.png')
18 |
19 | img2 = Image.open('./res/guido.png')
20 | img3 = img2.crop((335, 435, 430, 615))
21 | for x in range(4):
22 | for y in range(5):
23 | img2.paste(img3, (95 * y , 180 * x))
24 | img2.resize((img.size[0] // 2, img.size[1] // 2))
25 | img2.rotate(90)
26 | img2.save('./res/guido2.png')
27 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/Python课程大纲.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day15/code/res/Python课程大纲.pdf
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/guido.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day15/code/res/guido.jpg
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/学生明细表.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day15/code/res/学生明细表.xlsx
--------------------------------------------------------------------------------
/Day01-15/Day15/code/res/用函数还是用复杂的表达式.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day01-15/Day15/code/res/用函数还是用复杂的表达式.docx
--------------------------------------------------------------------------------
/Day01-15/Day15/code/word1.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 创建Word文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-26
8 |
9 | """
10 |
11 |
--------------------------------------------------------------------------------
/Day01-15/Day15/code/word2.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | 读取Word文件
4 |
5 | Version: 0.1
6 | Author: 骆昊
7 | Date: 2018-03-26
8 |
9 | """
10 |
11 | from docx import Document
12 |
13 | doc = Document('./res/用函数还是用复杂的表达式.docx')
14 | print(len(doc.paragraphs))
15 | print(doc.paragraphs[0].text)
16 | # print(doc.paragraphs[1].runs[0].text)
17 |
18 | content = []
19 | for para in doc.paragraphs:
20 | content.append(para.text)
21 | print(''.join(content))
22 |
--------------------------------------------------------------------------------
/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/code/example20.py:
--------------------------------------------------------------------------------
1 | """
2 | 线程间通信(共享数据)非常简单因为可以共享同一个进程的内存
3 | 进程间通信(共享数据)比较麻烦因为操作系统会保护分配给进程的内存
4 | 要实现多进程间的通信通常可以用系统管道、套接字、三方服务来实现
5 | multiprocessing.Queue
6 | 守护线程 - daemon thread
7 | 守护进程 - firewalld / httpd / mysqld
8 | 在系统停机的时候不保留的进程 - 不会因为进程还没有执行结束而阻碍系统停止
9 | """
10 | from threading import Thread
11 | from time import sleep
12 |
13 |
14 | def output(content):
15 | while True:
16 | print(content, end='')
17 |
18 |
19 | def main():
20 | Thread(target=output, args=('Ping', ), daemon=True).start()
21 | Thread(target=output, args=('Pong', ), daemon=True).start()
22 | sleep(5)
23 | print('bye!')
24 |
25 |
26 | if __name__ == '__main__':
27 | main()
28 |
--------------------------------------------------------------------------------
/Day16-20/res/algorithm_complexity_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day16-20/res/algorithm_complexity_1.png
--------------------------------------------------------------------------------
/Day16-20/res/algorithm_complexity_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day16-20/res/algorithm_complexity_2.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/audio/test-audio.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/audio/test-audio.mp3
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/audio/test-audio.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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_css_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CSS - 内部和外部样式表
6 |
7 |
8 |
9 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | 静夜思 - 李白
26 | 床前明月光
27 |
28 |
29 |
--------------------------------------------------------------------------------
/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/fonts/chunkfive.ttf
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/fonts/quicksand.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/fonts/quicksand.ttf
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/a1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/a1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/a2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/a2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/a3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/a3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/add.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/add.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/backdrop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/backdrop.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/bird.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/bird.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/bok-choi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/bok-choi.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/button-sprite.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/button-sprite.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/buttons.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/buttons.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/chocolate-islands.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/chocolate-islands.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/clavinet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/clavinet.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/dark-wood.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/dark-wood.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/dots.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/dots.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/email.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/header.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/header.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/header.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/icon-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/icon-plus.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/icon.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/icons.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/icons.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/keys.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/keys.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/lemon-posset.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/lemon-posset.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/logo-1.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/logo-2.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo-3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/logo-3.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/logo.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/magnolia-large.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/magnolia-large.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/magnolia-medium.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/magnolia-medium.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/magnolia-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/magnolia-small.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/otters.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/otters.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/pattern.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/pattern.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/picture-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/picture-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/picture-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/picture-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/picture-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/picture-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/print-01.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/print-02.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/print-03.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/print-04.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/print-05.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/print-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/print-06.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/puppy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/puppy.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/python-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/python-logo.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/quokka.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/quokka.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/rhodes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/rhodes.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/roasted-brussel-sprouts.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/roasted-brussel-sprouts.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/shadow.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/slide-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/slide-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/slide-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/slide-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/slide-4.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/star.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/subscribe.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/subscribe.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/teriyaki.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/teriyaki.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/thumb-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/thumb-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/thumb-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/thumb-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/thumb-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/thumb-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/tim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/tim.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/title.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/title.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/tulip.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/tulip.gif
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/twitter.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/web.png
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/wurlitzer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/images/wurlitzer.jpg
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/images/zucchini-cake.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/video/puppy.flv
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/video/puppy.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/new/web1901/video/puppy.mp4
--------------------------------------------------------------------------------
/Day21-30/code/new/web1901/video/puppy.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/a1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/a2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/a2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/a3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/a3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/picture-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/picture-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/picture-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/picture-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/picture-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/picture-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/slide-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/slide-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/slide-3.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/slide-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/slide-4.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/thumb-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/thumb-1.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/thumb-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/code/old/javascript/img/thumb-2.jpg
--------------------------------------------------------------------------------
/Day21-30/code/old/javascript/img/thumb-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/docs/Bulma- Free, open source, & modern CSS framework based on Flexbox.pdf
--------------------------------------------------------------------------------
/Day21-30/docs/Why Vue.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/docs/Why Vue.mp4
--------------------------------------------------------------------------------
/Day21-30/docs/Why you should use Bulma.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/docs/Why you should use Bulma.mp4
--------------------------------------------------------------------------------
/Day21-30/res/baidu_echarts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/baidu_echarts.png
--------------------------------------------------------------------------------
/Day21-30/res/bootstrap-layoutit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/bootstrap-layoutit.png
--------------------------------------------------------------------------------
/Day21-30/res/browser-joke-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/browser-joke-1.png
--------------------------------------------------------------------------------
/Day21-30/res/browser-joke-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/browser-joke-2.png
--------------------------------------------------------------------------------
/Day21-30/res/browser-joke-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/browser-joke-3.png
--------------------------------------------------------------------------------
/Day21-30/res/dom-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/dom-page.png
--------------------------------------------------------------------------------
/Day21-30/res/dom-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/dom-tree.png
--------------------------------------------------------------------------------
/Day21-30/res/字体样式.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/字体样式.png
--------------------------------------------------------------------------------
/Day21-30/res/字符实体.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/字符实体.png
--------------------------------------------------------------------------------
/Day21-30/res/客户端对字体文件的支持.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/客户端对字体文件的支持.png
--------------------------------------------------------------------------------
/Day21-30/res/尺寸单位.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/尺寸单位.png
--------------------------------------------------------------------------------
/Day21-30/res/属性选择器.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/属性选择器.png
--------------------------------------------------------------------------------
/Day21-30/res/常用选择器.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/常用选择器.png
--------------------------------------------------------------------------------
/Day21-30/res/开始标签.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/开始标签.png
--------------------------------------------------------------------------------
/Day21-30/res/标签属性.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/标签属性.png
--------------------------------------------------------------------------------
/Day21-30/res/样式属性.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/样式属性.png
--------------------------------------------------------------------------------
/Day21-30/res/盒子模型.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/盒子模型.png
--------------------------------------------------------------------------------
/Day21-30/res/相对路径.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/相对路径.png
--------------------------------------------------------------------------------
/Day21-30/res/经典布局-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/经典布局-1.png
--------------------------------------------------------------------------------
/Day21-30/res/经典布局-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/经典布局-2.png
--------------------------------------------------------------------------------
/Day21-30/res/结束标签.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/结束标签.png
--------------------------------------------------------------------------------
/Day21-30/res/网站地图.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/网站地图.png
--------------------------------------------------------------------------------
/Day21-30/res/衬线字体+非衬线字体+等宽字体.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day21-30/res/衬线字体+非衬线字体+等宽字体.png
--------------------------------------------------------------------------------
/Day21-30/res/选择器语法.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/Ken-Thompson.png
--------------------------------------------------------------------------------
/Day31-35/res/andrew-tanenbaum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/andrew-tanenbaum.png
--------------------------------------------------------------------------------
/Day31-35/res/dennis-ritchie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/dennis-ritchie.png
--------------------------------------------------------------------------------
/Day31-35/res/file-mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/file-mode.png
--------------------------------------------------------------------------------
/Day31-35/res/history-of-os.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/history-of-os.png
--------------------------------------------------------------------------------
/Day31-35/res/history-of-unix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/history-of-unix.png
--------------------------------------------------------------------------------
/Day31-35/res/ibm-col80-punched-card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/ibm-col80-punched-card.png
--------------------------------------------------------------------------------
/Day31-35/res/ken-and-dennis-pdp-11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/ken-and-dennis-pdp-11.png
--------------------------------------------------------------------------------
/Day31-35/res/linus-torvalds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/linus-torvalds.png
--------------------------------------------------------------------------------
/Day31-35/res/linux-network-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/linux-network-config.png
--------------------------------------------------------------------------------
/Day31-35/res/pdp-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/pdp-7.png
--------------------------------------------------------------------------------
/Day31-35/res/vim-diff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/vim-diff.png
--------------------------------------------------------------------------------
/Day31-35/res/vim-macro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/vim-macro.png
--------------------------------------------------------------------------------
/Day31-35/res/vim-multi-window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day31-35/res/vim-multi-window.png
--------------------------------------------------------------------------------
/Day36-40/NoSQL入门.md:
--------------------------------------------------------------------------------
1 | ## NoSQL入门
2 |
3 | ### NoSQL概述
4 |
5 |
6 |
7 | ### 主流NoSQL数据库
8 |
9 |
10 |
11 | ### Redis概述
12 |
13 |
14 |
15 | ### MongoDB概述
16 |
17 |
18 |
--------------------------------------------------------------------------------
/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/code/contact/test01.py:
--------------------------------------------------------------------------------
1 | def main():
2 | list1 = ['orange', 'grape', 'banana', 'waxberry', 'pitaya']
3 | for index, val in enumerate(list1):
4 | print('%d: %s' % (index, val))
5 |
6 |
7 | if __name__ == '__main__':
8 | main()
9 |
--------------------------------------------------------------------------------
/Day36-40/code/shop_create_sql.sql:
--------------------------------------------------------------------------------
1 | drop database if exists Shop;
2 | create database Shop default charset utf8;
3 | use Shop;
4 | drop table if exists tb_goods;
5 | create table tb_goods
6 | (
7 | gid int not null auto_increment,
8 | gname varchar(50) not null,
9 | gprice decimal(10,2) not null,
10 | gimage varchar(255),
11 | primary key (gid)
12 | );
13 | insert into tb_goods values
14 | (default, '乐事(Lay’s)无限薯片', 8.2, 'images/lay.jpg'),
15 | (default, '旺旺 仙贝 加量装 540g', 18.5, 'images/wang.jpg'),
16 | (default, '多儿比(Dolbee)黄桃水果罐头', 6.8, 'images/dolbee.jpg'),
17 | (default, '王致和 精制料酒 500ml', 7.9, 'images/wine.jpg'),
18 | (default, '陈克明 面条 鸡蛋龙须挂面', 1.0, 'images/noodle.jpg'),
19 | (default, '鲁花 菜籽油 4L', 69.9, 'images/oil.jpg');
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0358.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0358.PNG
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0360.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0360.png
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0361.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0361.png
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0362.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0362.png
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0363.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0363.png
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0364.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0364.png
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0365.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0365.png
--------------------------------------------------------------------------------
/Day36-40/res/IMG_0366.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/IMG_0366.png
--------------------------------------------------------------------------------
/Day36-40/res/redis-data-type.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day36-40/res/redis-data-type.png
--------------------------------------------------------------------------------
/Day41-55/04.表单的应用.md:
--------------------------------------------------------------------------------
1 | ## Django 2实战-04:表单的应用
2 |
3 | 我们继续来完成上一章节中的项目,实现“用户注册”和“用户登录”的功能。Django框架中提供了对表单的封装,而且提供了多种不同的使用方式。
4 |
5 |
6 |
--------------------------------------------------------------------------------
/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/0002_auto_20180524_1420.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Generated by Django 1.11 on 2018-05-24 06:20
3 | from __future__ import unicode_literals
4 |
5 | from django.db import migrations
6 |
7 |
8 | class Migration(migrations.Migration):
9 |
10 | dependencies = [
11 | ('search', '0001_initial'),
12 | ]
13 |
14 | operations = [
15 | migrations.AlterModelOptions(
16 | name='carrecord',
17 | options={'ordering': ('-date',)},
18 | ),
19 | migrations.RenameField(
20 | model_name='carrecord',
21 | old_name='punlish',
22 | new_name='punish',
23 | ),
24 | ]
25 |
--------------------------------------------------------------------------------
/Day41-55/code/car/search/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/hellodjango/demo/__init__.py
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | from demo.models import Teacher, Subject, User
4 |
5 |
6 | class UserAdmin(admin.ModelAdmin):
7 | list_display = ('no', 'username', 'email', 'counter')
8 | ordering = ('no', )
9 |
10 |
11 | class SubjectAdmin(admin.ModelAdmin):
12 | list_display = ('no', 'name', 'intro')
13 | ordering = ('no', )
14 |
15 |
16 | class TeacherAdmin(admin.ModelAdmin):
17 | list_display = ('no', 'name', 'intro', 'motto', 'subject', 'manager')
18 | search_fields = ('name', 'intro')
19 | ordering = ('no', )
20 |
21 |
22 | admin.site.register(Subject, SubjectAdmin)
23 | admin.site.register(Teacher, TeacherAdmin)
24 | admin.site.register(User, UserAdmin)
25 |
26 |
--------------------------------------------------------------------------------
/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/0005_auto_20180706_1458.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.6 on 2018-07-06 06:58
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('demo', '0004_auto_20180705_1017'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterModelOptions(
14 | name='teacher',
15 | options={'ordering': ('no',), 'verbose_name': '讲师', 'verbose_name_plural': '讲师'},
16 | ),
17 | migrations.AddField(
18 | model_name='user',
19 | name='counter',
20 | field=models.IntegerField(default=3, verbose_name='票数'),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/demo/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/hellodjango/static/images/andrew.png
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/dennis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/hellodjango/static/images/ken.png
--------------------------------------------------------------------------------
/Day41-55/code/hellodjango/static/images/linus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop/static/images/dolbee.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/lay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop/static/images/lay.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/noodle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop/static/images/noodle.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/oil.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop/static/images/oil.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/wang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop/static/images/wang.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop/static/images/wine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop/static/images/wine.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/cart/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop_origin/static/images/dolbee.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/lay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop_origin/static/images/lay.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/noodle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop_origin/static/images/noodle.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/oil.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop_origin/static/images/oil.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/wang.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop_origin/static/images/wang.jpg
--------------------------------------------------------------------------------
/Day41-55/code/shop_origin/static/images/wine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/code/shop_origin/static/images/wine.jpg
--------------------------------------------------------------------------------
/Day41-55/res/Django-Flowchart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/Django-Flowchart.png
--------------------------------------------------------------------------------
/Day41-55/res/Django-MTV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/Django-MTV.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-login.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model-create.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-delete-and-update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model-delete-and-update.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-depts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model-depts.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-emps-modified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model-emps-modified.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-emps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model-emps.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model-read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model-read.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-model.png
--------------------------------------------------------------------------------
/Day41-55/res/admin-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/admin-welcome.png
--------------------------------------------------------------------------------
/Day41-55/res/django-index-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/django-index-1.png
--------------------------------------------------------------------------------
/Day41-55/res/django-index-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/django-index-2.png
--------------------------------------------------------------------------------
/Day41-55/res/er-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/er-graph.png
--------------------------------------------------------------------------------
/Day41-55/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/http-request.png
--------------------------------------------------------------------------------
/Day41-55/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/http-response.png
--------------------------------------------------------------------------------
/Day41-55/res/mvc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/mvc.png
--------------------------------------------------------------------------------
/Day41-55/res/runserver01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/runserver01.png
--------------------------------------------------------------------------------
/Day41-55/res/runserver02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/runserver02.png
--------------------------------------------------------------------------------
/Day41-55/res/runserver03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/runserver03.png
--------------------------------------------------------------------------------
/Day41-55/res/web-application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day41-55/res/web-application.png
--------------------------------------------------------------------------------
/Day56-65/01.Flask入门.md:
--------------------------------------------------------------------------------
1 | ## Flask入门
2 |
3 |
--------------------------------------------------------------------------------
/Day56-65/02.模板的使用.md:
--------------------------------------------------------------------------------
1 | ## 模板的使用
2 |
3 |
--------------------------------------------------------------------------------
/Day56-65/03.表单的处理.md:
--------------------------------------------------------------------------------
1 | ## 表单的处理
2 |
3 |
--------------------------------------------------------------------------------
/Day56-65/04.数据库操作.md:
--------------------------------------------------------------------------------
1 | ## 数据库操作
2 |
3 |
--------------------------------------------------------------------------------
/Day56-65/05.项目结构.md:
--------------------------------------------------------------------------------
1 | ## 项目结构
2 |
3 |
--------------------------------------------------------------------------------
/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/code/guido.jpg
--------------------------------------------------------------------------------
/Day66-75/code/image360/image360/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/code/tesseract.png
--------------------------------------------------------------------------------
/Day66-75/res/api-image360.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/api-image360.png
--------------------------------------------------------------------------------
/Day66-75/res/baidu-search-taobao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/baidu-search-taobao.png
--------------------------------------------------------------------------------
/Day66-75/res/chrome-developer-tools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/chrome-developer-tools.png
--------------------------------------------------------------------------------
/Day66-75/res/crawler-workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/crawler-workflow.png
--------------------------------------------------------------------------------
/Day66-75/res/douban-xpath.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/douban-xpath.png
--------------------------------------------------------------------------------
/Day66-75/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/http-request.png
--------------------------------------------------------------------------------
/Day66-75/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/http-response.png
--------------------------------------------------------------------------------
/Day66-75/res/image360-website.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/image360-website.png
--------------------------------------------------------------------------------
/Day66-75/res/postman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/postman.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-aof.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-aof.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-bind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-bind.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-database.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-port.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-port.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-rdb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-rdb.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-replication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-replication.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-save.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-security.png
--------------------------------------------------------------------------------
/Day66-75/res/redis-slow-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/redis-slow-log.png
--------------------------------------------------------------------------------
/Day66-75/res/scrapy-architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day66-75/res/scrapy-architecture.png
--------------------------------------------------------------------------------
/Day66-75/res/tesseract.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/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/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/201205230001213115.png
--------------------------------------------------------------------------------
/Day76-90/res/201205230001238839.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/201205230001238839.png
--------------------------------------------------------------------------------
/Day76-90/res/20120523000125800.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/20120523000125800.png
--------------------------------------------------------------------------------
/Day76-90/res/result-in-jupyter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result-in-jupyter.png
--------------------------------------------------------------------------------
/Day76-90/res/result1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result1.png
--------------------------------------------------------------------------------
/Day76-90/res/result2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result2.png
--------------------------------------------------------------------------------
/Day76-90/res/result3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result3.png
--------------------------------------------------------------------------------
/Day76-90/res/result4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result4.png
--------------------------------------------------------------------------------
/Day76-90/res/result5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result5.png
--------------------------------------------------------------------------------
/Day76-90/res/result6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result6.png
--------------------------------------------------------------------------------
/Day76-90/res/result7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result7.png
--------------------------------------------------------------------------------
/Day76-90/res/result8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result8.png
--------------------------------------------------------------------------------
/Day76-90/res/result9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day76-90/res/result9.png
--------------------------------------------------------------------------------
/Day91-100/res/01.django_single_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/01.django_single_server.png
--------------------------------------------------------------------------------
/Day91-100/res/02.django_dedicated_db_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/02.django_dedicated_db_server.png
--------------------------------------------------------------------------------
/Day91-100/res/03.django_dedicated_static_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/03.django_dedicated_static_server.png
--------------------------------------------------------------------------------
/Day91-100/res/04.django_load_balance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/04.django_load_balance.png
--------------------------------------------------------------------------------
/Day91-100/res/05.django_massive_cluster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/05.django_massive_cluster.png
--------------------------------------------------------------------------------
/Day91-100/res/Celery_RabitMQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/Celery_RabitMQ.png
--------------------------------------------------------------------------------
/Day91-100/res/Producer-Broker-Consumer-Arrangement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/Producer-Broker-Consumer-Arrangement.png
--------------------------------------------------------------------------------
/Day91-100/res/algorithm_complexity_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/algorithm_complexity_1.png
--------------------------------------------------------------------------------
/Day91-100/res/algorithm_complexity_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/algorithm_complexity_2.png
--------------------------------------------------------------------------------
/Day91-100/res/alipay_web_developer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/alipay_web_developer.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/aliyun-certificate.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-dnslist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/aliyun-dnslist.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/aliyun-domain.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-keeprecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/aliyun-keeprecord.png
--------------------------------------------------------------------------------
/Day91-100/res/aliyun-resolve-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/aliyun-resolve-settings.png
--------------------------------------------------------------------------------
/Day91-100/res/builtin-middlewares.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/builtin-middlewares.png
--------------------------------------------------------------------------------
/Day91-100/res/celery_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/celery_architecture.png
--------------------------------------------------------------------------------
/Day91-100/res/click-jacking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/click-jacking.png
--------------------------------------------------------------------------------
/Day91-100/res/company_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/company_architecture.png
--------------------------------------------------------------------------------
/Day91-100/res/django-middleware.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/django-middleware.png
--------------------------------------------------------------------------------
/Day91-100/res/django-mtv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/django-mtv.png
--------------------------------------------------------------------------------
/Day91-100/res/django_request_response_cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/django_request_response_cycle.png
--------------------------------------------------------------------------------
/Day91-100/res/docker_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/docker_logo.png
--------------------------------------------------------------------------------
/Day91-100/res/docker_vs_vm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/docker_vs_vm.png
--------------------------------------------------------------------------------
/Day91-100/res/er-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/er-graph.png
--------------------------------------------------------------------------------
/Day91-100/res/git_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/git_logo.png
--------------------------------------------------------------------------------
/Day91-100/res/git_repository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/git_repository.png
--------------------------------------------------------------------------------
/Day91-100/res/hadoop_ecosystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/hadoop_ecosystem.png
--------------------------------------------------------------------------------
/Day91-100/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/http-request.png
--------------------------------------------------------------------------------
/Day91-100/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/http-response.png
--------------------------------------------------------------------------------
/Day91-100/res/jenkins_new_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/jenkins_new_project.png
--------------------------------------------------------------------------------
/Day91-100/res/mvc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/mvc.png
--------------------------------------------------------------------------------
/Day91-100/res/oauth2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/oauth2.png
--------------------------------------------------------------------------------
/Day91-100/res/power-designer-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/power-designer-pdm.png
--------------------------------------------------------------------------------
/Day91-100/res/pylint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/pylint.png
--------------------------------------------------------------------------------
/Day91-100/res/python_jobs_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/python_jobs_chengdu.png
--------------------------------------------------------------------------------
/Day91-100/res/python_salary_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/python_salary_chengdu.png
--------------------------------------------------------------------------------
/Day91-100/res/rbac-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/rbac-basic.png
--------------------------------------------------------------------------------
/Day91-100/res/rbac-full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/rbac-full.png
--------------------------------------------------------------------------------
/Day91-100/res/redmine_new_issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/redmine_new_issue.png
--------------------------------------------------------------------------------
/Day91-100/res/requirements_by_xmind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/requirements_by_xmind.png
--------------------------------------------------------------------------------
/Day91-100/res/selenium_ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/selenium_ide.png
--------------------------------------------------------------------------------
/Day91-100/res/shopping-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/shopping-pdm.png
--------------------------------------------------------------------------------
/Day91-100/res/the-daily-scrum-in-the-sprint-cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/the-daily-scrum-in-the-sprint-cycle.png
--------------------------------------------------------------------------------
/Day91-100/res/uml-class-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/uml-class-diagram.png
--------------------------------------------------------------------------------
/Day91-100/res/uml-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/uml-graph.png
--------------------------------------------------------------------------------
/Day91-100/res/uml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/uml.png
--------------------------------------------------------------------------------
/Day91-100/res/web-application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/Day91-100/res/web-application.png
--------------------------------------------------------------------------------
/res/01.django_single_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/01.django_single_server.png
--------------------------------------------------------------------------------
/res/02.django_dedicated_db_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/02.django_dedicated_db_server.png
--------------------------------------------------------------------------------
/res/03.django_dedicated_static_server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/03.django_dedicated_static_server.png
--------------------------------------------------------------------------------
/res/04.django_load_balance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/04.django_load_balance.png
--------------------------------------------------------------------------------
/res/05.django_massive_cluster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/05.django_massive_cluster.png
--------------------------------------------------------------------------------
/res/Celery_RabitMQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/Celery_RabitMQ.png
--------------------------------------------------------------------------------
/res/Producer-Broker-Consumer-Arrangement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/Producer-Broker-Consumer-Arrangement.png
--------------------------------------------------------------------------------
/res/abstraction-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/abstraction-view.png
--------------------------------------------------------------------------------
/res/algorithm_complexity_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/algorithm_complexity_1.png
--------------------------------------------------------------------------------
/res/algorithm_complexity_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/algorithm_complexity_2.png
--------------------------------------------------------------------------------
/res/alipay_web_developer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/alipay_web_developer.png
--------------------------------------------------------------------------------
/res/aliyun-certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/aliyun-certificate.png
--------------------------------------------------------------------------------
/res/aliyun-dnslist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/aliyun-dnslist.png
--------------------------------------------------------------------------------
/res/aliyun-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/aliyun-domain.png
--------------------------------------------------------------------------------
/res/aliyun-keeprecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/aliyun-keeprecord.png
--------------------------------------------------------------------------------
/res/aliyun-resolve-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/aliyun-resolve-settings.png
--------------------------------------------------------------------------------
/res/app_folder_arch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/app_folder_arch.png
--------------------------------------------------------------------------------
/res/builtin-middlewares.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/builtin-middlewares.png
--------------------------------------------------------------------------------
/res/celery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/celery.png
--------------------------------------------------------------------------------
/res/celery_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/celery_architecture.png
--------------------------------------------------------------------------------
/res/class-and-object.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/class-and-object.png
--------------------------------------------------------------------------------
/res/click-jacking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/click-jacking.png
--------------------------------------------------------------------------------
/res/company_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/company_architecture.png
--------------------------------------------------------------------------------
/res/concurrency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/concurrency.png
--------------------------------------------------------------------------------
/res/deployment_pipelines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/deployment_pipelines.png
--------------------------------------------------------------------------------
/res/django-middleware.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/django-middleware.png
--------------------------------------------------------------------------------
/res/django-mtv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/django-mtv.png
--------------------------------------------------------------------------------
/res/django_request_response_cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/django_request_response_cycle.png
--------------------------------------------------------------------------------
/res/docker_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/docker_logo.png
--------------------------------------------------------------------------------
/res/docker_vs_vm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/docker_vs_vm.png
--------------------------------------------------------------------------------
/res/encapsulation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/encapsulation.png
--------------------------------------------------------------------------------
/res/er-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/er-graph.png
--------------------------------------------------------------------------------
/res/git_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/git_logo.png
--------------------------------------------------------------------------------
/res/git_repository.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/git_repository.png
--------------------------------------------------------------------------------
/res/gitignore_io.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/gitignore_io.png
--------------------------------------------------------------------------------
/res/greedy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/greedy.png
--------------------------------------------------------------------------------
/res/hadoop_ecosystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/hadoop_ecosystem.png
--------------------------------------------------------------------------------
/res/http-request.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/http-request.png
--------------------------------------------------------------------------------
/res/http-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/http-response.png
--------------------------------------------------------------------------------
/res/int-is-comparation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/int-is-comparation.png
--------------------------------------------------------------------------------
/res/jenkins_new_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/jenkins_new_project.png
--------------------------------------------------------------------------------
/res/modularity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/modularity.png
--------------------------------------------------------------------------------
/res/multi-inheritance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/multi-inheritance.png
--------------------------------------------------------------------------------
/res/mvc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/mvc.png
--------------------------------------------------------------------------------
/res/oauth2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/oauth2.png
--------------------------------------------------------------------------------
/res/object-roles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/object-roles.png
--------------------------------------------------------------------------------
/res/objects-collaborate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/objects-collaborate.png
--------------------------------------------------------------------------------
/res/objects-lifetime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/objects-lifetime.png
--------------------------------------------------------------------------------
/res/power-designer-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/power-designer-pdm.png
--------------------------------------------------------------------------------
/res/pycharm-activate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-activate.png
--------------------------------------------------------------------------------
/res/pycharm-create-launcher-script.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-create-launcher-script.png
--------------------------------------------------------------------------------
/res/pycharm-import-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-import-settings.png
--------------------------------------------------------------------------------
/res/pycharm-new-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-new-project.png
--------------------------------------------------------------------------------
/res/pycharm-plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-plugins.png
--------------------------------------------------------------------------------
/res/pycharm-set-ui-theme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-set-ui-theme.png
--------------------------------------------------------------------------------
/res/pycharm-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-welcome.png
--------------------------------------------------------------------------------
/res/pycharm-workspace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pycharm-workspace.png
--------------------------------------------------------------------------------
/res/pylint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/pylint.png
--------------------------------------------------------------------------------
/res/python-bj-salary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-bj-salary.png
--------------------------------------------------------------------------------
/res/python-built-in-functions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-built-in-functions.png
--------------------------------------------------------------------------------
/res/python-cd-salary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-cd-salary.png
--------------------------------------------------------------------------------
/res/python-job-all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-job-all.png
--------------------------------------------------------------------------------
/res/python-job-chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-job-chengdu.png
--------------------------------------------------------------------------------
/res/python-salary-beijing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-salary-beijing.png
--------------------------------------------------------------------------------
/res/python-salary-chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-salary-chengdu.png
--------------------------------------------------------------------------------
/res/python-salary-hangzhou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-salary-hangzhou.png
--------------------------------------------------------------------------------
/res/python-salary-shanghai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-salary-shanghai.png
--------------------------------------------------------------------------------
/res/python-salary-shenzhen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-salary-shenzhen.png
--------------------------------------------------------------------------------
/res/python-salary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-salary.png
--------------------------------------------------------------------------------
/res/python-str-join.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-str-join.png
--------------------------------------------------------------------------------
/res/python-top-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-top-10.png
--------------------------------------------------------------------------------
/res/python-tutor-visualize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-tutor-visualize.png
--------------------------------------------------------------------------------
/res/python-tutor-visualize2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python-tutor-visualize2.png
--------------------------------------------------------------------------------
/res/python_jobs_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python_jobs_chengdu.png
--------------------------------------------------------------------------------
/res/python_salary_chengdu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python_salary_chengdu.png
--------------------------------------------------------------------------------
/res/python_salary_guangzhou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/python_salary_guangzhou.png
--------------------------------------------------------------------------------
/res/rbac-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/rbac-basic.png
--------------------------------------------------------------------------------
/res/rbac-full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/rbac-full.png
--------------------------------------------------------------------------------
/res/redmine_new_issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/redmine_new_issue.png
--------------------------------------------------------------------------------
/res/requirements_by_xmind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/requirements_by_xmind.png
--------------------------------------------------------------------------------
/res/result-of-dis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/result-of-dis.png
--------------------------------------------------------------------------------
/res/selenium-ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/selenium-ide.png
--------------------------------------------------------------------------------
/res/selenium_ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/selenium_ide.png
--------------------------------------------------------------------------------
/res/shopping-pdm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/shopping-pdm.png
--------------------------------------------------------------------------------
/res/the-daily-scrum-in-the-sprint-cycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/the-daily-scrum-in-the-sprint-cycle.png
--------------------------------------------------------------------------------
/res/uml-class-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/uml-class-diagram.png
--------------------------------------------------------------------------------
/res/uml-graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/uml-graph.png
--------------------------------------------------------------------------------
/res/uml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/uml.png
--------------------------------------------------------------------------------
/res/web-application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/web-application.png
--------------------------------------------------------------------------------
/res/web-queue-worker-physical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/web-queue-worker-physical.png
--------------------------------------------------------------------------------
/res/zen-of-python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xinhai-talk/Python_100_Plan/a23d6963c73960cea7f01a0c54ad3235ad4dcc6a/res/zen-of-python.png
--------------------------------------------------------------------------------