【问题标题】:Python runs a if-case that it should not!Python 运行一个它不应该运行的 if-case!
【发布时间】:2023-04-03 19:06:01
【问题描述】:

我有这个代码:

def random_answerlist(self):
    self.li = []
    self.winning_button = random.randint(0, 3)
    i = 0
    while i < 20 and len(self.li) is not 4:
        if i == self.winning_button:
            self.li.append(self.flags[self.current_flag][0])
        else:
            new_value = self.random_value()
            if self.flags[new_value][0] not in self.li:
                self.li.append(self.flags[new_value][0])
        i += 1
    return self.li

唯一的问题是第一个 if-case 可能会发生多次,这应该是不可能的。我已经搜索了一个很好的解释,但我找不到任何解释。

哦,我知道代码不是最好的。但我对 python 有点陌生(仅仅一个月左右),并认为这可能有效,但它没有!

你们知道为什么吗? =)

【问题讨论】:

  • 你有什么证据表明第一个 if-case 执行了多次?
  • 你使用is not而不是!=有什么原因吗?
  • 不,没有。我现在已经改了。感谢您的建议!但是“不是”和“!=”之间的主要区别是什么?
  • You couldn't solve it since I didn't post the whole code. 太棒了

标签:
python
loops
if-statement
case
while-loop