【发布时间】:2016-09-21 10:06:55
【问题描述】:
我想阻止用户输入数字以节省程序中的麻烦。我知道如何使用 try,除了 int(input()) 以防止在需要整数时输入字符串,但我想知道 str(input()) 是否可以实现类似的事情。
例如,如果要求用户输入他们的姓名并且他们输入“1994”,他们将收到输入整数的错误消息。
【问题讨论】:
-
对
int(input())使用相同的try-except,但现在将引发的异常视为“一切正常”并将成功转换为“出现问题”? -
请注意,尝试以这种方式过滤输入是……奇怪。当然,合法的
int(可能)不是合法名称。但是float、list等都不是合法的。试图将不良输入列入黑名单是徒劳的;白名单最终会变得很棘手,因为它很容易忽略合法字符(例如,空格、撇号和连字符都出现在正常名称中)。我会避免尝试将特定模式列入黑名单,而只是接受它们给你的东西;毕竟,恰好包含数字的str并不比名称!@#$%^非法。
标签: python string python-3.x input