Python函数return语句位置:如何根据字符串首字母输出正确不定冠词
解决Python中根据背景字符串首字母输出正确不定冠词的问题
你的代码问题出在indefinite_article()函数的逻辑上,现在帮你梳理清楚并修正:
问题根源
- 函数内部的循环完全无效:函数刚进入循环就执行
return,只会判断character元组的第一个元素(也就是变量a对应的字符串),所以每次调用都返回"An "。 - 判断逻辑错误:你用
index in (a, e, i, o, u)来判断,这里的a,e,i,o,u是你定义的背景字符串变量,不是元音字母,完全不符合需求。
修正方案
让函数接收当前的背景字符串作为参数,直接判断该字符串的首字母是否为元音:
修正后的函数代码
def indefinite_article(backstory): # 取首字母并转小写,兼容可能的大写开头情况 first_char = backstory[0].lower() if first_char in ('a', 'e', 'i', 'o', 'u'): return "An " else: return "A "
调用函数的代码修改
在输出的时候,把当前遍历到的char_index传给函数:
for char_index in character: if char_index[0] == first_name.lower()[0]: print("\n\nCHARACTER PROFILE: " + indefinite_article(char_index) + char_index)
这样每次调用函数时,都会根据传入的具体背景字符串首字母,返回正确的不定冠词。
内容的提问来源于stack exchange,提问作者Lugnut
相关产品推荐
相关产品推荐

