我正在尝试做到这一点,以便从玩家列表中随机选择...这很简单,我知道,但我无法让它工作,我得到一些随机字母,比如“我"或 "e"作为结果 :O
这是代码的一部分:
print "p.getName()", p.getName()
randomtarget = choice(p.getName())
p 是一个玩家列表,getName 是获取他们名字的函数,我成功获取了他们,所以这是我得到的:
22:29:21 [INFO] p.getName() Brixishuge
22:29:21 [INFO] Random target: i
显然,随机目标应该是“Brixishuge”,因为它是唯一可能的目标,但我得到的结果是“i”,为什么?我究竟做错了什么?
提前致谢!
最佳答案
random.choice 获取可供选择的事物列表。
因为你只是给它一个字符串(p.getName()
返回一个字符串)它正在处理字符串
作为字符列表,它从中选择一个字符(在您的情况下为“i”。)
你可能是这个意思:
randomtarget = choice([p.getName()])
您可以通过将某些内容放在方括号中或调用列表函数来创建列表。
l = [p.getName()]
l = list(p.getName())
进一步阅读后,p 似乎不是玩家列表,而是一个玩家。
如果你想要一个随机玩家的名字,你应该试试这个:
player = choice(list_of_players)
name = player.getName()
关于python - 随机选择在这种情况下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209811/