如何显示无效输入
How to show invalid input
我的任务是:
编写一个程序,重复提示用户输入整数,直到用户输入 'done'。输入 'done' 后,打印出最大和最小的数字。如果用户输入的不是有效数字,则用 try/except 捕获它并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。
我想忽略任何无效整数并在计算最大值和最小值后打印“无效输出”消息number.But它总是在用户输入后立即打印无效消息.我该如何解决这个问题?
提前致谢。
代码:
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
n = int(num)
except:
print('Invalid input')
if largest is None:
largest=n
elif n>largest:
largest=n
elif smallest is None:
smallest=n
elif n<smallest:
smallest=n
print("Maximum", largest)
print('Minimum', smallest)
尝试删除 try 块中的 (int)。因为你只想在 try 块中输入整数,所以如果不满足整数输入的条件,它将执行 except 块。
您的代码在 try 块中应如下所示:
尝试:
n = 数
您可以将 invalid output
存储为布尔变量
largest = None
smallest = None
is_invalid=False
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
n = int(num)
except:
is_invalid=True
if largest is None:
largest=n
elif n>largest:
largest=n
elif smallest is None:
smallest=n
elif n<smallest:
smallest=n
print("Maximum", largest)
print('Minimum', smallest)
if is_invalid:
print('Invalid Input')
这可以是一个解决方案
largest = None
smallest = None
errors = False
while True:
num = input('Please type a number : ')
if num == 'done':
break
try:
number = int(num)
#your logical operations and assignments here
except ValueError:
errors = True
continue
if errors:
print('Invalid input')
else:
print('Your Results')
希望这对您有所帮助:)
如果你熟悉列表,你可以使用列表来有效地解决你的问题,
这是您的代码的修改版本,它使用列表,
num1=[]
while True:
num = input("Enter a number: ")
num1.append(num)
if num == "done":
break
for i in num1:
try:
i = int(i)
except:
print('Invalid input:',i)
num1.remove(i)
print("Maximum", max(num1))
print('Minimum', min(num1))
输出:
Enter a number: 34
Enter a number: 57
Enter a number: 89
Enter a number: ds
Enter a number: 34
Enter a number: do
Enter a number: done
Invalid input: ds
Invalid input: do
Maximum 89
Minimum 34
希望这对您有所帮助,如果有任何不正确的地方,请告诉我。
我的任务是:
编写一个程序,重复提示用户输入整数,直到用户输入 'done'。输入 'done' 后,打印出最大和最小的数字。如果用户输入的不是有效数字,则用 try/except 捕获它并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。
我想忽略任何无效整数并在计算最大值和最小值后打印“无效输出”消息number.But它总是在用户输入后立即打印无效消息.我该如何解决这个问题? 提前致谢。
代码:
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
n = int(num)
except:
print('Invalid input')
if largest is None:
largest=n
elif n>largest:
largest=n
elif smallest is None:
smallest=n
elif n<smallest:
smallest=n
print("Maximum", largest)
print('Minimum', smallest)
尝试删除 try 块中的 (int)。因为你只想在 try 块中输入整数,所以如果不满足整数输入的条件,它将执行 except 块。
您的代码在 try 块中应如下所示: 尝试: n = 数
您可以将 invalid output
存储为布尔变量
largest = None
smallest = None
is_invalid=False
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
n = int(num)
except:
is_invalid=True
if largest is None:
largest=n
elif n>largest:
largest=n
elif smallest is None:
smallest=n
elif n<smallest:
smallest=n
print("Maximum", largest)
print('Minimum', smallest)
if is_invalid:
print('Invalid Input')
这可以是一个解决方案
largest = None
smallest = None
errors = False
while True:
num = input('Please type a number : ')
if num == 'done':
break
try:
number = int(num)
#your logical operations and assignments here
except ValueError:
errors = True
continue
if errors:
print('Invalid input')
else:
print('Your Results')
希望这对您有所帮助:)
如果你熟悉列表,你可以使用列表来有效地解决你的问题, 这是您的代码的修改版本,它使用列表,
num1=[]
while True:
num = input("Enter a number: ")
num1.append(num)
if num == "done":
break
for i in num1:
try:
i = int(i)
except:
print('Invalid input:',i)
num1.remove(i)
print("Maximum", max(num1))
print('Minimum', min(num1))
输出:
Enter a number: 34
Enter a number: 57
Enter a number: 89
Enter a number: ds
Enter a number: 34
Enter a number: do
Enter a number: done
Invalid input: ds
Invalid input: do
Maximum 89
Minimum 34
希望这对您有所帮助,如果有任何不正确的地方,请告诉我。