python - 当输入字符串时数组输入第二个整数

标签 python

当我在数组中插入一个字符串时,我期望发生的情况是它拒绝该字符串并给出一条消息,解释如何在数组中只允许使用整数。相反,之前插入的整数会重复。

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...")

或者,您可以在打印错误消息后继续,就像处理非正输入一样。

关于python - 当输入字符串时数组输入第二个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533273/

相关文章:

python - 多索引失败

python - 带参数的多行字符串。如何申报?

python - Hold 对 pyplot 不起作用

python - 重复错误

python - 通过线程并行化缓慢的 api 调用

python - 如何从 {index : value}? 格式的列表创建字典

python - Pandas Dataframe Performance 应用带移位功能

python - 查找opencv矩形的顶部和底部的y坐标

python - 将多行粘贴到 IDLE

python - Nginx 的工作进程挂起并占用完整的 CPU