安装python shell

运行python

# 导入python资源包
from random import random# 用户体验模块
def printIntro():#输出文本即本程序的作用print("这个程序模拟两个选手A和B的某种竞技比赛")#打印print("程序运行需要A和B的能力值(以0到1之间的小数表示)")#打印# 获得A和B的能力值与场次模块
def getIntputs():#获得A,B的能力值a = eval(input("请输入A的能力值(0-1):"))#获得A的能力值b = eval(input("请输入B的能力值(0-1):"))#获得B的能力值n = eval(input("模拟比赛的场次:"))#获得比赛场次数return a, b, n# 模拟n局比赛模块
def simNGames(n, probA, probB):winsA, winsB = 0, 0#初始化A,B的获胜次数for i in range(n):#根据比赛的场次数进行scoreA, scoreB = simOneGame(probA, probB)#保存A,B的分数if scoreA > scoreB:#比较A、B的分数winsA += 1 #A的获胜次数加一else:winsB += 1#B的获胜次数加一return winsA, winsB #返回A、B的获胜次数,这个好像有点多余# 判断比赛结束条件
def gameOver(a, b):#比赛是否结束return a == 15 or b == 15#任意一队获得15分判定为胜利# 模拟n次单局比赛=模拟n局比赛
def simOneGame(probA, probB):#模拟比赛scoreA, scoreB = 0, 0#初始化A,B队获得的分数serving = "A"#A队获得主动权while not gameOver(scoreA, scoreB):#A队与B队比赛未结束就循环if serving == "A":#A队获得主动权if random() < probA:#根据A队能力及随机数判断A队能否得分scoreA += 1else:serving = "B"#B队伍获得主动权else:if random() < probB:#根据B队能力及随机数判断A队能否得分scoreB += 1else:serving = "A"#A队获得主动权return scoreA, scoreB# 打印结果模块
def printSummary(winsA, winsB):#打印仿真比赛结果n = winsA + winsB#计算A与B队获胜场数print("竞技分析开始,共模拟{}场比赛".format(n))#打印仿真比赛总场数print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA / n))#打印仿真比赛A胜率print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB / n))#打印仿真比赛B胜率def main():printIntro()    probA, probB, n = getIntputs()                # 获得用户A、B能力值与比赛场次NwinsA, winsB = simNGames(n, probA, probB)     # 获得A与B的场次printSummary(winsA, winsB)                    # 返回A与B的结果main()

编写程序

运行结果

注意区分全局变量与局部变量

Python学习打卡相关推荐

  1. #Python学习打卡——元组#

    Python学习打卡--元组 由于之前已经写了有关字符串和列表的博客了,所以在对python有一定的熟悉度下更新这篇,所以这篇的速度可能会较前两篇快一些,挑重点讲哦 元组 首先,我们已经学过了列表,发 ...

  2. Python学习打卡【Task3】异常处理

    目录 一.学习知识点概要(review) 二.学习内容(record) 三.学习问题与解答(analysis) 四.学习思考与总结(summary) 一.学习知识点概要(review) 1.Pytho ...

  3. Python学习打卡【Task4】列表,字典和元组

    目录 一.学习知识点概要(review)     二.学习内容(record) 三.学习问题与解答(analysis) 四.学习思考与总结(summary) 一.学习知识点概要(review)     ...

  4. Python学习打卡第一周

    一.跟着视频的代码用python成功制作了第一款小游戏 编写过程中遇到的问题: 1.标点符号总是忘记要为英文 2.if语句忘记加上":" 3.错误缩进导致程序无法运行 但也正是因为 ...

  5. 第一天python学习打卡

    概念 Python是一种解释型.面向对象的语言.可读性强,且开发团队及其注重简洁.同样的逻辑实现成代码时,越简洁就越不容易出错.同时也更加节省时间. Python是由C语言开发的,但舍去了C语言中指针 ...

  6. python学习之钉钉打卡

    python学习之钉钉打卡 背景 原理 实现 一.准备 二.代码 背景 曾经写过几个python小工具,刷快手.自动答题.刷火车票.爬电影天堂电影-,最近因为钉钉成了我们公司官方软件,所以,你懂得啦, ...

  7. python 基础二(学习打卡)

    python 基础二(学习打卡) python基础知识 python 基础二(学习打卡) 一.None值 二.函数返回多个值 三.局部变量和全局变量 四.异常处理(内含Zigzag代码) 五.列表 六 ...

  8. python基础一(学习打卡)

    python基础一(学习打卡) 文章目录 python基础一(学习打卡) 一.数据类型 二.运算符 三.内置函数 四.变量 五.控制流语句 一.数据类型 **·**整数int:-3,-2,0,2- * ...

  9. 坚持学习打卡的人,将来会变成什么样?

    坚持打卡的人,将来会变成怎么样?让我们拭目以待.我组织了一个打卡活动,希望大家踊跃参加. 有一个励志故事: 在中国的最东边生长着一种竹子,名叫"毛竹".那里的农民到处播种,每天精心 ...

最新文章

  1. ngx对accept加锁操作
  2. 20210614 什么是状态?什么是状态空间?
  3. 新乡学院计算机田亮,2019届毕业论文答辩工作安排
  4. matlab max与min获取矩阵最大最小值函数
  5. spring mvc学习(10):eclipse的环境前maven配置
  6. 【Python-3.3】字典中存储字典
  7. UVA 10391 STL容器的使用
  8. Android Studio链接外部手机模拟器问题
  9. Activities
  10. mysql的本地id可以随便设置马_Mysql主从复制原理及搭建
  11. 美通企业日报 | 药明康德上半年收入大增34%;资讯App今日头条第一微鲤进前八...
  12. Adobe官方清理工具Adobe Creative Cloud Cleaner Tool使用教程
  13. 当梦想照进现实--Steve Nash
  14. 如何在网页中加入一条竖线
  15. 手机开发者选项中的调试模式
  16. QT——连接USB摄像头
  17. Android商城开发系列(九)—— 首页频道布局的实现
  18. SixTool多功能多合一代挂助手系统源码
  19. 703n的OpenWrt配置二:U盘扩容
  20. 创建一个教师类(Teacher)属性有 姓名(name) 年龄(age) 性别(sex) 教师编号(tno) 2.提供本类的无参和全参构造方法 3.编写教师上课的办法teach() 编写静态方

热门文章

  1. 计算机mid函数column,excel mid函数典型实例
  2. python网络爬虫工具库集合
  3. Ubuntu创建和删除用户
  4. vue上传文件到UCloud
  5. 优秀的项目管理与糟糕的项目管理
  6. 地理信息系统:绪论重点基础知识
  7. 一个项目玩转 Android 自定义 Drawable。
  8. 慕课网简易扑克牌游戏
  9. vue下载文件(zip格式),并解决中文乱码
  10. 去除Flutter项目dart文件在vscode里出现波浪号