我怎样才能使这个代码更“自动化”?

2024-09-28 05:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我昨天编写了这段代码,试图测试Python生成的随机数到底有多随机:

# -*- coding: cp1252 -*-
import random
print "Bienvenido al Analizador del Azar, este programa generará 100 números para aleatorios, para luego dar en tanto por ciento la cantidad de cada uno."
numeros_aleatorios = []
contador = 0
while True:
    namber = random.randint(1,10)
    numeros_aleatorios.append(namber)
    contador += 1
    if contador == 100:
        break
PR1 = float(numeros_aleatorios.count(1)) / 100
PR2 = float(numeros_aleatorios.count(2))/ 100
PR3 = float(numeros_aleatorios.count(3)) / 100
PR4 = float(numeros_aleatorios.count(4)) / 100
PR5 = float(numeros_aleatorios.count(5)) / 100
PR6 = float(numeros_aleatorios.count(6)) / 100
PR7 = float(numeros_aleatorios.count(7)) / 100
PR8 = float(numeros_aleatorios.count(8)) / 100
PR9 = float(numeros_aleatorios.count(9)) / 100
PR10 = float(numeros_aleatorios.count(10)) / 100

print "Hay exactamente un", PR1, "% de 1s"
print "Hay exactamente un", PR2, "% de 2s"
print "Hay exactamente un", PR3, "% de 3s"
print "Hay exactamente un", PR4, "% de 4s"
print "Hay exactamente un", PR5, "% de 5s"
print "Hay exactamente un", PR6, "% de 6s"
print "Hay exactamente un", PR7, "% de 7s"
print "Hay exactamente un", PR8, "% de 8s"
print "Hay exactamente un", PR9, "% de 9s"
print "Hay exactamente un", PR10, "% de 10s"

如你所见,我必须把PR1,PR2,PR3。。。手动使每个百分比,然后写入每个打印以显示结果。我的问题是,有没有办法让它更自动化,这样我就不用独立地写每一行了?这对我的下一个项目非常有用。你知道吗


Tags: countderandomfloatunprintparapr2
1条回答
网友
1楼 · 发布于 2024-09-28 05:21:23

一个collections.Counter将为您完成所有计数,并使用range循环您想要运行的试验数:

from collections import Counter

trial = 100
counts = Counter(random.randint(1,10) for _ in range(trials))
print(counts)
Counter({3: 17, 7: 12, 8: 12, 9: 12, 4: 11, 6: 9, 2: 8, 10: 8, 5: 6, 1: 5})



for i in range(1,11):
    print("Hay exactamente un {}% de {}".format(100 * counts[i] / float(trials),i))

输出:

Hay exactamente un 11.0% de 1
Hay exactamente un 6.0% de 2
Hay exactamente un 12.0% de 3
Hay exactamente un 12.0% de 4
Hay exactamente un 9.0% de 5
Hay exactamente un 4.0% de 6
Hay exactamente un 10.0% de 7
Hay exactamente un 14.0% de 8
Hay exactamente un 12.0% de 9
Hay exactamente un 10.0% de 10

不知道是否正确的顺序!你知道吗

相关问题 更多 >

    热门问题