检查用户输入的格式,然后将其拆分为字典

时间:2018-12-03 23:08:41

标签: python python-3.x

我试图弄清楚如何检查输入的格式,然后将其拆分为字典(如果正确)。我一直在尝试使用isinstance()来处理字符串部分。我意识到这是行不通的,因为即使将输入分成字符串,并且输入应为整数,输入还是一个字符串。即使将拆分后的条目作为str输入,我该如何检查拆分后的条目是否为int?

到目前为止,这是我的代码:

##Enter title and column headers.

dataTitle = input('Enter a title for the data:\n')
print('You entered: %s\n' % dataTitle)

col1 = input('Enter the column 1 header:\n')
print('You entered: %s\n' % col1)

col2 = input('Enter the column 2 header:\n')
print('You entered: %s\n' % col2)

##Get data points.

data = {}

while True:
    dataInput = input('Enter a data point (-1 to stop input):\n')
    if dataInput == '-1':
        break
    else:
        x = dataInput.replace(' ', '')
        x = dataInput.split(',')
        if isinstance(x[0], str) & isinstance(x[1], int):
            data.update({x[0], x[1]})
            print(data)
        else:
            print('ERROR')

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用EAFP原理进行操作

try:
    is_int = int(thing)
except Exception as e:
    # cannot be cast to an int, so do other thing

答案 1 :(得分:0)

一种方法是将try强制转换为intexcept修正“非整数”输入的错误。基本上int('5')返回5,而int('a')引发ValueError。您可以利用它...

答案 2 :(得分:-1)

使用EAFP(比许可更容易获得宽恕)原则:

x = dataInput.replace(' ', '')
x = dataInput.split(',')
try:
    data[x[0]] = int(x[1])
except ValueError:
    print('ERROR')