这是我的代码和错误,搞不懂为什么会有这种错误,希望能帮我解答
2条回答 默认 最新
- 梦里逆天 2022-09-01 22:23关注
你输的那个冒号好像是中文的,第40行,多了个等号
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 printSummary(winsA, winsB): n = winsA + winsB print(f'分析开始,共模拟{n}场比赛') # print(f'选手A胜{winsA}场,胜率{(winsA / n) * 100}%') # print(f'选手B胜{winsB}场,胜率{(winsB / n) * 100}%') print('选手A胜{}场,胜率{:0.1%}'.format(winsA, winsA / n)) print('选手B胜{}场,胜率{:0.1%}'.format(winsB, winsB / n)) def gameOver(a, b): return a == 15 or b == 15 def simOneGame(probA, probB): scoreA, scoreB = 0, 0 serving = 'A' while not gameOver(scoreA, scoreB): if serving == 'A': if random() < probA: scoreA += 1 else: serving = 'B' else: if random() < probB: scoreB += 1 else: serving = 'A' return scoreA, scoreB def simNGames(n, probA, probB): winsA, winsB = 0, 0 for i in range(n): scoreA, scoreB = simOneGame(probA, probB) if scoreA > scoreB: winsA += 1 else: winsB += 1 return winsA, winsB def main(): printIntro() probA, probB, n = getInputs() winsA, winsB = simNGames(n, probA, probB) printSummary(winsA, winsB) main()
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