Skip to content

DragonChen-TW/Python-100-Days_zh-tw

 
 

Repository files navigation

Python - 100天從新手到大師

by 駱昊

Python應用領域和就業形勢分析

簡單的說,Python是一個“優雅”、“明確”、“簡單”的編程語言。

  • 學習曲線低,適合非專業人士
  • 開源係統,擁有強大的生態圈
  • 解釋型語言,完美的平台可移植性
  • 支持面向對象和函數式編程
  • 可擴展性,能調用C/C++代碼
  • 代碼規範程度高,可讀性強

目前幾個比較流行的領域,Python都有用武之地。

  • 雲基礎設施 - Python / Java / Go
  • DevOps - Python / Shell / Ruby / Go
  • 網絡爬蟲 - Python / PHP / C++
  • 數據分析挖掘 - Python / R / Scala / Matlab
  • 機器學習 - Python / R / Java / Lisp

作爲一名Python開發者,主要的就業領域包括:

  • Python服務器後台開發 / 遊戲服務器開發 / 數據接口開發工程師
  • Python自動化運維工程師
  • Python數據分析 / 數據可視化 / 科學計算 / 大數據工程師
  • Python爬蟲工程師
  • Python聊天機器人開發 / 圖像識別和視覺算法 / 深度學習工程師

下圖顯示了主要城市Python招聘需求量及薪資待遇排行榜(截止到2018年5月)。

Python招聘需求及薪資待遇Top 10

給初學者的幾個建議(老司機的忠告):

  • Make English as your working language.
  • Practice makes perfect.
  • All experience comes from mistakes.
  • Don't be one of the leeches.
  • Either stand out or kicked out.

Day01 - 初識Python

  • Python簡介 - Python的曆史 / Python的優缺點 / Python的應用領域
  • 搭建編程環境 - Windows環境 / Linux環境 / MacOS環境
  • 從終端運行Python程序 - DOS命令 / Hello, world / print函數 / 運行程序
  • 使用IDLE - 交互式環境(REPL) / 編寫多行代碼 / 運行程序 / 退出IDLE
  • 注釋 - 注釋的作用 / 單行注釋 / 多行注釋

Day02 - 語言元素

  • 程序和進制 - 指令和程序 / 馮諾依曼機 / 二進制和十進制 / 八進制和十六進制
  • 變量和類型 - 變量的命名 / 變量的使用 / input函數 / 檢查變量類型 / 類型轉換
  • 數字和字符串 - 整數 / 浮點數 / 複數 / 字符串 / 字符串基本操作 / 字符編碼
  • 運算符 - 數學運算符 / 賦值運算符 / 比較運算符 / 邏輯運算符 / 身份運算符 / 運算符的優先級
  • 應用案例 - 華氏溫度轉換成攝氏溫度 / 輸入圓的半徑計算周長和面積 / 輸入年份判斷是否是閏年

Day03 - 分支結構

  • 分支結構的應用場景 - 條件 / 縮進 / 代碼塊 / 流程圖
  • if語句 - 簡單的if / if-else結構 / if-elif-else結構 / 嵌套的if
  • 應用案例 - 用戶身份驗證 / 英制單位與公制單位互換 / 擲骰子決定做什麽 / 百分制成績轉等級制 / 分段函數求值 / 輸入三條邊的長度如果能構成三角形就計算周長和面積

