簡體   English   中英

我想弄清楚怎么做

[英]I want to figure out how to make t

解決問題的代碼

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米

這個怎么樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM