鱼C论坛

 找回密码
 立即注册
查看: 1244|回复: 9

[已解决]求大佬帮忙 骰子模拟器

[复制链接]
发表于 2020-11-23 14:52:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
制作一个骰子模拟器,并检查模拟性能。
从标准输入输入掷骰子的模拟次数,然后模拟掷骰子。逐行打印骰子每个面的计数数。示例输入和输出如下。
此外,您必须输出重复掷骰子结果的平均值(平均值),其格式类似于0.00。
您可以使用random.randint()来生成(伪)随机数。从输入中,给出了一个非负整数。
如果输入0,程序必须成功完成。对于输出的每一行,在':'和计数数之间需要一个空格。

输入:
10
0
输出
1: 3
2: 1
3: 2
4: 0
5: 1
6: 3
Mean: 3.40
最佳答案
2020-11-23 17:36:49
Tac 发表于 2020-11-23 17:21
输入10或者0都报错是为什么啊?

报错是因为0次的话除以0报错
  1. import random

  2. times = int(input())
  3. a=1
  4. while a!=0:
  5.     a=int(input())

  6. lst = [random.randint(1,6) for i in range(times)]

  7. try:
  8.     mean = sum(lst)/times
  9. except:
  10.     mean = 0

  11. for i in range(1,7):
  12.    
  13.     print('%s: %s'%(i,lst.count(i)))
  14.    
  15. print('Mean: %.2f'%mean)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-23 15:31:47 | 显示全部楼层
看错了。。。。编辑中。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-23 16:07:12 | 显示全部楼层
本帖最后由 逃兵 于 2020-11-23 16:23 编辑
  1. import random

  2. times=int(input('骰子次数:'))

  3. lst = [random.randint(1,6) for i in range(times)]

  4. mean = sum(lst)/times

  5. for i in range(1,7):
  6.    
  7.     print('%s: %s'%(i,lst.count(i)))
  8.    
  9. print('Mean: %.2f'%mean)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-23 16:21:14 | 显示全部楼层
输入0必须完成是什么意思?
  1. import random

  2. def run(n):
  3.     count=[]
  4.     for i in range(n):
  5.         count.append(random.randint(1,6))
  6.    
  7.     for k in set(count):
  8.         print(f'{k}: {count.count(k)}')
  9.         
  10.     print(f'Mean: {sum(count)/len(count)}')

  11. run(int(input("输入测试次数:")))

  12.    
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 16:54:58 | 显示全部楼层
大裤衩子 发表于 2020-11-23 16:21
输入0必须完成是什么意思?

就是输入为0时要可以成功运行,还有平均值要求保留两位小数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 16:57:07 | 显示全部楼层

输入为0时要求可以成功运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-23 17:14:09 | 显示全部楼层
Tac 发表于 2020-11-23 16:57
输入为0时要求可以成功运行
  1. import random

  2. a=int(input(''))

  3. while a!=0:
  4.     times = a
  5.     a=int(input(''))
  6.    

  7. lst = [random.randint(1,6) for i in range(times)]

  8. mean = sum(lst)/times

  9. for i in range(1,7):
  10.    
  11.     print('%s: %s'%(i,lst.count(i)))
  12.    
  13. print('Mean: %.2f'%mean)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 17:21:11 | 显示全部楼层

输入10或者0都报错是为什么啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-23 17:36:49 | 显示全部楼层    本楼为最佳答案   
Tac 发表于 2020-11-23 17:21
输入10或者0都报错是为什么啊?

报错是因为0次的话除以0报错
  1. import random

  2. times = int(input())
  3. a=1
  4. while a!=0:
  5.     a=int(input())

  6. lst = [random.randint(1,6) for i in range(times)]

  7. try:
  8.     mean = sum(lst)/times
  9. except:
  10.     mean = 0

  11. for i in range(1,7):
  12.    
  13.     print('%s: %s'%(i,lst.count(i)))
  14.    
  15. print('Mean: %.2f'%mean)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 17:43:26 | 显示全部楼层
本帖最后由 Tac 于 2020-11-23 17:44 编辑
逃兵 发表于 2020-11-23 17:36
报错是因为0次的话除以0报错


多谢 懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 20:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表