Day04 - 循環結構

  • 循環結構的應用場景 - 條件 / 縮進 / 代碼塊 / 流程圖
  • while循環 - 基本結構 / break語句 / continue語句
  • for循環 - 基本結構 / range類型 / 循環中的分支結構 / 嵌套的循環 / 提前結束程序
  • 應用案例 - 1~100求和 / 判斷素數 / 猜數字遊戲 / 打印九九表 / 打印三角形圖案 / 猴子吃桃 / 百錢百雞
  • 基礎練習 - 水仙花數 / 完美數 / 五人分魚 / Fibonacci數列 / 回文素數
  • 綜合練習 - Craps賭博遊戲
  • 函數的作用 - 代碼的壞味道 / 用函數封裝功能模塊
  • 定義函數 - def語句 / 函數名 / 參數列表 / return語句 / 調用自定義函數
  • 調用函數 - Python內置函數 / 導入模塊和函數
  • 函數的參數 - 默認參數 / 可變參數 / 關鍵字參數(*) / 命名關鍵字參數(*)
  • 函數的返回值 - 沒有返回值 / 返回單個值 / 返回多個值(*)
  • 作用域問題 - 局部作用域 / 嵌套作用域 / 全局作用域 / 內置作用域 / 和作用域相關的關鍵字
  • 用模塊管理函數 - 模塊的概念 / 用自定義模塊管理函數 / 命名沖突的時候會怎樣(同一個模塊和不同的模塊)
  • 字符串的使用 - 計算長度 / 下標運算 / 切片 / 常用方法
  • 列表基本用法 - 定義列表 / 用下表訪問元素 / 下標越界 / 添加元素 / 刪除元素 / 修改元素 / 切片 / 循環遍曆
  • 列表常用操作 - 連接 / 複制(複制元素和複制數組) / 長度 / 排序 / 倒轉 / 查找
  • 生成列表 - 使用range創建數字列表 / 生成表達式 / 生成器
  • 元組的使用 - 定義元組 / 使用元組中的值 / 修改元組變量 / 元組和列表轉換
  • 集合基本用法 - 集合和列表的區別 / 創建集合 / 添加元素 / 刪除元素 / 清空
  • 集合常用操作 - 交集 / 並集 / 差集 / 對稱差 / 子集 / 超集
  • 字典的基本用法 - 字典的特點 / 創建字典 / 添加元素 / 刪除元素 / 取值 / 清空
  • 字典常用操作 - keys()方法 / values()方法 / items()方法 / setdefault()方法
  • 基礎練習 - 跑馬燈效果 / 列表找最大元素 / 統計考試成績的平均分 / Fibonacci數列 / 楊輝三角
  • 綜合案例 - 雙色球選號 / 井字棋
  • 類和對象 - 什麽是類 / 什麽是對象 / 面向對象其他相關概念
  • 定義類 - 基本結構 / 屬性和方法 / 構造器 / 析構器 / __str__方法
  • 使用對象 - 創建對象 / 給對象發消息
  • 面向對象的四大支柱 - 抽象 / 封裝 / 繼承 / 多態
  • 基礎練習 - 定義學生類 / 定義時鍾類 / 定義圖形類 / 定義汽車類
  • 屬性 - 類屬性 / 實例屬性 / 屬性訪問器 / 屬性修改器 / 屬性刪除器 / 使用__slots__
  • 類中的方法 - 實例方法 / 類方法 / 靜態方法
  • 運算符重載 - __add__ / __sub__ / __or__ /__getitem__ / __setitem__ / __len__ / __repr__ / __gt__ / __lt__ / __le__ / __ge__ / __eq__ / __ne__ / __contains__
  • 類(的對象)之間的關係 - 關聯 / 繼承 / 依賴
  • 繼承和多態 - 什麽是繼承 / 繼承的語法 / 調用父類方法 / 方法重寫 / 類型判定 / 多重繼承 / 菱形繼承(鑽石繼承)和C3算法
  • 綜合案例 - 工資結算係統 / 圖書自動折扣係統 / 自定義分數類
  • 讀文件 - 讀取整個文件 / 逐行讀取 / 文件路徑
  • 寫文件 - 覆蓋寫入 / 追加寫入 / 文本文件 / 二進制文件
  • 異常處理 - 異常機制的重要性 / try-except代碼塊 / else代碼塊 / finally代碼塊 / 內置異常類型 / 異常棧 / raise語句
  • 數據持久化 - CSV文件概述 / csv模塊的應用 / JSON數據格式 / json模塊的應用
  • 綜合案例 - 歌詞解析
  • 字符串高級操作 - 轉義字符 \ 原始字符串 \ 多行字符串 \ in和 not in運算符 \ is開頭的方法 \ join和split方法 \ strip相關方法 \ pyperclip模塊 \ 不變字符串和可變字符串 \ StringIO的使用
  • 正則表達式入門 - 正則表達式的作用 \ 元字符 \ 轉義 \ 量詞 \ 分組 \ 零寬斷言 \貪婪匹配與惰性匹配懶惰 \ 使用re模塊實現正則表達式操作(匹配、搜索、替換、捕獲)
  • 使用正則表達式 - re模塊 \ compile函數 \ group和groups方法 \ match方法 \ search方法 \ findall和finditer方法 \ sub和subn方法 \ split方法
  • 應用案例 - 使用正則表達式驗證輸入的字符串
  • 進程和線程的概念 - 什麽是進程 / 什麽是線程 / 多線程的應用場景
  • 使用進程 - fork函數 / multiprocessing模塊 / 進程池 / 進程間通信
  • 使用線程 - thread模塊 / threading模塊 / Thread類 / Lock類
  • 計算機網絡基礎 - 計算機網絡發展史 / “TCP-IP”模型 / IP地址 / 端口 / 協議 / 其他相關概念
  • 網絡應用架構 - “客戶端-服務器”架構 / “浏覽器-服務器”架構
  • Python網絡編程 - 套接字的概念 / socket模塊 / socket函數 / 創建TCP服務器 / 創建TCP客戶端 / 創建UDP服務器 / 創建UDP客戶端 / SocketServer模塊
  • 訪問網絡API - 網絡API概述 / 訪問URL / requests模塊 / 解析JSON格式數據
  • 文件傳輸 - FTP協議 / ftplib模塊 / 交互式FTP應用
  • 電子郵件 - SMTP協議 / POP3協議 / IMAP協議 / smtplib模塊 / poplib模塊 / imaplib模塊
  • 短信服務 - twilio模塊 / 國內的短信服務

