1

我对python很陌生,相信我,我一直在无休止地寻找解决方案,但我就是无法得到它。

我有一个带有监控图列表的 csv。使用下面的代码,我已经能够显示 2dlist 并让用户根据列表索引输入一个数字来选择一个特定的图(其中有 11 个)。

但是当提示用户选择时,我想包括一个选项'....或按'q'退出'。现在显然 raw_input 设置为仅接收整数,但我怎样才能接受列表中的数字或“q”?

如果我从 raw_ 输入中删除“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"
4

2 回答 2

1
choice = raw_input("Select a monitoring plot from the list: ")

if choice == 'q':
    break

plotSelect = int(choice)
selected = dataList[plotSelect+1]

检查用户是否进入q并明确退出循环(而不是依赖于抛出的异常)。仅在此检查后将其输入转换为 int。

于 2013-04-21T00:40:30.053 回答
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"
于 2013-04-21T00:41:19.837 回答