Tac 发表于 2020-11-23 14:52:37

求大佬帮忙 骰子模拟器

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

输入:
10
0
输出
1: 3
2: 1
3: 2
4: 0
5: 1
6: 3
Mean: 3.40

wp231957 发表于 2020-11-23 15:31:47

看错了。。。。编辑中。。。。

逃兵 发表于 2020-11-23 16:07:12

本帖最后由 逃兵 于 2020-11-23 16:23 编辑

import random

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

lst =

mean = sum(lst)/times

for i in range(1,7):
   
    print('%s: %s'%(i,lst.count(i)))
   
print('Mean: %.2f'%mean)

大裤衩子 发表于 2020-11-23 16:21:14

输入0必须完成是什么意思?
import random

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

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

   

Tac 发表于 2020-11-23 16:54:58

大裤衩子 发表于 2020-11-23 16:21
输入0必须完成是什么意思?

就是输入为0时要可以成功运行,还有平均值要求保留两位小数

Tac 发表于 2020-11-23 16:57:07

逃兵 发表于 2020-11-23 16:07


输入为0时要求可以成功运行

逃兵 发表于 2020-11-23 17:14:09

Tac 发表于 2020-11-23 16:57
输入为0时要求可以成功运行

import random

a=int(input(''))

while a!=0:
    times = a
    a=int(input(''))
   

lst =

mean = sum(lst)/times

for i in range(1,7):
   
    print('%s: %s'%(i,lst.count(i)))
   
print('Mean: %.2f'%mean)

Tac 发表于 2020-11-23 17:21:11

逃兵 发表于 2020-11-23 17:14


输入10或者0都报错是为什么啊?

逃兵 发表于 2020-11-23 17:36:49

Tac 发表于 2020-11-23 17:21
输入10或者0都报错是为什么啊?

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

times = int(input())
a=1
while a!=0:
    a=int(input())

lst =

try:
    mean = sum(lst)/times
except:
    mean = 0

for i in range(1,7):
   
    print('%s: %s'%(i,lst.count(i)))
   
print('Mean: %.2f'%mean)

Tac 发表于 2020-11-23 17:43:26

本帖最后由 Tac 于 2020-11-23 17:44 编辑

逃兵 发表于 2020-11-23 17:36
报错是因为0次的话除以0报错

多谢 懂了
页: [1]
查看完整版本: 求大佬帮忙 骰子模拟器