python - 为什么我的 elif 语句中的 replace 方法不能替换我试图在程序中替换的一个或多个字母?
问题描述
myWord=input("Enter a Word: ")
if len(myWord) <= 3 :
print(myWord)
elif myWord[-3:] == 'ing':
print(myWord)
elif myWord[-1:] == 'a' or 'e' or 'i' or 'o' or 'u':
newWord = myWord.replace('a' or 'e' or 'i' or 'o' or 'u', "ing")
print(newWord)
我正在开发一个程序,每当我输入一个小于 3 个单词并以元音结尾的单词时,它将用“ing”替换该元音。第三个“elif”语句是我遇到最多问题的地方,因为每当我运行程序并输入以元音结尾的单词时,它都不会用“ing”替换元音。
解决方案
欢迎来到stackoverflow,myWord[-1:] == 'a' or 'e' or 'i' or 'o' or 'u':
它不是你做的事情,恐怕它不会将myword [-1]与这五件事进行比较,而是进行比较然后做if 'a'
这总是正确的。尝试
if myWord[-1:] in ['a', 'e', 'i', 'o', 'u']
同样在最后一个 elif 中,您不应使用 replace (这里的 or 结构也不正确),因为它替换了所有出现的,而不仅仅是最后一个。
推荐阅读
- javascript - 卸载的组件仍然首先渲染
- python - 如何从 Python 中此对象返回的字典中访问特定值
- nearprotocol - 使用 NEAR Lib 生成密钥对
- javascript - 通过 Chrome 使用 pdf 文档的窗口事件
- java - 尝试为 android 实现 google 登录时出现错误代码 12500
- javascript - 制作 GUI 时如何将 Go 脚本与 Gotron 前端连接?
- java - 在 JWT 用户映射期间创建 Gentics Mesh 用户配置文件节点 - 导致失败
- javascript - 为什么 .data="[filepath]" 在 Internet Explorer 中不起作用?
- docker - 如何设置 influx docker 容器监听特定端口地址上的 collectd?
- python - (如何)Scipy 可以有效地将函数与数组值参数集成(没有循环)?