【问题标题】:My translator does not output what i want it to [closed]我的翻译没有输出我想要的内容[关闭]
【发布时间】:2022-01-21 04:36:42
【问题描述】:

我需要我的代码来输出“嘿????”当输入的输入是“嘿 :)”。相反,它输出'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

我需要它输出:嘿????

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拨打tour。你有什么问题?您的代码存在多个问题,例如,return 缩进太深。有关提示,请参阅How to Ask。你可以edit

标签: python ascii emoji


【解决方案1】:

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

但是,您一次只检查一个字母,因此: 后跟 anything 将添加 ? 和 ) 在该行的任何其他位置也可以这样做;和( 任何地方都会触发☹️

一个更好的方法可能是

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多