【问题标题】:How do I make this long if statement less cumbersome?如何使这个长 if 语句不那么麻烦?
【发布时间】:2015-05-17 08:33:19
【问题描述】:

这是我正在制作的方法中的if 声明(不管它的用途):

if str.lower(char) == "a" or str.lower(char) == "e" or str.lower(char) == "i" or str.lower(char) == "o" or str.lower(char) == "u":

写这个if 语句一定有更短的方法,对吧?可能是这样的:

if str.lower(char) == ("a" or "e" or "i" or "o" or "u"):

有没有办法使相等(或任何比较)以类似的方式分布在许多术语中?在我看来,这样的事情会让代码更容易阅读。

【问题讨论】:

    标签: python if-statement comparison-operators


    【解决方案1】:

    in 关键字就是为这类事情设计的:

    if str.lower(char) in "aeiou":
        ...
    

    【讨论】:

    • 你也应该这样做char.lower()。另一种形式是难看的。 :)
    • 我同意。除非它看起来特别重要,否则我会尽量只关注被问到的问题——以其他方式修复他们的代码往往会使答案变得混乱。如果我同时进行这两项更改,他们可能会错误地认为另一个修复与 in 关键字的使用有关。
    • 我会先将元音字符串转换成一个列表;这可以防止诸如“ae”或“eiou”之类的匹配。此外,请使用 char.lower() 而不是 str.lower(char)。给你:if char.lower() in list('aeiou'): …
    猜你喜欢
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2010-11-26
    • 1970-01-01
    • 2021-10-07
    相关资源
    最近更新 更多