Day16~Day20 - Python語言進階

Day21~30 - Web前端

  • 用HTML標簽承載頁面內容
  • 用CSS渲染頁面
  • 用JavaScript處理交互式行爲
  • jQuery入門和提高
  • Bootstrap在Web項目中的應用
  • 操作係統發展史和Linux概述
  • Linux基礎命令
  • Linux中的實用程序
  • Linux的文件係統
  • Vim編輯器的應用
  • 環境變量和Shell編程
  • 軟件的安裝和服務的配置
  • 網絡訪問和管理
  • 其他相關內容
  • 關係型數據庫MySQL
    • 關係型數據庫概述
    • MySQL的安裝和使用
    • SQL的使用
      • DDL
      • DML
      • DQL
      • DCL
    • 在Python中操作MySQL
    • MySQL高級知識
  • NoSQL入門
    • NoSQL概述
    • 主流NoSQL數據庫
    • Redis概述
    • Mongo概述

Day41~55 - Django

  • 項目開發流程和相關工具
  • 生成非HTML內容
  • 項目部署和測試
  • 項目性能調優
  • Web應用安全保護

Day56~65 - Flask

  • 性能和測試
  • 項目部署

Day66~75 - 爬蟲

Day68 - 存儲數據

Day69 - 並發下載

Pandas的應用

NumPy和SciPy的應用

Matplotlib和數據可視化

K最鄰近分類算法(KNN)

線性回歸和Logistic回歸

支持向量機(SVM)和Kmeans聚類

決策樹和貝葉斯分類

Tensorflow實戰01

Tensorflow實戰02

Tensorflow實戰03

Day91~100 - 團隊項目開發

軟件項目的過程模型

團隊開發工具

模塊分割設計與單元測試

用Jenkins實現持續集成

部署和自動化部署

性能測試和改善

About

Python - 100天從新手到大師 - 繁體中文版

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 82.7%
  • HTML 17.3%