【问题标题】:Name class error名称类错误
【发布时间】:2018-08-22 06:15:19
【问题描述】:
def returnComparison(comparison, *args):
   # Sample:
   #   returnComparison('greater than', 10, 20, 55) --> 55
   if comparison == "greater than":
      return max(args)
   elif comparison == "less than":
      return min(args)
   else:
      flag = True
      for arg in range(args-1):
         if args[arg] != args[arg+1]:
            flag = False
      return flag

    Error: <class 'NameError'>!

【问题讨论】:

  • 这里有什么问题
  • 我试图找出代码有什么问题
  • 这确实会报错,但不是NameError,而是TypeError
  • 你编写了一段你不知道它应该做什么的代码?或者您是否复制了某人的代码并且它不起作用并且您不知道您复制了什么?无论哪种方式,您都需要找出代码的用途,以便我们为您提供帮助。我们大多数人不会浪费时间猜测代码应该做什么。请编辑您的问题并提供更多详细信息。
  • 如果你甚至不知道它应该做什么并且你也不懂编程语言,你怎么能修复它?没有意义。

标签: python python-3.x class


【解决方案1】:

我假设您需要帮助来解决脚本进入 else 语句时遇到的异常。

这里的问题很简单。你正在从一个元组中减去一个整数。

事实上,这里更大的错误是您没有正确使用range() 函数。您应该将一个整数传递给它以使其工作。

解决方案非常简单。将代码的第 10 行更改为:for arg in range(len(args)-1): len() 函数返回 args 元组的长度。

所以,你的代码最终会是这样的:

def returnComparison(comparison, *args):
   # Sample:
   #   returnComparison('greater than', 10, 20, 55) --> 55
   if comparison == "greater than":
      return max(args)
   elif comparison == "less than":
      return min(args)
   else:
      flag = True
      for arg in range(len(args)-1):
         if args[arg] != args[arg+1]:
            flag = False
      return flag

祝你好运!

【讨论】:

    猜你喜欢
    • 2012-02-20
    • 2011-01-03
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多