python - Python:这个翻译器如何替换字母
问题描述
def translate(phrase):
translation = ""
for letter in phrase:
if letter.lower() in "aeiouy":
if letter.upper():
translation = translation + "G"
else:
translation = translation + "g"
else:
translation = translation + letter
return translation
print(translate(input("Enter A Phrase to Translate: ")))
我只是在学习 python 并按照教程进行操作,但我不理解这段代码。所以这是一个使所有元音“G”的基本翻译器,for循环选择用户输入的短语中的每个字母并检查它是否是元音,我没有得到的是它找到元音后,它补充说g 到翻译中,这是如何工作的,如果您尝试替换元音,为什么将 g 添加到整个事物中会翻译它?
解决方案
关键在这里:
if letter.lower() in "aeiouy":
if letter.upper():
translation = translation + "G"
else:
translation = translation + "g"
else:
translation = translation + letter
如果字母是元音,则添加 ag而不是假定的元音(translation = translation + letter
不会执行)。
此外,由于letter.upper()
不检查它是否为小写(它只是将字符转换为大写),translation = translation + "g"
因此永远不会到达 - 也许替换letter.upper()
为letter == letter.upper()
?
推荐阅读
- isabelle - 过渡系统上的有限运行
- c# - 使不同的图片框成为另一个标签的父级并使背景颜色透明?
- bash - 如何以column2上的重复单词作为标题将两列合并为一列
- java - 使用 DBCP、JDBCTemplate 和 ScheduledExecutor 时识别连接泄漏的步骤是什么?
- sql - 使用多个父级扁平化父子层次结构
- java - Java + Oracle 中的 SQL 查询
- android - NoSuchFieldError:PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING
- javascript - Javascript/jQuery 数学逻辑
- javascript - 以下 React 方法的区别/好处?
- javascript - NodeJS 尝试在 fs.createfilestream 中使用 URL