首页 > 解决方案 > 我想弄清楚怎么做

问题描述

围绕问题编写代码

import random 

from random import randint 

x = random.randint(1,3)

dis = {'5','6','9','4','7','8'}

f = ['Left' , 'Right' , 'Forward']

问题区域,我希望在显示方向后直接走距离。

每个方向应该只出现一次。

for i in range(x):

    print('You can move ' + ''.join(" ".join(random.sample(f, 1) + random.sample(dis, 1 )))+" meters")

概述

所以基本上我正在尝试生成字符串,告诉用户他们可以移动的方向以及基于随机选择的距离。然而,该程序对我提出了挑战,因为我试图让它将方向和距离连接在一起。x根据程序生成的数字,将相关的方向和距离放在一起。

例如: 使用此代码会产生:

print('You can move ' + ''.join(" ".join(random.sample(f, x) + random.sample(dis, x )))+" meters")

你可以向前 左 右 9 4 5 米

围绕问题的代码部分下的代码使用了一个 for 循环,该循环从中获取随机生成的数字x并使其循环多次。我最初认为这将是最终解决方案,但是,我尝试运行它并且方向出现了不止一次(这比我希望的要多一点)。真的,我真的想要一个给出方向的解决方案和距离只有一次,格式如下:

您可以向右移动 5 米

你可以向前移动 9 米

你可以向左移动 8 米

标签: pythonpython-3.x

解决方案


这个怎么样:

import random


dis = ['5','6','9','4','7','8']
f = ['Left' , 'Right' , 'Forward']

f_count = len(f)
for i in range(0, f_count):
    x = random.randint(0, len(f)-1)
    y = random.randint(0, len(dis)-1)
    dir = f[x]
    print('You can move ' + dir + " "+ dis[y] + " meters")
    f.pop(x)
    dis.pop(y)

推荐阅读