一、实验目的

 (1)掌握结构化程序设计方法
 (2)掌握Python的模块组织方法

二、实验环境

  Windows 7以上版本的操作系统,Python 3.5以上编程环境。

三、实验内容和步骤

1.阅读下列代码,运行竞技比赛模拟程序,查看执行结果。


#MatchAnalysis.py
from random import random
def printIntro():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 simNGames(n, probA, probB):winsA, winsB = 0, 0for i in range(n):scoreA, scoreB = simOneGame(probA, probB)if scoreA > scoreB:winsA += 1else:winsB += 1return winsA, winsB
def gameOver(a,b):return a==15 or b==15
def simOneGame(probA, probB):scoreA, scoreB = 0, 0serving = "A"while not gameOver(scoreA, scoreB):if serving == "A":if random() < probA:scoreA += 1else:serving="B"else:if random() < probB:scoreB += 1else:serving="A"return scoreA, scoreB
def printSummary(winsA, winsB):n = winsA + winsBprint("竞技分析开始,共模拟{}场比赛".format(n))print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
def main():printIntro()probA, probB, n = getInputs()winsA, winsB = simNGames(n, probA, probB)printSummary(winsA, winsB)
main()

2.阅读官方文档关于package的描述:

https://docs.python.org/zh-cn/3/tutorial/modules.html#packages
module和package特性是Python开发大型项目的基石,请仔细阅读上述官方文档。回答:init.py文件的作用是什么?

3.罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 100

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

编写Python程序:给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。

样例输入 样例输出
3 III
4 IV
9 IX
58 LVIII
(解释: L = 50, V = 5, III = 3)
1994 MCMXCIV
(解释: M = 1000, CM = 900, XC = 90, IV = 4)

四、实验结果

1. 运行截图

2. 回答

由于Python只把含 init.py 文件的目录当成包。因此__init__.py文件可以使Python能够将__init__.py所在的目录识别为一个包,除此之外,init.py还可以用来执行包的初始化代码,或设置__all__变量。

3.1 程序代码


thousands = ["", "M", "MM", "MMM"]
hundreds = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]
tens = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"]
singles = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"]
def getRomenNum(num, digit):if digit == 4:return thousands[num]elif digit == 3:return hundreds[num]elif digit == 2:return tens[num]elif digit == 1:return singles[num]
def main():num = eval(input("请输入一个数字: "))thousand = getRomenNum(num//1000, 4)hundred = getRomenNum((num%1000)//100, 3)ten = getRomenNum(((num%1000)%100)//10, 2)single = getRomenNum(((num%1000)%100)%10, 1)print(thousand + hundred + ten + single)
main()

3.2 运行截图

Python实验报告 实验15 - 体育竞技分析相关推荐

  1. python乒乓球比赛规则_python模拟体育竞技分析--采用乒乓球规则

    采用乒乓球比赛规则 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬ ...

  2. Python:程序设计方法学、体育竞技分析

    一.基础知识 二.程序设计方法学 import random def printIntro():print("这个程序模拟两个选手A和B的某种竞技比赛")print("程 ...

  3. python实验报告实验总结_Python词云制作实验报告

    实验题目:n Python 词云制作实验报告 实验目的与要求: 础 掌握基础 Python 安装过程和词云制作. 实验步骤: n Python 安装 1.击 双击 Anaconda2-4.0.0-Wi ...

  4. 计算机网络数据分析报告,贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式...

    贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 贵州大学GUIZHOU UN ...

  5. python体育竞技分析代码200行_使用Python进行体育竞技分析(预测球队成绩)

    使用Python进行体育竞技分析(预测球队成绩) 发布时间:2020-09-18 06:38:27 来源:脚本之家 阅读:69 今天我们用python进行体育竞技分析,预测球队成绩 一. 体育竞技分析 ...

  6. 关于体育的python毕业设计_Python实例13:体育竞技分析

    Python实例13:体育竞技分析 8.1.1 问题分析 需求:毫厘是多少?如何科学分析体育竞技比赛? 输入:球员的水平: 输出:可预测的比赛成绩: 8.1.2 自顶向下,自底向上 将大问题分为几个小 ...

  7. python选手的最后得分_用Python进行体育竞技分析(预测球队成绩)!身家都下注了!...

    今天我们用python进行体育竞技分析,预测球队成绩 一. 体育竞技分析的IPO模式 : 输入I(input):两个球员的能力值,模拟比赛的次数(其中,运动员的能力值,可以通过发球方赢得本回合的概率来 ...

  8. python 比赛成绩预测_使用Python进行体育竞技分析(预测球队成绩)

    今天我们用python进行体育竞技分析,预测球队成绩 一. 体育竞技分析的IPO模式 : 输入I(input):两个球员的能力值,模拟比赛的次数(其中,运动员的能力值,可以通过发球方赢得本回合的概率来 ...

  9. python简单体育竞技模拟_Python程序设计思维练习---体育竞技分析-阿里云开发者社区...

    体育竞技分析:模拟N场比赛 计算思维:抽象 + 自动化 模拟:抽象比赛过程,自动模拟N场比赛,当N越大时,比赛结果分析越科学. 本次比赛规则:回合制,15分一局,先由一方发球,如胜利,则得1分并继续发 ...

最新文章

  1. oracle存储过程参考资料(网上转载)
  2. dropdownlist javascript 取得value text
  3. Java 多态的简单介绍.
  4. 使用Spinner和setDropDownViewResource
  5. 基于WebSocket的手机应用和浏览器应用的数据传递
  6. matlab二项式拟合,数据回归分析和拟合的Matlab实现
  7. VSTS 2010体验 - TFS 2010变化巨大
  8. GrapeCity Documents for Excel 与 Apache POI 功能对比
  9. 这4点教你找到小程序专业开发公司
  10. kubernetes 删除容器 docker rmi Error response from daemon: conflict: container is using its referenced
  11. 第五版fmea表格_FMEA第五版: 新版 DFMEA六步法解析
  12. 一款JAVA微信小程序商城源码,带完整后台【运行版】
  13. 记一次抓包和破解App接口
  14. 三人行必有我师焉 [ 光影人像 东海陈光剑 的博客 ]
  15. 在GNU/Linux下将CD音乐转为mp3
  16. 计算机函数说课ppt,《excel公式与函数》说课稿
  17. 心怀远方,顶峰相见!!!
  18. 90 后美女独家秘籍:从小白到 AI 算法工程师
  19. SAP系统中信用控制功能详解
  20. 时序逻辑中的锁存器、触发器、寄存器

热门文章

  1. oracle Swap_join_inputs简析
  2. Nutch安装第四天,进入正题,Nutch2.4的配置和编译
  3. 关于knife4j工具聚合api文档的使用
  4. java 只有try 不catch_Java异常处理只有Try-Catch吗?
  5. 数据在计算机中存储形式
  6. Wireshark 解析PDCP-LTE
  7. 强化学习经典model-free方法总结
  8. python爬去新浪微博_!如何通过python调用新浪微博的API来爬取数据
  9. kernel panic-not syncing:IO-APIC+timer doesn't work!
  10. 本地小说阅读网站打造