#比赛规则:#1. 比赛分为两场,每场为45分钟#上半场: 一方挑选进攻的球门,另一方获得开球权#下半场: 互换攻守方向,上半场没获得开球权的一方获得开球权#2. 在进球后开球时,开球方为失球一方#3. 在没有违反任何比赛规则时,进攻球队得分。#4. 比赛结束时得分多的球队获胜,如果两队得分相同或均未得分,比赛为平局。

from random importrandom, randintfrom time importtimedefprintInfo():'''function: 打印程序的介绍信息'''

print("{:*^70}".format("产品简介"))print("足球竞技模拟")print("通过输入2个队伍A和B的能力值(0到1之间的小数表示),能够模拟多次2个队伍A和B的排球竞技比赛,从而得出各自的胜率!")print("06号詹曼青")print("{:*^70}".format("模拟开始"))defgetInputs():'''function: 获得用户输入的参数'''probA= eval(input("请输入队伍A的能力值(0~1):"))

probB= eval(input("请输入队伍B的能力值(0~1):"))

n= eval(input("请输入需要模拟比赛的场次数:"))returnprobA, probB, ndefprintResult(n, via, winsA, winsB):'''function: 输出模拟比赛的结果'''

print("{:*^70}".format("模拟结束"))print("竞技分析开始,共模拟{}场比赛。".format(n))print(">>>队伍A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))print(">>>队伍B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))print(">>>两队平局{}场,占比{:0.1%}".format(via,via/n))defsimNGames(n, probA, probB):'''function: 模拟n场比赛

n: 模拟n场比赛

probA, probB: 分别为队伍A和B的能力值

winsA, winsB: 队伍A和B赢得比赛的场数,总共n场'''via, winsA, winsB=0, 0, 0for _ inrange(n):

scoreA, scoreB=simOneGame(probA, probB)if scoreA ==scoreB:

via+= 1

elif scoreA >scoreB:

winsA+= 1

else:

winsB+= 1

returnvia, winsA, winsBdefsimOneGame(probA, probB):'''function: 模拟一场比赛, 分上半场和下半场

probA, probB: 分别为队伍A和B的能力值

scoreA, scoreB: 分别为队伍A和B一场比赛的分数

return: 返回队伍A和B在本场比赛中获得的分数'''winA, winB=0, 0for N in range(2):

scoreA, scoreB=simAGame(N, probA, probB)

winA+=scoreA

winB+=scoreBreturnwinA, winBdefsimAGame(N, probA, probB):'''function: 模拟半场比赛

probA, probB: 分别为队伍A和B的能力值

scoreA, scoreB: 分别为队伍A和B半场比赛的分数

return: 返回队伍A和B在本半场比赛中获得的分数'''scoreA, scoreB=0, 0if N ==0:

serving= 'A' #发球方

else:

serving= 'B'

for _ inrange(gameOver()):if serving == 'A':if random()

scoreA+= 1serving= 'B'

else:if random()

scoreB+= 1serving= 'A'

returnscoreA, scoreBdefgameOver():'''function: 定义半场比赛的结束条件

通过randint产生一个随机数作为半场比赛的回合数, 若达到半场比赛的回合数则结束比赛

return: 若比赛结束的条件成立返回真,否则为假'''

return randint(3, 10)if __name__ == "__main__":

printInfo()

probA, probB, n=getInputs()

Time=time()

via, winsA, winsB=simNGames(n, probA, probB)print("模拟用时: {:.1f}s".format(time()-Time))

printResult(n, via, winsA, winsB)

