写def元音(w,i):

时间:2015-09-17 16:12:21

标签: python indexing definition

我正在尝试编写一个定义,其中w是一个单词(大写或小写),i是单词中的字母为的索引,输出为True或False。 例如,

>>>vowel(hello,1) 

返回True,因为e是第1个字符的元音

到目前为止,我有,

def vowel (w,i):
    vowel=['a','e','i','o','u']
    for i in range(0,len(w)):
        if vowel in w.lower():
            print(True)
            else print (False)

它不断返回SyntaxError:无效语法

任何提示?并提前谢谢!!

2 个答案:

答案 0 :(得分:1)

您的else应缩进到与if相同的级别,并且else:之后应该有一个冒号。您的代码似乎并没有像您的问题那样做。

您不需要迭代函数中的任何内容,因为索引已作为参数传递给函数。您的测试也略微倒退。您的代码正在尝试查找列表vowel是否在字符串w.lower()内,显然不是。

这个版本更有意义:

def vowel(w,i):
    vowel_list = ['a','e','i','o','u']
    if w[i].lower() in vowel_list:
        print(True)
    else:
        print (False)

s = "hellO World!"
vowel(s,0) #false
vowel(s,4) #true
vowel(s,7) #true

请注意,从函数返回值TrueFalse要好得多,而不是直接打印出来。例如,通过这种方法,我们可以通过一种简单的方法来定义检查某些东西是否为辅音的函数。

辅音只是字母表中的元素,而不是元音。 Python已经有了一种使用str.isalpha()方法检查字母表中是否存在某些内容的方法。所以我们可以用这个:

def is_vowel(w,i):
    if w[i].lower() in ['a','e','i','o','u']:
        return True
    else:
        return False

def is_consonant(w, i):
    return w[i].isalpha() and not is_vowel(w, i)

string = "Hello World!"

print(is_vowel(string, 0))
print(is_consonant(string, 0))
print(is_vowel(string, 1))
print(is_consonant(string, 1))

答案 1 :(得分:0)

以下是我为实现目标所做的工作:

GIT_NAME=$(git --no-pager show -s --format='%an' $GIT_COMMIT)
GIT_EMAIL=$(git --no-pager show -s --format='%ae' $GIT_COMMIT)

希望有所帮助! :)