如何让用户输入引用Python中的变量?

2024-09-30 20:38:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让用户输入引用我代码中的一些列表。我想这叫命名空间?那么,如果用户输入了'list1'或'list2',我需要对这段代码做些什么来打印用户输入的内容呢?在

list1 = ['cat', 'dog', 'juice']
list2 = ['skunk', 'bats', 'pogo stick']

x = raw_input('which list would you like me to print?')

我计划有很多这样的列表,所以一系列的if…then语句似乎难以控制。在


Tags: 代码用户内容列表空间命名catjuice
2条回答

使用dict的总体思路是好的,但是最好的具体实现可能是:

def pick_one(prompt, **kwds):
  while True:
    x = raw_input(prompt)
    if x in kwds:
      return kwds[x]
    else:
      print 'Please choose one of: ',
      for k in sorted(kwds): print k,
      print

使用,如:

^{pr2}$

关键是,当你要求用户在有限数量的可能性中选择一个时,你总是要检查选择是否是其中之一(毕竟很容易拼写错误等),如果不是,则准确提示(给出可用选项列表),并给用户另一次机会。在

所有种类的改进(例如,有一个最大的尝试次数,然后你决定用户不能随意输入和选择一个;-)都留给读者(不太难,但也不太有趣;-)练习。在

在我现在能想到的情况下,最好有一个字典,其中包含您希望用户能够引用的内容,例如:

my_dict = {
    'list1': ['cat', 'dog', 'juice']
    'list2': ['skunk', 'bats', 'pogo stick']
}

key = raw_input('which list would you like me to print?')

print my_dict[key]

实际上,您可以利用内置的globals(),如下所示:

^{pr2}$

相关问题 更多 >