我试图弄清楚如何检查输入的格式,然后将其拆分为字典(如果正确)。我一直在尝试使用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')
谢谢!
答案 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
强制转换为int
并except
修正“非整数”输入的错误。基本上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')