在列表中搜索项目

17 浏览
0 Comments

在列表中搜索项目

我想表达的是,如果不是这些运算符之一,它应该执行if语句。

if item not in ("(", "+" , "*" , "/" , ")" , "–"):

这是我目前的代码,但它不起作用。我应该如何修改才能让它正常工作?

0
0 Comments

问题原因:代码中使用了错误的运算符,未正确判断item是否在一个列表中。

解决方法:使用正确的运算符判断item是否在列表中,并遵循Python的代码风格指南。

这是一个问题的例子:

if item not in ("(" , "+" , "*" , "/" , ")" , "–"):

另外:

  • 你错误地使用了is运算符。如果你想检查两个东西是否“相等”,永远不要使用它。只有在测试是否为None时才需要使用它(例如:foo is Nonefoo is not None)。
  • foo == Truefoo == False不应在Python中使用。可以直接使用foonot foo
  • 请阅读(并遵循!)Python的代码风格指南(PEP8)。

解决方法:将代码修改为正确的形式,使用in运算符判断item是否在列表中,并遵循Python的代码风格指南。

0
0 Comments

搜索列表中的项目

问题的原因:在代码中,我们想要判断一个项目是否不在一个列表中,但是使用了错误的运算符。我们应该使用not in运算符来完成这个判断,而不是is运算符。

解决方法:将代码修改为使用not in运算符进行判断:

if item not in ("(", "+", "*", "/", ")", "–"):

下面是关于is运算符的示例演示:

>>> class Foo:
...     pass
...
>>> f1 = Foo()  # 类Foo的一个实例
>>> f2 = Foo()  # 类Foo的另一个实例
>>> f3 = f1     # f3引用了类Foo的同一个实例,与f1相同
>>> f1 is f3
True
>>> f1 is f2
False
>>>

0
0 Comments

在寻找列表中的项目时,出现这个问题的原因是因为字符串也可以像列表一样进行迭代操作。解决方法是使用in操作符来判断一个项目是否在字符串中。

所以,我们可以使用以下代码来判断一个项目是否在字符串中:

if item not in "(+*/.)-": ...

这种方法的原理是,字符串可以像列表一样进行迭代操作,所以in操作符的使用和在列表中一样。

以下是一个例子来说明这个方法的工作原理:

>>> x = "Hello, world"
>>> "Hello" in x
True
>>> "H" in x
True
>>> y = "+"
>>> y in "(+*/.)-"
True

在这个例子中,我们可以看到字符串x中有子字符串"Hello"和字符"H",所以in操作符返回了True。同样地,在字符串"(+*/.)-"中有字符"+",所以in操作符也返回了True。

通过使用in操作符来判断一个项目是否在字符串中,我们可以更简单地解决寻找列表中项目的问题。

0