Python打破了一定的数量

时间:2014-08-19 10:06:30

标签: python

全部, 我不是很擅长解释所以我会让我的评论这样做!

#this script is to calculate some of the times table up to 24X24 and also miss some out
#Range of numbers to be calculated
numbers=range(1,25)
for i in numbers:
    for w in numbers:
        print(str(i)+"X"+str(w)+"="+str(i*w))
        #here i want to break randomly (skip some out) e.g. i could be doing the 12X1,12X2 and then 12X5 i have no limit of skips.

更新

很抱歉,如果这不清楚,我希望它能够从内循环中断一段时间

2 个答案:

答案 0 :(得分:0)

您可以使用random.random生成[0.0,1.0]范围内的浮点数。

然后,只有当数字低于可自定义的阈值时,才能打印字符串。例如,在下面的代码中,我使用了< 0.2,这意味着if部分只会执行20%次:{/ p>

from random import random

for i in range(1, 25):
    for w in range(1, 25):
        if (random() < 0.2):
            print('%dX%d=%d' % (i, w, i * w))

答案 1 :(得分:0)

您可以使用itertools.product来简化代码,然后使用random.choice来决定是否跳过每个等式:

from itertools import product
import random

def random_equations(limit):
    for x, y in product(range(1, limit), repeat=2):
        if random.choice((True, False)):
            print("{0}x{1}={2}".format(x, y, x*y))

演示用法:

>>> random_equations(5)
1x1=1
1x2=2
1x3=3
2x2=4
3x1=3
4x2=8

这将大约跳过一半 - 您可以更改您选择的元组(例如((True, True, False))将跳过大约三分之一)或采用类似Enrico's的数字方法来改变比例