【问题标题】:if statement in python not working with or and integers [duplicate]python中的if语句不适用于or和整数[重复]
【发布时间】:2014-04-01 19:55:52
【问题描述】:

我遇到了 if 语句的问题,其中也有一个 or。我基本上是想拥有它,以便如果任何一个玩家的分数是 50,游戏就结束了。 我试图让我的代码说这样的话:

if ball.score2 or ball.score1 == 50: 
    EndGame()

但是,当我有这个时,只要 ball.score2 上升(但这只会发生在 if 语句中的第一个,所以如果 ball.score1 上升,它就不会这样做) 发生,并且它应该增加 5,它运行 EndGame()。他们单独工作,所以如果我有:

if ball.score2 == 50:
     EndGame()

ball.score2 达到 50 时它将结束游戏,但当我像第一个示例中那样使用它们时不会。有人可以帮忙吗?

【问题讨论】:

  • 是的,你的权利解决了这个问题 - 抱歉,我看的时候没看到

标签: python if-statement tkinter


【解决方案1】:

你需要检查每个分数的相等性:

if ball.score2 == 50 or ball.score == 50:
    EndGame()

【讨论】:

  • 建议添加括号以提高清晰度。
  • 我一直想知道是否可以对此做点什么,这样我就不需要单独检查所有内容,也不需要使用 *args 编写函数?
  • @Granitas:if 50 in [ball.score2, ball.score]。有关详细信息,请参阅标记的重复问题。
  • 哦,这太明显了……如果我们用 and 替换 or 怎么样?
  • 对于和:if len(set([ball.score2, ball.score1, 50])) <= 1 ... 但它不是那么清晰或直观。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2013-05-22
相关资源
最近更新 更多