【问题标题】:Coding Bat Python Warmup编码蝙蝠 Python 热身
【发布时间】:2020-05-25 05:38:30
【问题描述】:

我是 python 新手,刚刚开始学习如何编码。我回答了关于编码蝙蝠的问题,但是我的代码与解决方案不同。如果有人能告诉我为什么我的代码不如解决方案好,我将不胜感激。谢谢!

问题:给定一个字符串,返回一个新字符串,其中“not”已添加到前面。但是,如果字符串已经以“not”开头,则原样返回字符串。

我的代码:

    def not_string(str):
      if 'not' in str[0:3]:
        return str
      else:
        return ('not '+ str)

答案:

    def not_string(str):
      if len(str) >= 3 and str[:3] == "not":
         return str
      return "not " + str

【问题讨论】:

  • 既然这是工作代码,Code Review 会更好吗?

标签: python-3.x


【解决方案1】:

您的代码是正确的,但是您的代码和解决方案之间存在一些差异。首先,在解决方案代码中,他们检查字符串的长度是否大于或等于 3。使用 len(str) 函数,它将返回该字符串中值的数量。例如,如果我有一个值为“codingbat”的字符串,则 str 的长度将为 9。最好在对其采取进一步操作之前检查 str 的长度。此外,解决方案从 [:3] 开始检查,而您的答案从 [0:3] 开始检查;这些是同一件事,但最好的做法是 [:3] 因为它更专业地表明它正在检查前 3 个值。最后,在第一个 if 语句之后有一个 else 语句,这是不必要的;只要您确保如果 if 语句失败,无论您想要做什么,都与第一个 if 命令对齐,那么它们将提供相同的功能,但删除“else”而不是缩进更专业else 命令表示如果 if 语句失败,它将执行您希望它执行的操作。

请记住,在任何编码语言中,都有多种方法可以达到所需的解决方案。除此之外,干得好!

【讨论】:

  • 感谢您的澄清。它对我理解关键差异以及为什么这段代码更好! 有很大帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
相关资源
最近更新 更多