【问题标题】:Code not working properly [duplicate]代码无法正常工作[重复]
【发布时间】:2016-02-09 04:28:42
【问题描述】:

所以它相当简单。给定一个字符串,我想打印出所有语法正确的字母。带有元音的“an”和所有其他字母中的“a”。

我现在好像做不到。

my_name = 'Alexander'

for l in my_name:
    if l in "A" or "e" or "i" or "o" or "u": 
        print("give me an " + l + " !")
    else:
        print('give me a '+l +" !") 

问题: 所有的字母都打印出一个“an”

【问题讨论】:

    标签: loops python-3.x for-loop


    【解决方案1】:

    您的问题是每次使用or 时都需要一个单独的条件。否则,您只是评估"e",它始终是True

    只需检查它是否在这样的列表中:

    my_name = 'Alexander'
    
    for l in my_name:
        if l.lower() in ["a", "e", "i", "o", "u"]: #str.lower() is to check regardless of capitalization
            print("give me an " + l + " !")
        else:
            print('give me a '+l +" !")
    

    如果你检查一个字符串的布尔值,它总是True

    >>> bool("e")
    True
    >>> 
    

    因此代码将始终输入if


    >>> for l in my_name:
    ...     if l.lower() in ["a", "e", "i", "o", "u"]: #str.lower() is to check regardless of capitalization
    ...         print("give me an " + l + " !")
    ...     else:
    ...         print('give me a '+l +" !")
    ... 
    give me an A !
    give me a l !
    give me an e !
    give me a x !
    give me an a !
    give me a n !
    give me a d !
    give me an e !
    give me a r !
    >>> 
    

    【讨论】:

    • in "aeiou" 看起来更干净
    【解决方案2】:

    把你的代码改成这个。

    my_name = 'Alexander'
    
    for l in my_name:
        if l.lower() in ["a","e","i","o","u"]:
            print("give me an " + l + " !")
        else:
            print('give me a '+l +" !")
    

    您需要检查字母是否在字符数组中。如果你想要一个布尔表达式,那么 if 条件必须是

    if l == "A" or l == "e" or l == "i" or l == "o" or l == "u":
    

    【讨论】:

      【解决方案3】:

      打印它是因为条件if l in "A" or "e" or "i" or "o" or "u": 总是返回最后一个字符“u”,因此条件变为真,所以要解决这个问题,你必须这样写,

      if l in "A" or l in "e" or l in "i" or l in "o" or l in "u":
      

      或者你也可以这样写成list,

      if l in ["A","e","i","o","u"]:
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 2017-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-16
        • 1970-01-01
        相关资源
        最近更新 更多