python - 为什么这段代码只打印出第一个字母?
问题描述
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
解决方案
你在检查第一个字符后立即返回。相反,您应该检查所有这些,并修改您需要的那些。
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)
推荐阅读
- python-3.x - Tensorboard:“localhost 拒绝连接”,Tensorboard 页面完全空白
- java - 如何更改波纹效果的纯色
- javascript - WebdriverIO执行几行客户端JS失败
- spring-boot - Spring Security 认证成功后再次重定向到登录页面
- javascript - vuejs 上的模态窗口
- sql - MS SQL (2014) 慢查询与代码中的注释
- c++ - 使用 Ceres 求解器进行 CMake 项目时的 Eigen 依赖项冲突
- sqlalchemy - 如何在 Alembic 中压制迁移?
- c# - Xamarin Forms - ZXing 扫描 PDF417 条码 - 如何解码 Results.Text
- azure - 构建 CI 触发器不起作用 - 私人回购