【问题标题】:What do the operators "<>" mean in Python? [duplicate]Python中的运算符“<>”是什么意思? [复制]
【发布时间】:2017-02-26 19:53:04
【问题描述】:

我试图理解另一位作者在“NAND to Tetris”项目中编写解析器的代码,但不明白在使用“”运算符时它们的含义,如这段代码所示。我已经包含了它们的构造函数以供参考 self.commands 函数。

def __init__(self,fname):
    self.fname = fname
    self.commands = open(fname, 'r').readlines()
    self.cleanUp()
.
.
.

 def hasMoreCommands(self):
    """Return True if more commands to parse else return False"""
    return self.commands <> [ ]

在我看来,这是一种确定代码中是否有更多行的更简单方法。那是对的吗?感谢您对这个问题的任何意见!如果更多信息有帮助,请告诉我。

【问题讨论】:

  • 不等于,与!=相同。
  • 我认为它以“小于或大于”开头,类似于&lt;= 的意思是“小于或等于”。但这使它成为“不相等”的同义词。

标签: python operators tetris


【解决方案1】:

在 Python 2.X 中,&lt;&gt;!= 相同,但该用法已过时,不鼓励使用较新的用法,即 !=

请参阅Comparision 部分的手册

所以,return self.commands &lt;&gt; [ ]return self.commands != [ ] 相同,这意味着 self.commands 不是根据您的文档字符串的空列表

如果有更多要解析的命令返回 True,否则返回 False

【讨论】:

  • 整个代码块不是惯用的 Python - 如果您想测试列表是否为空,只需将其测试为布尔值。 if self.commands:。空列表为False,非空列表为True
  • @PeterDeGlopper:这是一个单独的论点,我不想离题。
  • 非常感谢您的链接和解释! Abhijit:如果允许,我会将您的评论标记为答案!
  • @PeterDeGlopper 在这种情况下我认为原始形式实际上比return bool(self.commands) 更容易理解。
  • “气馁”? Python 已经抛出语法错误 8 年了...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
相关资源
最近更新 更多