当输入一个字符串时,数组输入第二个整数

问题描述:

当我在数组中插入一个字符串时,我希望发生的是它拒绝该字符串,并给出解释数组中只允许整数的消息。而是重复之前插入的整数。当输入一个字符串时,数组输入第二个整数

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打印错误信息后,像你这样非正输入一样。

+0

完美!感谢您的解释。 – JordanDevelop 2013-03-20 19:52:01