Python中验证用户的输入是否正确(python判断用户输入的类型)
Python编程中经常需要用户输入数据,我们不仅想获得用户输入,还想确保输入正确的类型。通过在处理之前先检查用户的输入,进一步避免程序中的错误,在因输入问题导致程序崩溃之前进行处理。
那么我们将如何做到这一点呢?我们检查输入,如果它有效,则返回它。如果它无效,应该告诉用户,然后请用户重新输入。换句话说,我们希望继续提出问题,直到我们得到正确的答案。这样就需要一个循环,如果用户输入正确,跳出循环。
用伪代码描述这个过程:
while True:
m=input('请输入:')
if 输入正确:
break
print('输入错误。')
使用条件True设置无限循环直到break中断跳出。从用户那里获得输入,使用 if 语句来检查有效性,如果输入正确,跳出循环,
否则,告诉用户输入错误,继续循环,重新输入。
示例:
fruit=['苹果','香蕉','芒果']
while True:
m=input("你喜欢吃'苹果'?'香蕉'?'芒果'?")
if m in fruit:
break
print("输入错误。请重新输入!")
print("我也喜欢吃{}。".format(m))
输出:
你喜欢吃'苹果'?'香蕉'?'芒果'?菠萝
输入错误。请重新输入!
你喜欢吃'苹果'?'香蕉'?'芒果'?桔子
输入错误。请重新输入!
你喜欢吃'苹果'?'香蕉'?'芒果'?芒果
我也喜欢吃芒果。
示例:
#要求用户输入一个正整数
while True:
num=input('请输入一个正整数: ')
if num.isdigit():
number=int(num)
break
print(num,'不是一个数,请重新输入!')
print('你输入的正整数是:',number)
输出:
请输入一个正整数: 1.5
1.5不是一个正整数,请重新输入!
请输入一个正整数: 2.0
2.0不是一个正整数,请重新输入!
请输入一个正整数: 2
你输入的正整数是: 2
Python isdigit() 方法检测字符串是否只由数字组成,只对 0 和 正数有效。上面的示例只能接受输入0和正整数,不能输入负数和浮点数。
我们可改进代码,如果想要一个浮点数,使用if语句会显得复杂,我们使用try/except 块来做到这一点:
while True:
num=input('请输入一个数: ')
try:
number = float(num)
break
except ValueError:
print(num,'不是一个数,请重新输入!')
print('你输入的数是:',number)
输出:
请输入一个数: abc
abc 不是一个数,请重新输入!
请输入一个数: 3.14
你输入的数是: 3.14
感谢阅读,关注我,精彩继续!