2024-09-30 00:37:14 发布
网友
我试图定义一个函数来选择一个列表。我正在写一篇冒险小说。我选择将房间表示为列表,包括描述、怪物等等。 现在我想定义一个函数get\u room(id)来为我提供正确的房间
Room1=[description1,monster1] Room2=[description2,monster2]
我想我可以试着列一张单子,从中挑选出合适的房间。但这不是更慢吗? 我是新的编程,所以我宁愿如果解决方案不涉及类,如果在所有可能的。我使用的是python2.7.2。你知道吗
我认为你可以用一个唯一的变量来声明你的房间:
valid_rooms = [['description1', 'monster1'], ['description2', 'monster2']]
这样就更容易操纵它们了。 获取用户所需职位的示例:
var = raw_input("Please enter room number: ") print("you entered"), var selectedRoom = int(var) print( "room index %d : %s" % (selectedRoom, valid_rooms[selectedRoom]))
重要:我强烈建议您测试用户输入的int转换:
try: myint = int(var) except ValueError: print("Sorry you do not enter a valid INTEGER!")
备注:在提议的场景中,函数get\u room()将非常简单(可能不太有用)
def get_room(id): return valid_rooms[id]
注意在python3.x中raw_input是renameinput。你知道吗
raw_input
input
如果您的房间id是整数,则应使用列表。你知道吗
rooms = [Room1, Room2] # I assume you want to assign your rooms a number from 1 to ... def get_room(id): return rooms[id - 1]
如果您的房间不是整数,而是字符串,那么您应该使用dictionary。你知道吗
rooms = { "room1": Room1, "room2": Room2 } def get_room(id): return rooms[id]
在这两种情况下,无论何时使用dictionary或list,都应该假设对元素的访问非常快。这是一个恒定的时间,这意味着每当字典/列表有10个、100个或100000个元素时,从中选择元素将花费相同的时间。你知道吗
您可以这样使用dictionary:
dictionary
dict = { 'Room1' : ['description1','monster1'], 'Room2' : ['description2','monster2'] }
而不是像这样称呼他们:
print dict['Room1']
我认为你可以用一个唯一的变量来声明你的房间:
这样就更容易操纵它们了。 获取用户所需职位的示例:
重要:我强烈建议您测试用户输入的int转换:
备注:在提议的场景中,函数get\u room()将非常简单(可能不太有用)
注意在python3.x中
raw_input
是renameinput
。你知道吗如果您的房间id是整数,则应使用列表。你知道吗
如果您的房间不是整数,而是字符串,那么您应该使用dictionary。你知道吗
在这两种情况下,无论何时使用dictionary或list,都应该假设对元素的访问非常快。这是一个恒定的时间,这意味着每当字典/列表有10个、100个或100000个元素时,从中选择元素将花费相同的时间。你知道吗
您可以这样使用
dictionary
:而不是像这样称呼他们:
相关问题 更多 >
编程相关推荐