Python 我想弄清楚怎么做t 围绕问题编写代码

Python 我想弄清楚怎么做t 围绕问题编写代码,python,python-3.x,Python,Python 3.x,问题区域,在显示方向后,我希望距离直接到达该区域 每个方向只能出现一次 for i in range(x): print('You can move ' + ''.join(" ".join(random.sample(f, 1) + random.sample(dis, 1 )))+" meters") 概述 因此,本质上,我试图生成字符串,告诉用户他们可以移动的方向,以及根据随机选择移动的距离。然而,当我试图让程序将方向和距离连接在一起时,该程序对我提出了挑战。根据x生成的数字,

问题区域,在显示方向后,我希望距离直接到达该区域

每个方向只能出现一次

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米

这个怎么样:

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)

您可以像示例中那样使用
random.sample()
方法。只需使用
zip()
方法将来自dis和f的随机采样值绑定在一起:

import random

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

for direction, d in zip(random.sample(f, len(f)), random.sample(dis, len(f))):
    print('You can move {} {} meters'.format(direction, d))
这将打印例如:

You can move Forward 9 meters
You can move Left 5 meters
You can move Right 8 meters
You can move Forward 9 meters
You can move Left 5 meters
You can move Right 8 meters