【Python入門】——設計思想和生態概覽

一、Python設計思維和方法


實例:體育競技分析

#雙人擊球比賽:A&B,回合制,5局3勝
#開始時一方先發球,直至判分,接下來勝者發球
#球員只能在發球局得分,15分勝一局
#實例:體育競技分析.py
from random import *
def printInfo(): #打印程序的介紹信息
    print("這個程序模擬兩個選手A和B的某種競技比賽")
    print("程序運行需要兩個選手A和B的能力值(0到1之間的小數表式)")
def getInputs(): #獲得程序運行參數
    a = eval(input("請輸入選手A的能力值(0-1): "))
    b = eval(input("請輸入選手B的能力值(0-1): "))
    n = eval(input("請輸入比賽場次: "))
    return a,b,n
def gameOver(scoreA,scoreB):#判斷比賽是否結束
    if scoreA == 15 or scoreB == 15:
        return True
    else:
        return False
def simOneGame(probA,probB):#模擬進行一場比賽
    scoreA,scoreB = 0,0
    serving = "A"
    while not gameOver(scoreA,scoreB):
        if serving == "A":
            if random() < probA:
                scoreA += 1
            else:
                serving = "B"
        else:
            if random() < probB:
                scoreB += 1
            else:
                serving = "A"
    return scoreA,scoreB       
        
def simNGames(n,proA,proB): #程序模擬n局比賽
    winsA,winsB = 0,0
    for i in range(n):
        scoreA,scoreB = simOneGame(proA,proB)
        if scoreA > scoreB:
            winsA += 1
        else:
            winsB += 1
    return winsA,winsB
def printSummary(winsA,winsB): #輸出球員A和B獲勝比賽的場次及概率
    n = winsA+winsB
    print("競技分析開始,共模擬{}場比賽".format(n))
    print("選手A贏得了{}場比賽,佔比{:0.1%}".format(winsA,winsA/n))
    print("選手B贏得了{}場比賽,佔比{:0.1%}".format(winsB,winsB/n))
    print("競技分析開始,共模擬{}場比賽".format(n))
def main():
    printInfo()
    proA,proB,n = getInputs()
    winsA,winsB = simNGames(n,proA,proB)
    printSummary(winsA,winsB)
main()

在這裏插入圖片描述
三種人類思特徵

  1. 邏輯思維:推理和演繹,數學爲代表,A->B B->C 可證 A->C

  2. 實證思維:實驗和驗證,物理爲代表

  3. 計算思維:設計和構造,計算機爲代表

計算思維

抽象爲=問題的計算過程,利用計算機自動化求解

計算生態

以開源項目爲組織形式,充分利用“共識原則”和“社會利他”組織人員,在競爭發展、相互依存和迅速迭代中完成技術的更新換代,形成技術的自我演化路徑

14.OS庫

os庫提過通用的、基本的操作系統交互功能 和C中的<system>類似

三個常用操作

1.路徑操作:os.path子庫以path爲入口,用於操作和處理文件路徑

os.path.abspath(path) #返回path在當前系統中的絕對路徑
#例如
#os.path.abspath("file.txt") = 'c:\\Users\\file.txt'
os.path.normpath(path) #歸一化path的表示形式,統一用\\分隔路徑
#例如
#os.path.normpath("c://Users//file.txt") = 'c:\\Users\\file.txt'
os.path.relpath(path) #返回當前程序和文件的相對路徑
os.path.dirname(path) #返回path中的目錄名稱
os.path.basename(path) #返回path中最後的文件名稱
#例如
#os.path.basename("c:\\Users\\file.txt") = 'file.txt'
os.path.join(path,*paths) #組合path和paths,返回一個路徑字符串
#例如
#os.path.join("C:/","PYE/file.txt") = "C:/PYE/file.txt"
os.path.exists(path) #判斷path對應的文件是否爲已存在的目錄是否存在 返回True或False
os.path.isfile(path) #判斷path對應的是否爲已存在的文件 返回True或False
os.path.isdir(path) #判斷path對應的是否爲已存在的目錄 返回True或False

2.進程管理:執行程序或命令command,win中返回cmd的調用返回信息

os.system(command)
#例如 執行計算器程序 返回一個0
import os
os.system("C:\\Windows\\System32\\calc.exe")

3.環境參數:獲取或改變OS中環境信息

os.chdir(path) #修改當前程序操作的路徑 os.chdir(”D:“)
os.getcwd()    #返回程序的當前路徑
os.getlogin()  #獲取當前系統登錄用戶名
os.cpu_count() #獲取CPU的數量
os.urandom(n)  #獲得n個字節長度的隨機字符串,用於加解密運算

實例:第三方庫自動安裝腳本

#第三方庫自動安裝程序
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
    "jieba","beautifulsoup4","wheel","networkx","sympy",\
        "pyinstaller","django","flask","werobot","pyqt5",\
            "pandas","pyopengl","pypdf2","docopt","pygame"}
cnt = 0
try:
    for lib in libs:
        os.system("pip install " + lib)
        cnt += 1
        print("{} is ok!".format(cnt))
    print("All Successful")
except:
    print("Failed Somehow")

二、Python計算生態概覽


1.從數據處理到人工智能

數據表示->數據清洗->數據統計->數據可視化->數據挖掘->人工智能

數據表示:採用合適方式用程序表達數據 -

數據清理:數據歸一化、數據轉換、異常值處理 

數據統計:數據的概要理解,數量、分佈、中位數等

數據可視化:直觀展示數據內涵的方式 

數據挖掘:從數據分析獲得知識,產生數據外的價值 

人工智能:數據/語言/圖像/視覺等方面深度分析與決策

1.1 .Python庫之數據分析

Numpy:表達N維數組的最基礎庫

Pandas:Python數據分析高層次應用庫

SciPy:數學、科學共工程計算功能庫,基於Numpy

1.2.Python庫之數據可視化

Matplotlib:高質量的二維數據可視化庫

Seaborn:統計類數據可視化功能庫

Mayavi:三維科學數據可視化

1.3.Python庫之文本處理

PyPDF:用來處理pdf文件

NLTK:自然語言文本處理第三方庫

Python-docx:創建或更新MS Word文件的第三方庫

1.4.Python庫之機器學習

Scikit-learn :機器學習方法工具集

TensorFlow:AlphaGo後的機器學習計算框架

MXNet:基於神經網絡的深度學習計算框架

2.從Web解析到網絡空間

2.1 .Python庫之網絡爬蟲

使用程序將Web頁面中的信息爬取下來

Requests:最友好的網絡爬蟲功能庫

Scrapy:優秀的網絡爬蟲框架

pyspider:強大Web頁面爬取系統

2.2 .Python庫之Web信息獲取

Beautiful Soup:HTML和XML的解析庫 和 爬蟲庫一起應用

Re:正則表達式解析和處理功能庫

Python-Goose:提取文章類型Web頁面的功能庫

2.3 .Python庫之Web網站開發

Django:最流行的web應用框架

Pyramid:規模適中的Web應用框架

Flask:Web應用開發微框架

F < P < D

2.4.Python庫之網絡應用開發

WeRobot:微信公衆號開發框架

aip:百度AI開放平臺接口

MyQR:二維碼生成的第三方庫

正如嵩天老師所說:編程不重要,思想才重要

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章