处理可能引发错误的条件语句的最具Python风格的方法是什么?

处理可能引发错误的条件语句的最具Python风格的方法是什么?,python,Python,处理可能引发错误的条件语句的最具Python风格的方法是什么?例如: if string[0] = "#": 如果给定长度为0的字符串,上述语句将生成索引器 我想象的事情是这样的: if try testFunction() (except: pass): ……但我知道那是行不通的。那我该怎么办 注意:这个问题有很多解决方案。例如,我可以将if语句放在第二个if语句中。。。但这并不优雅。我特别在寻找最具Python风格的解决方案。您必须将整个if语句放入try.。除了块: try:

处理可能引发错误的条件语句的最具Python风格的方法是什么?例如:

if string[0] = "#":
如果给定长度为0的字符串,上述语句将生成索引器

我想象的事情是这样的:

if try testFunction() (except: pass):
……但我知道那是行不通的。那我该怎么办

注意:这个问题有很多解决方案。例如,我可以将if语句放在第二个if语句中。。。但这并不优雅。我特别在寻找最具Python风格的解决方案。

您必须将整个
if
语句放入
try.。除了
块:

try:
    if string[0] == "#":
        # block executed when true
except IndexError:
    # ..
但是,有更好的替代方案:

  • 首先提取该字符:

    try:
        first = string[0]
    except IndexError:
        pass
    else:
        if first == '#':
            # ...
    
  • 首先测试字符串长度:

    if string and string[0] == '#':
    
  • 使用切片:

    if string[:1] == '#':
    
    如果
    string
    开始时为空,则切片结果为空字符串

  • 使用字符串方法:

    if string.startswith('#'):
    

如果字符串[0]=“#”:
实际上,它将导致语法错误。这取决于您希望如何处理异常。