06 python基础--编程思想

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%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值