0

我已经建立了一个游戏,我需要使用random.choice

当用户登录时,他们需要进入随机选择的 15 个房间之一。如何修改以下代码以用于random.choice选择房间?

#login
self.enterRoom("1")
4

3 回答 3

7

不使用random.choice
使用random.randint

import random
room = random.randint(1,15)
于 2012-09-27T18:58:21.447 回答
3

您几乎肯定不想为此使用random.choice;Caner Korkmaz 的回答要好得多。

但是如果出于某种原因您确实需要使用random.choice(例如,因为这是家庭作业并且您的教授坚持),请参阅文档

随机选择(序列)

从非空序列 seq 返回一个随机元素。如果 seq 为空,则引发 IndexError。

所以,你需要得到一个包含字符串“1”到“15”的序列。要做到这一点:

rooms = [str(i) for i in range(1, 16)]

然后:

room = random.choice(rooms)
于 2012-09-27T19:04:38.977 回答
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'

对于计算机科学的观点,最后一个是最优雅的;然而,就在游戏中清楚地表达代码的意图而言,第一个获胜者会说“随机选择可用房间”。

于 2017-04-28T04:07:28.833 回答