用于检查变量的字符串是否以元音开头的函数?

时间:2015-11-08 01:50:26

标签: python

我正在做一种MadLibs的事情,我需要检查我的三个变量是否以元音开头,然后在前面添加“a”或“an”。 我有这个,

def vowelcheck(variable):
    if variable[0] == "a" or variable[0] == "e" or variable[0] == "i" or variable[0] == "o" or variable[0] == "u":
        variable = "an " + variable
    else:
        variable = "a " + variable;

然后

vowelcheck(noun1)
vowelcheck(noun2)
vowelcheck(noun3)

变量后,但它对单词没有任何作用。 我可以改变一下以使其有效吗?

2 个答案:

答案 0 :(得分:1)

'变量'你的函数的参数是单词noun1,noun2,nound2的副本。你确实修改了变量'但它不会修改名词。

尝试改为:

def vowelcheck(variable):
    if variable[0] == "a" or variable[0] == "e" or variable[0] == "i" or variable[0] == "o" or variable[0] == "u":
        variable = "an " + variable
    else:
        variable = "a " + variable
    return variable

noun1, noun2, noun3 = (vowelcheck(noun1), vowelcheck(noun2), vowelcheck(noun3))

答案 1 :(得分:0)

在Python中,函数参数是按值传递的,而不是通过引用传递的。因此,您只需更改本地变量variable,而不是传入的字符串。

尝试类似:

def vowelcheck(word):
    if word[0] in "aeiou":
        return "an " + word
    else:
        return "a " + word


noun1 = vowelcheck(noun1)
noun2 = vowelcheck(noun2)
noun3 = vowelcheck(noun3)