首页 > 解决方案 > 为什么这段代码只打印出第一个字母?

问题描述

Word=input('please enter a word')
def cap(word):
      for char in word:
            if char in 'aeiou':
                  return letter.upper()

            else:
                  return letter

result=cap(word)
print result

标签: pythonstringreturnreturn-valueuppercase

解决方案


你在检查第一个字符后立即返回。相反,您应该检查所有这些,并修改您需要的那些。

def cap(word):
    result = ''
    for letter in word:
        if letter in 'aeiou':
            result += letter.upper()
        else:
            result += letter
    return result

但是请注意,使用列表推导式可能更容易做到这一点:

def cap(word):
    return ''.join(l.upper() if l in 'aeiou' else l for l in word)

推荐阅读