对于以下程序,输出为:

True
False
None
False


预期应为:

True
False
True
False


代码有什么问题?

def startEndVowels(word):
    vowels = "aeiou"
    x = word[0]
    y = word[-1]
    z = len(word)
    if z >1:
       if x in vowels:
          if y in vowels:
             return True
       else:
            return False
    elif z == 1:
         if word in vowels:
            return True
         elif x == " ":
              return False
print startEndVowels("apple")
print startEndVowels("goole")
print startEndVowels("A")
print startEndVowels(" ")

最佳答案

您可以简单地使用startswithendswith方法,它们接受tuple可能的前缀/后缀:

def startEndVowels(word):
    vowels = tuple("aeiouAEIOU")
    return word.startswith(vowels) and word.endswith(vowels)


您的功能不起作用的原因是因为您没有检查大小写。您也需要包括大写元音:

vowels = "aeiouAEIOU"


或将单词转换为小写:

word = word.lower()

关于python - 编写函数startEndVowels(word),如果单词以元音开头和结尾,则返回True,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45838452/

10-14 20:05