我的翻译器没有输出我想要的

My translator does not output what i want it to

我需要我的代码在写入的输入为 'hey :)' 时输出 'hey '。相反,它输出 'h'

def emojiChanger(word):
    emoji = " "
    for letter in word:
        if letter in ":)":
            emoji = emoji + ""
        elif letter in ":(":
            emoji = emoji + "☹️"
        else:
            emoji = emoji + letter
        return emoji

print(emojiChanger(input('How are you doing? ')))

输出:

How are you doing? :)
 

替代输出:# 我需要修复的内容

How are you doing? hey :)
 h

我需要它来输出:嘿

它只能进入 ifelifelse 分支之一(它永远不会进入 elif: 因为if 已经捕捉到了)。在所有这些情况下,您都需要向输出字符串添加内容,可能在条件之外。

但是,您一次检查一个字母,因此 : 后跟 anything 将添加并且 ) 行中的任何其他地方都可以那也是;并且 ( 任何地方都会触发 ☹️

一个更好的方法可能是

def emojiChanger(word):
    return word.replace(':)', '').replace(':(', '☹️')

您总是输入第一个 if。使用

def emojiChanger(word):
    return  "hey " if ":)" in word else None

您还可以在 :( 出现时定义唯一的 return 值

def emojiChanger(word):
    return "hey " if ":)" in word else "not hey ☹️" if ":(" in word else None