Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:这个翻译器如何替换字母_Python_Algorithm_Uppercase_Lowercase - Fatal编程技术网

Python:这个翻译器如何替换字母

Python:这个翻译器如何替换字母,python,algorithm,uppercase,lowercase,Python,Algorithm,Uppercase,Lowercase,我只是在学习python并遵循一个教程,我不理解这段代码。这是一个基本的翻译器,使所有元音都变成“G”,for循环选择用户输入的短语中的每个字母并检查它是否是元音,我没有得到的是在找到元音后,它将G添加到翻译中,这是如何工作的,如果你试图替换元音,为什么在整个元音中加上g会翻译它?关键在于: def translate(phrase): translation = "" for letter in phrase: if letter.lower

我只是在学习python并遵循一个教程,我不理解这段代码。这是一个基本的翻译器,使所有元音都变成“G”,for循环选择用户输入的短语中的每个字母并检查它是否是元音,我没有得到的是在找到元音后,它将G添加到翻译中,这是如何工作的,如果你试图替换元音,为什么在整个元音中加上g会翻译它?

关键在于:

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: ")))
如果字母是元音,那么它会添加一个g而不是假定的元音(
translation=translation+letter


另外,由于
letter.upper()
不检查它是否为小写(它只是将字符转换为大写),
translation=translation+“g”
将永远无法到达-可能将
letter.upper()
替换为
letter==letter.upper()

何时将
letter.upper()
不被认为是真的吗?@ScottHunter从不。我在自己的电脑上运行了它,
asdf
结果是
Gsdf
而不是假定的
Gsdf
。非常感谢你,我已经为此苦苦挣扎了一个小时,你很好地解决了这个问题,我还用letter==letter.upper()@anoor1234解决了这个问题。很高兴能提供帮助。如果这有帮助,请投票/接受我的答案。顺便说一句,还有
letter.isupper()
返回
bool
,至少对于字母字符应该是等效的。
        if letter.lower() in "aeiouy":
            if letter.upper():
                translation = translation + "G"
            else:
                translation = translation + "g"
        else:
            translation = translation + letter