机器人框架:生成唯一随机数

ven*_*pal 3 robotframework

我必须在机器人框架中生成唯一的随机数.我使用"生成随机字符串"来获取随机数.命令:

${random}   Generate Random String  1   [NUMBERS])
Run Code Online (Sandbox Code Playgroud)

我在for循环中给出了上述语句.现在我能够得到'n'随机数.但它们并不是唯一的.我如何让它们与众不同?

究竟是我的情况:我想要四个独特的随机数,范围从1到10.我试图在for循环中给出生成随机数命令,在第二个循环中我试图将它与第一个随机值进行比较,依此类推.但这不起作用.

是否有任何简单的逻辑可以获得1到10之间的4个唯一随机数?

提前致谢.

omb*_*e42 8

我认为随机模块的样本函数是最优雅的解决方案.这里从1到10包含4个数字中的4个:

${numbers}=    Evaluate    random.sample(range(1, 11), 4)    random
Run Code Online (Sandbox Code Playgroud)

这将返回int的列表.如果你想要数字的字符串表示...

${numbers}=    Evaluate    random.sample([unicode(x) for x in range(1, 11)], 4)    random
Run Code Online (Sandbox Code Playgroud)


Har*_*rri 0

Generate 4 Random And Unique Numbers
    ${numbers}    Create List    1    2    3    4    5
    ...    6    7    8    9    10
    ${random index}    Generate Random String    1    0123456789
    ${random number 1}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random index}    Generate Random String    1    012345678
    ${random number 2}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random index}    Generate Random String    1    01234567
    ${random number 3}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random index}    Generate Random String    1    0123456
    ${random number 4}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random numbers}    Create List    ${random number 1}    ${random number 2}    ${random number 3}    ${random number 4}
    [Return]    ${random numbers}
Run Code Online (Sandbox Code Playgroud)

或使用Python

import random

def generate_4_random_and_unique_numbers():
    pool = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    random_numbers = []
    for index in range (0, 4):
        index = random.randint(0, len(pool)-1)
        random_numbers.append(pool[index])
        del pool[index]

    return random_numbers
Run Code Online (Sandbox Code Playgroud)

一般来说,创建一个可能数字的列表。从该列表中随机选择号码,然后从列表中删除该号码。根据需要重复多次。