我制作了一款游戏,我需要使用random.choice
:
当用户登录时,他们需要进入随机选择的15个房间之一。如何修改以下代码以使用random.choice
来选择房间?
#login
self.enterRoom("1")
答案 0 :(得分:7)
未使用random.choice
,使用random.randint
:
import random
room = random.randint(1,15)
答案 1 :(得分:3)
你几乎肯定不想使用random.choice
这个; Caner Korkmaz的答案要好得多。
但如果由于某种原因你真的需要使用random.choice
(例如,因为这是家庭作业,你的教授坚持),请参阅the documentation:
random.choice(SEQ)
从非空序列seq返回一个随机元素。如果seq为空,则引发IndexError。
因此,您需要获得包含字符串“1”到“15”的序列。要做到这一点:
rooms = [str(i) for i in range(1, 16)]
然后:
room = random.choice(rooms)
答案 2 :(得分:0)
有多种方法可以解决这个问题。只需选择最适合您的情况并且您发现最具可读性的那个。
random.choice()方法适用于合格选项的数量已在列表中的情况:
>>> rooms = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15']
>>> random.choice(rooms)
'7'
random.randrange()函数在选项为数字且连续的情况下有效(尽管您之后仍需要调用 str ):
>>> str(random.randrange(1, 16))
'2'
从计算机科学的角度来看,最后一个是最优雅的;然而,就明确表达游戏中代码的意图而言,第一个通过说“随机选择可用房间”获胜。