06 python基礎--程式設計思想
阿新 • • 發佈:2018-12-18
6.1 計算思維
人類思維特徵:邏輯思維->實證思維->計算思維
基於計算機強大的算力及海量資料,以計算機程式設計以主要實現的手段
計算思維例項:漢諾塔、圓周率計算
6.2 計算生態
計算生態特點:競爭發展、相互依存、迅速更迭
python語言提供>13萬個第三方庫,且同一功能具有2個以上第三方庫
優質的計算生態:https://www.python123.io
6.3 使用者體驗
進度展示、多步提示、異常處理、日誌檔案、幫助資訊
6.4 基本的程式設計模式
從IPO開始、自頂向下、模組化、配置化
6.5 應用開發的步驟
產品定義:理解和明確定義需求(產品),考慮商業角度 系統架構:關注資料流、模組化、體系架構 設計與實現:編碼設計 使用者體驗:使用者至上
6.6 模組化、自頂向下設計例項
# -*- coding: utf-8 -*- from random import random import encodings ## 列印資訊 def PrintIntro(): print('根據兩個選手的能力值,模擬兩個選手的n場比賽') ## 獲取引數 def getInputs(): a = eval(input('請輸入選手A的能力值a:')) b = eval(input('請輸入選手B的能力值b:')) n = eval(input('請輸入比賽的總場次n:')) return a,b,n ## 模擬n場比賽 def simNgame(n,a,b): wina,winb = 0,0 for i in range(n): scoreA, scoreB = simoneGame(a, b) if scoreA>scoreB: wina += 1 else: winb += 1 return wina,winb ## 定義遊戲結束條件 def gameover(e,f): return e== 15 or f == 5 ## 定義首球由誰發 def firstHit(): if random() < 0.5: st = 'A' else: st = 'B' return st ## 模擬一場比賽的得分 def simoneGame(a,b): scoreA,scoreB = 0,0 st = 'B' while not gameover(scoreA,scoreB): if st == 'A': if random()< a: scoreA +=1 else: st = 'B' else: if random()< b: scoreB +=1 else: st = 'A' return scoreA,scoreB ## 列印輸出 def PrintSummary(wina,winb): n = wina + winb print('競技分析開始,共進行了{}場比賽'.format(n)) print('選手A獲勝{}場,佔比{:0.1%}'.format(wina,wina/n)) print('選手A獲勝{}場,佔比{:0.1%}'.format(winb,winb/n)) ## 主函式 def main(): PrintIntro() a,b,n = getInputs() wina,winb = simNgame(n,a,b) PrintSummary(wina,winb) main() ##輸出 根據兩個選手的能力值,模擬兩個選手的n場比賽 請輸入選手A的能力值a:0.3 請輸入選手B的能力值b:0.4 請輸入比賽的總場次n:1000 競技分析開始,共進行了1000場比賽 選手A獲勝223場,佔比22.3% 選手A獲勝777場,佔比77.7%