├── GitTutorial.md ├── README.md ├── Tutorial1 ├── .ipynb_checkpoints │ ├── Tutorial-checkpoint.ipynb │ └── Tutorial1-checkpoint.ipynb ├── AppleStore ├── README.md ├── Tutorial1.ipynb ├── anaconda安装.docx ├── image │ ├── image-20191125130413239.png │ ├── image-20191125131057994.png │ ├── image-20191125131330539.png │ ├── image-20191125132145647.png │ ├── image-20191125134911729.png │ ├── image-20191125134958894.png │ ├── image-20191125135105444.png │ ├── image-20191125135211894.png │ ├── image-20191125135943170.png │ ├── image-20191125140052954.png │ ├── image-20191125141005030.png │ └── image-20191125141117759.png ├── mask3.png ├── mushrooms.csv ├── out.png ├── profile.html └── ted_main └── Tutorial2_flask ├── .gitignore ├── README.md ├── TreasureHunt ├── __init__.py ├── route.py └── treasureHunt.py ├── app.py ├── connectDB.py ├── coverage_report.PNG ├── setup.cfg ├── tests ├── __init__.py ├── conftest.py └── test_user.py └── 任务要求.docx /GitTutorial.md: -------------------------------------------------------------------------------- 1 | ### 分支 2 | 3 | > 使用场景举例: 4 | > 5 | > 测试性开发:当你不确定后面的修改是否会起到正面的效果时,可以新建一个分支来继续开发,以避免意外的发生 6 | > 7 | > 多人合作开发:每个人在各自创建分支开发自己部分的内容,避免改错对方的代码 8 | > 9 | > 开发多个互相没有关联的模块:如我院的分布式编程的作业的组织形式 10 | 11 | #### 查看当前分支 12 | 13 | 当前分支前会有一个*号标识 14 | 15 | ```sh 16 | git branch 17 | ``` 18 | 19 | #### 创建与切换分支 20 | 21 | 创建分支 22 | 23 | ```sh 24 | git branch 25 | ``` 26 | 27 | 切换分支 28 | 29 | ```sh 30 | git switch 31 | ``` 32 | 33 | 以上两句可以合并下面一句,即创建并切换分支 34 | 35 | ```sh 36 | git switch -c 37 | //或者 38 | git checkout -b 39 | ``` 40 | 41 | #### 合并分支 42 | 43 | 合并**指定分支**到**当前分支** 44 | 45 | ```sh 46 | git merge 47 | ``` 48 | 49 | #### 删除分支 50 | 51 | ```sh 52 | git branch -d 53 | ``` 54 | 55 | > 编者鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 基本介绍 2 | 3 | 本文主要讲述Python的入门级使用方法,使人能够快速使用Python投入实际应用之中 4 | 5 | ## 章节介绍 6 | 7 | - Tutorial 1:Python 数据分析入门——Pandas的使用 8 | - Tutorial 2:Python Web入门 9 | - Tutorial 3:待续... -------------------------------------------------------------------------------- /Tutorial1/AppleStore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/AppleStore -------------------------------------------------------------------------------- /Tutorial1/README.md: -------------------------------------------------------------------------------- 1 | - 安装Anaconda 2 | 3 | - 安装依赖 4 | 5 | cmd中输入 6 | 7 | - pip install pandas 8 | 9 | - pip install numpy 10 | 11 | - pip install plotly 12 | 13 | - pip install sklearn 14 | 15 | - pip install matplotlib 16 | 17 | -------------------------------------------------------------------------------- /Tutorial1/anaconda安装.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/anaconda安装.docx -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125130413239.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125130413239.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125131057994.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125131057994.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125131330539.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125131330539.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125132145647.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125132145647.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125134911729.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125134911729.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125134958894.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125134958894.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125135105444.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125135105444.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125135211894.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125135211894.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125135943170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125135943170.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125140052954.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125140052954.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125141005030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125141005030.png -------------------------------------------------------------------------------- /Tutorial1/image/image-20191125141117759.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/image/image-20191125141117759.png -------------------------------------------------------------------------------- /Tutorial1/mask3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/mask3.png -------------------------------------------------------------------------------- /Tutorial1/out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial1/out.png -------------------------------------------------------------------------------- /Tutorial2_flask/.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | __pycache__ 3 | .pytest_cache 4 | .coverage -------------------------------------------------------------------------------- /Tutorial2_flask/README.md: -------------------------------------------------------------------------------- 1 | # Flask开发入门 2 | 3 | ## 安装依赖 4 | 5 | ```powershell 6 | pip install Flask 7 | pip install pymongo 8 | pip install pytest 9 | pip install coverage 10 | ``` 11 | 12 | ## 启动flask web服务器 13 | 14 | - 在终端输入如下命令启动服务器 15 | 16 | ``` 17 | python app.py 18 | ``` 19 | 20 | - 启动后,可以使用任何web客户端和浏览器测试服务,推荐使用[Postman](https://www.getpostman.com/)进行测试 21 | 22 | 23 | ## Test and Coverage 24 | 25 | 在完成所有功能开发后,利用[pytest](http://www.pytest.org/en/latest/)和[coverage](https://coverage.readthedocs.io/en/v4.5.x/)测试和评估代码,在终端顺序输入如下命令: 26 | 27 | - 执行单元测试 28 | 29 | ``` 30 | pytest 31 | ``` 32 | 33 | - 覆盖率测试: 34 | 35 | ``` 36 | coverage run -m pytest 37 | ``` 38 | 39 | 40 | - 报告覆盖率: 41 | 42 | ``` 43 | coverage report 44 | ``` 45 | - 显示覆盖率报告: 46 | 47 | -------------------------------------------------------------------------------- /Tutorial2_flask/TreasureHunt/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | -------------------------------------------------------------------------------- /Tutorial2_flask/TreasureHunt/route.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint 2 | from flask import jsonify 3 | from flask import request 4 | from TreasureHunt.treasureHunt import * 5 | 6 | bp = Blueprint("TreasureHuntGame", __name__, url_prefix="/") 7 | 8 | # 获得用户基本信息 9 | @bp.route("//info", methods=['GET']) 10 | def user(username): 11 | money, capability, fortune = get_user_info(username) 12 | return jsonify({ 13 | "username": username, 14 | "money": money, 15 | "capability": capability, 16 | "fortune": fortune 17 | }) 18 | 19 | # 用户工作路由 20 | @bp.route("//work", methods=['POST']) 21 | def work_route(username): 22 | gain = work(username) 23 | return jsonify({'gain': gain}) 24 | -------------------------------------------------------------------------------- /Tutorial2_flask/TreasureHunt/treasureHunt.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | 4 | def get_user_info(username): 5 | return 0,0,0 6 | 7 | def work(username): 8 | return random.randint(0,100) 9 | -------------------------------------------------------------------------------- /Tutorial2_flask/app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | from flask import Flask 5 | 6 | from TreasureHunt.route import bp 7 | 8 | file_dir = os.path.dirname(__file__) 9 | sys.path.append(file_dir) 10 | 11 | if __name__ == '__main__': 12 | app = Flask(__name__) 13 | app.register_blueprint(bp) 14 | app.run() 15 | -------------------------------------------------------------------------------- /Tutorial2_flask/connectDB.py: -------------------------------------------------------------------------------- 1 | import pymongo 2 | 3 | # myclient = pymongo.MongoClient('mongodb://localhost:27017/') -------------------------------------------------------------------------------- /Tutorial2_flask/coverage_report.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial2_flask/coverage_report.PNG -------------------------------------------------------------------------------- /Tutorial2_flask/setup.cfg: -------------------------------------------------------------------------------- 1 | [tool:pytest] 2 | testpaths = tests 3 | 4 | [coverage:run] 5 | branch = True 6 | source = TreasureHunt -------------------------------------------------------------------------------- /Tutorial2_flask/tests/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | -------------------------------------------------------------------------------- /Tutorial2_flask/tests/conftest.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from flask import Flask 3 | from flask.testing import FlaskClient 4 | from TreasureHunt.route import bp 5 | 6 | 7 | @pytest.fixture 8 | def client() -> FlaskClient: 9 | app: Flask = Flask(__name__) 10 | app.register_blueprint(bp) 11 | client: FlaskClient = app.test_client() 12 | return client 13 | -------------------------------------------------------------------------------- /Tutorial2_flask/tests/test_user.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import random 3 | 4 | from flask.testing import FlaskClient 5 | 6 | username = 'test' 7 | 8 | def test_info(client: FlaskClient): 9 | response = client.get("/%s/info" % (username)) 10 | json = response.get_json() 11 | print(json) 12 | assert json['money'] == 0 13 | assert json['capability'] == 0 14 | -------------------------------------------------------------------------------- /Tutorial2_flask/任务要求.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmperorNiu/Python-Tutorial/efd6918340b0d5ca1c64521bb73436a947fe2598/Tutorial2_flask/任务要求.docx --------------------------------------------------------------------------------