python模拟足球_python 足球模拟相关推荐

  1. python 12306登录_python爬虫--模拟12306登录

    模拟12306登录 超级鹰: #!/usr/bin/env python # coding:utf-8 import requests from hashlib import md5 class Ch ...

  2. python 抢购小米_Python(Tornado)模拟登录小米抢手机

    今天看到同事参与小米的抢购,几经数个星期的尝试,终于抢到了一台小米电视--看了一下小米的抢购流程,似乎可以用程序可破.于是想写点东西玩玩(你懂的--),第一步肯定是先得模拟登录小米帐号,当练手吧. 用 ...

  3. python实现翻_python实现模拟按键,自动翻页看u17漫画

    python实现模拟按键,自动翻页看u17漫画 发布于 2015-10-22 08:23:25 | 134 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  4. python 模拟键盘_python+selenium模拟键盘输入

    from selenium.webdriver.common.keys import Keys #键盘导入类 --------------------------------------------- ...

  5. python socket 游戏_python socket模拟游戏开服

    python socket服务端 #!/usr/bin/python #-*- coding: utf-8 -*- import socket import os,sys host='127.0.0. ...

  6. python 按键精灵_python中用ctypes模拟点击的实例讲解

    在小编学习python中的模拟点击之前,我们想要对某一项操作进行自动指令的重复,可以选择大家熟知的按键精灵.那么对比python的模拟点击,小编还是觉得python中使用更加方便.这样说不能让有些小伙 ...

  7. python排队叫号_python多线程实现代码(模拟银行服务操作流程)

    1.模拟银行服务完成程序代码 目前,在以银行营业大厅为代表的窗口行业中大量使用排队(叫号)系统,该系统完全模拟了人群排队全过程,通过取票进队.排队等待.叫号服务等功能,代替了人们站队的辛苦. 排队叫号 ...

  8. python 浏览器模拟手机_Python爬虫关于移动端模拟

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:测试小兵 坚持梦想 就算所有人都不支持你.这条路会很曲 ...

  9. python运维之轻松模拟开发FTP软件05

       以往众多运维者,大多都是在应用国外已经开发好的软件,如今的国内运维职位已经要求我们具备较强的创新能力,一些日常小工具小软件应该能做到手到拈来,这样我们才能在激烈的竞争中占据有利位置.请看: py ...

最新文章

  1. 手把手教你研发自己的智能无人机 谢谢您呀!
  2. Java中异常处理之try和catch代码块的使用
  3. TCP协议客户端读取文本文件,服务器端输出到文本文件
  4. 中国世界工厂地位为什么不会动摇
  5. 华为发布《自动驾驶网络解决方案白皮书》
  6. Anytime项目开发记录0
  7. 开发工具之pycharm 快捷键说明
  8. 高端唯有定制,把 sublime 打造成专属的 IDE
  9. jQuery简单介绍
  10. maven+jenkins自动化构件
  11. php 情书,php趣味编程 - php输出笛卡尔情书的秘密
  12. 如何考查自己的测试水平?
  13. JavaScript验证正则表达式大全
  14. 求给定精度的简单交错序列部分和 (15 分)
  15. python中形参可以使用中文定义嘛_python中函数的参数分类
  16. swoole实现Timer定时器、心跳检测及Task进阶实例:mysql连接池
  17. js调用HttpPrinter(web打印插件)
  18. 通过简单实例讲解QQ开放平台登录原理
  19. 完美世界:你病了,要么离职,要么996,要么小黑屋三选一
  20. w ndows10怎么没体验指数,Win10如何使用WinSAT测试Windows体验指数?

热门文章

  1. Android 给EditText添加下划线
  2. matlab中的电子器件,对电力电子器件控制设计进行硬件在环测试
  3. 计算机网络 UDP协议与TCP协议首部
  4. 传输层 --- 面向连接的传输TCP
  5. 外泌体介绍 - MedChemExpress
  6. 鲑鱼和金枪鱼罐头的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. rt linux 测试,Ubuntu下测试RT-Linux的性能
  8. 计算机与管理科学的交叉与融合,计算机信息管理专业与其他专业的交叉融合论文...
  9. WPS/WORD设置每一页显示50行代码或者是固定数量的行数
  10. 184、商城业务-检索服务-页面基本数据渲染