您如何为错误的用户输入编写错误消息?

时间:2019-01-13 17:13:36

标签: python-3.x

我需要编写一个程序,该程序接受(来自STDIN的)数字N,然后打印N行,其中包含“ Hello”。 0 <输入中的最大数量<= 100

我正在使用Python 3。

用户输入= abc

如果用户输入的不是整数,我尝试使用if / elif / else生成“错误”消息。但是,我认为我的最后一个elif语句与以下事实相反:我将“行”输入称为整数。

当我使用字符串作为测试用例时,出现编码错误:

Traceback (most recent call last):
  File "/temp/file.py", line 3, in <module>
  line = int(sys.stdin.readline())
ValueError: invalid literal for int() with base 10: 'abc'

代码:

import sys

line = int(sys.stdin.readline())
if line<1:
  print("Error")
elif line>100:
  print("Error")
elif line != int:
  print("Error")
else:
  print("Hello\n" * line)

1 个答案:

答案 0 :(得分:0)

您要使用try/except语句:

>>> try:
  l = int(input())
except ValueError:
    print("Invalid Input")


abc
Invalid Input

如果您希望它一直提示用户直到他们输入有效的输入,请使用while循环:

while True:
    try:
        l = int(input())
        break
    except ValueError:
        print("Invalid Input")