在我的Python脚本中,我有一个接受用户输入的菜单,然后根据该输入将打印一些包含信息的行。它看起来像这样:
while True:
# Print the menu
choice = raw_input('Pick an option: ')
if choice == 'item_1':
# Display item_1's contents
elif choice == 'item_2':
# Display item_2's contents
# etc...
每个item_
显示的信息略大于我想要的信息,因此我想将每个信息分成多个页面。
要访问那些我希望它基于用户输入的不同页面,但不是每个页面都有完全不同的输入,我希望用户能够在原始输入旁边写入页码(两者之间的空间)。因此,如果用户输入item_1
或item_1 1
,则会获得item_1
的第一页,如果他们输入item_2 2
,则会获得item_2
的第二页,并且等等。
如何将用户输入分成几部分才能执行上述操作?
=============================================== ============================
修改
我对每个item
以及它的作用有点误导。在剧本的早期我有这个:
def item_1():
# Print line 1
# Sleep
# Print line 2
# Sleep
# Print line 3
def item_2():
# Print line 1
# Sleep
# Print line 2
# Sleep
# Print line 3
我真正想要做的是定义更多的功能,每个页面一个,然后当用户在`item'之后输入一个数字时调用它们。 (有点像解析参数)。像这样:
输入item_1
或item_1 1
>>输出item_1()
输入item_1 2
>>输出item_1_p2()
输入item_3 4
>>输出item_3_p4()
并且,如第一个输入示例所示,如果输入中没有提到任何页面,我希望显示给定输入的第一页。
答案 0 :(得分:2)
使用包含每个项目list
字符串的字典:
book = {'item_1':['page 1', 'page 2', 'page 3'], 'item_2':['page 1', 'page 2', 'page 3']}
while True:
choice = raw_input('Pick an option: ').split()
if not choice:
break
if len(choice) == 1:
for page in book[choice[0]]:
print page
else:
print book[choice[0]][int(choice[1])-1]
首先,它将输入拆分为空格。如果用户只是按 Enter 没有字符,它就会停止。否则,它将执行以下操作:
'item_x'
,所以打印整个条目'item_x'
以及页码,请打印正确的页面