我正在做一种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)
变量后,但它对单词没有任何作用。 我可以改变一下以使其有效吗?
答案 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)