获取用户输入为int或str

时间:2013-04-21 00:33:53

标签: python string input int 2d

我对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"

2 个答案:

答案 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"