我需要编写一个程序,该程序接受(来自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)
答案 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")