当输入一个字符串时,数组输入第二个整数
问题描述:
当我在数组中插入一个字符串时,我希望发生的是它拒绝该字符串,并给出解释数组中只允许整数的消息。而是重复之前插入的整数。当输入一个字符串时,数组输入第二个整数
import sys
ArrayWidth = 9
mmWidth = 22
ArrayDivider = '=' * 33
ArrayDivider = ArrayDivider.center(ArrayWidth)
mmDivider = '=' * 28
mmDivider = mmDivider.center(mmWidth)
MaxAndMin = 'Maximum & Minimum'
MaxAndMin = MaxAndMin.center(mmWidth)
Array = 'Array'
Array = Array.center(ArrayWidth)
Numbers = []
while True:
NumberInput = input('Enter a whole number (Exit the loop by pressing "0"): ')
try:
NumberInput2 = int(NumberInput)
if NumberInput2 == 0:
break
if NumberInput2 <= 0:
print('Please enter a number greater then 0.');
continue;
except ValueError:
print("Error. Non-numeric data was entered.")
except:
print("Error with input...")
Numbers.append(NumberInput2)
print('\n'+ArrayDivider+Array+ArrayDivider)
print(sorted(Numbers, key=int),'\n')
print(mmDivider+MaxAndMin+mmDivider)
print('Maximum Number = {}'.format(max(Numbers)))
print('Minimum Number = {}'.format(min(Numbers)))
答
无论是否抛出异常,您都会做Numbers.append(NumberInput2)
。当int
增加ValueError
,NumberInput2
不会被重新分配并保留旧值。
试试这个:
while True:
NumberInput = input('Enter a whole number (Exit the loop by pressing "0"): ')
try:
NumberInput2 = int(NumberInput)
if NumberInput2 == 0:
break
if NumberInput2 <= 0:
print('Please enter a number greater then 0.');
continue
Numbers.append(NumberInput2)
except ValueError:
print("Error. Non-numeric data was entered.")
except:
print("Error with input...")
或者,你可以continue
打印错误信息后,像你这样非正输入一样。
完美!感谢您的解释。 – JordanDevelop 2013-03-20 19:52:01