我必须在机器人框架中生成唯一的随机数.我使用"生成随机字符串"来获取随机数.命令:
${random} Generate Random String 1 [NUMBERS])
Run Code Online (Sandbox Code Playgroud)
我在for循环中给出了上述语句.现在我能够得到'n'随机数.但它们并不是唯一的.我如何让它们与众不同?
究竟是我的情况:我想要四个独特的随机数,范围从1到10.我试图在for循环中给出生成随机数命令,在第二个循环中我试图将它与第一个随机值进行比较,依此类推.但这不起作用.
是否有任何简单的逻辑可以获得1到10之间的4个唯一随机数?
提前致谢.
我认为随机模块的样本函数是最优雅的解决方案.这里从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)
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)
一般来说,创建一个可能数字的列表。从该列表中随机选择号码,然后从列表中删除该号码。根据需要重复多次。
| 归档时间: |
|
| 查看次数: |
18323 次 |
| 最近记录: |