'此情况下随机选择不起作用?'

2024-10-01 11:29:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正努力做到这一点,这样我就可以从球员名单中随机选择。。。这很简单,我知道,但我不能让它工作,我得到一些随机的字母,比如“I”或“e”,结果是:O

下面是代码的一部分:

print "p.getName()", p.getName()
randomtarget = choice(p.getName())

p是一个玩家列表,getName是获取他们名字的函数,我成功地得到了他们,所以我得到了:

^{pr2}$

很明显,随机目标应该是“brixissuble”,因为它是唯一可能的目标,但我得到的结果是“I”,为什么?我做错什么了?在

提前谢谢!在


Tags: 函数代码目标列表字母玩家名字print
2条回答

你必须返回你选择的元素列表中的一个。在这里输入一个字符串,这样choice将返回该字符串中的一个字符。在

import random
p = ['Brixishuge', 'user2971511', 'sabbahillel']
random.choice(p)

如果你的输入是['brixisshuge'],它将以你期望的方式工作。在

Python Number choice() Method

Description The method choice() returns a random item from a list, tuple, or string.

Syntax Following is the syntax for choice() method:

choice( seq ) Note: This function is not accessible directly, so we need to import random module and then we need to call this function using random static object.

Parameters seq This could be a list, tuple, or string...

Return Value This method returns a random item.

在随机选择从中选择一个列表。在

因为您只给它一个字符串(p.getName()返回一个字符串),所以它正在处理字符串 作为一个字符列表,它从中选择一个字符(在您的例子中是“i”)

你可能是这个意思:

randomtarget = choice([p.getName()])

您可以通过在方括号中放入内容或调用list函数来生成列表。在

^{pr2}$

进一步看,p不是一个球员的名单,而是一个球员。在

如果你想要一个随机玩家的名字,你应该试试这个:

player = choice(list_of_players)
name = player.getName()

相关问题 更多 >