我已经建立了一个游戏,我需要使用random.choice
:
当用户登录时,他们需要进入随机选择的 15 个房间之一。如何修改以下代码以用于random.choice
选择房间?
#login
self.enterRoom("1")
不使用random.choice
,
使用random.randint
:
import random
room = random.randint(1,15)
您几乎肯定不想为此使用random.choice
;Caner Korkmaz 的回答要好得多。
但是如果出于某种原因您确实需要使用random.choice
(例如,因为这是家庭作业并且您的教授坚持),请参阅文档:
随机选择(序列)
从非空序列 seq 返回一个随机元素。如果 seq 为空,则引发 IndexError。
所以,你需要得到一个包含字符串“1”到“15”的序列。要做到这一点:
rooms = [str(i) for i in range(1, 16)]
然后:
room = random.choice(rooms)
有多种方法可以解决这个问题。只需选择最适合您的情况并且您认为最易读的那个。
当符合条件的选择的数量已经在列表中时, 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'
对于计算机科学的观点,最后一个是最优雅的;然而,就在游戏中清楚地表达代码的意图而言,第一个获胜者会说“随机选择可用房间”。