我想阻止用户输入数字以节省程序中的麻烦。我知道如何使用try,除了int(input())以防止在需要整数时输入字符串但是我想知道str(input())是否有类似的东西。
例如,如果要求用户输入他们的姓名并输入“1994”,他们就会收到输入整数的错误信息。
答案 0 :(得分:2)
使用try-except
else
块,如果在转换为{{{}期间发生异常 ,则会引发ValueError
1}}(表示输入 int
:
int
这将通过在v = input("> ")
try:
_ = int(v)
except:
pass
else:
raise ValueError("input supplied should be of type 'str'")
块中引发异常来捕获输入的任何数字:
else
并在> 1992
ValueErrorTraceback (most recent call last)
<ipython-input-35-180b61d98820> in <module>()
5 pass
6 else:
----> 7 raise ValueError("input supplied should be of type 'str'")
ValueError: input supplied should be of type 'str'
:
pass
允许字符串
except
或者,您也可以使用> jim
v
Out[37]: 'jim'
和any
执行此操作:
isdigit
这将检查v = input("> ")
if any(s.isdigit() for s in v):
raise ValueError("input supplied should be of type 'str'")
字符是否为数字,如果是,则会引发错误。
你也可以防止漂浮,但这开始变得丑陋:
any