我可以在python中使用带有一些随机错误处理值的except函数吗?

我可以在python中使用带有一些随机错误处理值的except函数吗?,python,python-3.x,error-handling,Python,Python 3.x,Error Handling,如果输入为“键入数字”,则此代码将执行错误处理 等等等等等等 但是我如何执行错误处理来检查某些内容是否符合格式,例如,让我们尝试检查输入是否符合格式(和空格只是为了使我键入的短语不会消失)?作为该格式的一个示例,类似于f/16 我认为应该是正确的代码与上面的代码类似,只是将ValueError替换为其他代码。但是,如果我错了,它的本意是什么?正则表达式对于输入验证很有用,您可以尝试以下方法: import re while True: try: a = input("typ

如果输入为“键入数字”,则此代码将执行错误处理

等等等等等等

但是我如何执行错误处理来检查某些内容是否符合格式,例如,让我们尝试检查输入是否符合格式(和空格只是为了使我键入的短语不会消失)?作为该格式的一个示例,类似于
f/16


我认为应该是正确的代码与上面的代码类似,只是将ValueError替换为其他代码。但是,如果我错了,它的本意是什么?

正则表达式对于输入验证很有用,您可以尝试以下方法:

import re
while True:
  try:
    a = input("type something: ")
    if not re.match(r'[a-zA-Z]/\d+', a):
        raise ValueError("invalid input ({}). value must be <letter>/<number>.".format(a))
    # ...add some more tests here if necessary, e.g. 0 <= number <= 100
    a = int(a.split('/')[1])
    if a < 0 or a > 100:
        raise ValueError("invalid input({}). number must be in interval [0,100].".format(a))
    # leave the loop if all checks pass...
    break
  except ValueError as e:
      print(str(e))
重新导入
尽管如此:
尝试:
a=输入(“键入某物:”)
如果不重新匹配(r'[a-zA-Z]/\d+',a):
raise VALUERROR(“无效输入({})。值必须为/。格式(a))

#…如有必要,在此处添加更多测试,例如0
input
只会每次抛出一个
ValueError
,这太简单了。阅读regex.regex?那是什么?在输入之后,在输入之前,除了:检查给定的输入。如果不正常,则引发异常并进行处理。见dupe,我说了这个词。您将需要将ValueError子类化,并检查该字符串是否编译为正则表达式。这种方法很好,但将ValueError子类化会更好。
import re
while True:
  try:
    a = input("type something: ")
    if not re.match(r'[a-zA-Z]/\d+', a):
        raise ValueError("invalid input ({}). value must be <letter>/<number>.".format(a))
    # ...add some more tests here if necessary, e.g. 0 <= number <= 100
    a = int(a.split('/')[1])
    if a < 0 or a > 100:
        raise ValueError("invalid input({}). number must be in interval [0,100].".format(a))
    # leave the loop if all checks pass...
    break
  except ValueError as e:
      print(str(e))