我对python很新,相信我,我已经无休止地寻找解决方案,但我无法得到它。
我有一个带有监控图表列表的csv。使用下面的代码,我已经能够显示2dlist并让用户输入一个数字来根据列表索引选择特定的图(其中有11个)。
但是当提示用户选择时,我想要包含一个选项'....或按'q'退出'。现在显然raw_input被设置为仅接收整数,但我如何接受列表中的数字或'q'?
如果我从raw_ input中删除'int',它会一直提示再次输入,打印异常行。我可以让它接受索引号(0-9)或'q'吗?
for item in enumerate(dataList[1:]):
print "[%d] %s" % item
while True:
try:
plotSelect = int(raw_input("Select a monitoring plot from the list: "))
selected = dataList[plotSelect+1]
print 'You selected : ', selected[1]
break
except Exception:
print "Error: Please enter a number between 0 and 9"
答案 0 :(得分:1)
choice = raw_input("Select a monitoring plot from the list: ")
if choice == 'q':
break
plotSelect = int(choice)
selected = dataList[plotSelect+1]
检查用户是否输入q
并明确地突破循环(而不是依赖于抛出的异常)。只有在检查后才将其输入转换为int。
答案 1 :(得分:1)
在检查它不是'q'
:
try:
response = raw_input("Select a monitoring plot from the list: ")
if response == 'q':
break
selected = dataList[int(plotSelect) + 1]
print 'You selected : ', selected[1]
break
except ValueError:
print "Error: Please enter a number between 0 and 9"