簡體   English   中英

如何從輸入列表中隨機選擇一個項目?

[英]How to pick a random item from an input list?

我正在制作一個程序,詢問有多少玩家在玩,然后要求輸入這些玩家的名字。 然后,我想讓它打印一個隨機播放器,但我不知道怎么做。

現在的代碼從給定的姓氏中隨機打印一個字母,我認為:

import random

player_numberCount = input("How many players are there: ")
player_number = int(player_numberCount)

for i in range(player_number):
    ask_player = input("name the players: ")

print(random.choice(ask_player))

您需要將輸入的每個玩家名稱添加到列表中。 這是您在代碼中需要的起點:

from random import choice

number_of_players = int(input("How many players are there: "))
players = []

for _ in range(number_of_players):
    players.append(input("name the players: "))

print(choice(players))

該循環在每次迭代時重新分配ask_player變量,擦除先前的值。

大概您打算將每個值保存在列表中:

players = []
for i in range(player_number):
    players.append(input("Player name: "))

print(random.choice(players))

問題是在每次 for 循環迭代中,您都將 ask_player var 重新分配給一個字符串。 當您將一個字符串傳遞給 random.choice(...) 時,它會選擇該字符串的一個隨機字母(因為字符串可以像數組一樣被索引)。 只需在循環之前定義一個數組,並在每次迭代中定義 append:

import random

player_numberCount = input("How many players are there: ")
player_number = int(player_numberCount)

players = []
for i in range(player_number):
    players.append(input(f"name player {i + 1}: "))

print(random.choice(players))
import random

player_number = int(input("How many players are there: "))
player_list = []


for _ in range(player_number):
    ask_player = input("name the players: ")
    player_list.append(ask_player)

print(player_list[random.randint(0, player_number)])

暫無
暫無

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

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