当前位置: 首页 > 知识库问答 >
问题:

如何使用逻辑运算符[重复]

蓟辰沛
2023-03-14

我已经尝试了所有的方法,如果你不选择“ST”,它会不断地在while循环中循环。我不知道该怎么办,如果有人能告诉我,那将非常有帮助。我在顶部添加了一些上下文代码;我只需要while循环的帮助。我正在使用while循环,因此如果他们没有选择给定的位置,他们必须重新选择。

这是我的密码:

pos = input("What Is Your Choice")

if pos == "ST":
    shot = 8
    print("Shot Is",shot)
    passing = 6
    print("Passing Is",passing)
    pace = 6
    print("Pace Is",pace)
    defending = 2
    print("Defending Is",defending)

if pos == "MID":
    shot = 6
    print("Shot Is",shot)
    passing = 6
    print("Passing Is",passing)
    pace = 6
    print("Pace Is",pace)
    defending = 4
    print("Defending Is",defending)

if pos == "DEF":
    shot = 2
    print("Shot Is",shot)
    passing = 6
    print("Passing Is",passing)
    pace = 4
    print("Pace Is",pace)
    defending = 8
    print("Defending Is",defending)

if pos == "GK":
    dive = 7
    dist = 8
    catch = 7

print(pos)

while pos != "ST" and "MID" and "DEF" and "GK" and "St" and "Mid" and 
"Def" and "Gk":
    print("What Position Do You Want To Play?")
    time.sleep(1)
    print("The Options Are..")
    time.sleep(1)
    print("ST (Striker)")
    time.sleep(1)
    print("MID (Midfielder)")
    time.sleep(1)
    print("DEF (Defender)")
    time.sleep(1)
    print("GK (Goalkeeper)")
    time.sleep(1)

pos = input("What Is Your Choice")

共有3个答案

孟华晖
2023-03-14

而循环永远不会结束,因为您的输入在外面。这是工作代码:

import time
pos = ""


while pos != "ST" and "MID" and "DEF" and "GK" and "St" and "Mid" and "Def" and "Gk":
    print("What Position Do You Want To Play?")
    time.sleep(1)
    print("The Options Are..")
    time.sleep(1)
    print("ST (Striker)")
    time.sleep(1)
    print("MID (Midfielder)")
    time.sleep(1)
    print("DEF (Defender)")
    time.sleep(1)
    print("GK (Goalkeeper)")
    time.sleep(1)

    pos = input("What Is Your Choice")
    break


if pos == "ST":
    shot = 8
    print("Shot Is",shot)
    passing = 6
    print("Passing Is",passing)
    pace = 6
    print("Pace Is",pace)
    defending = 2
    print("Defending Is",defending)

if pos == "MID":
    shot = 6
    print("Shot Is",shot)
    passing = 6
    print("Passing Is",passing)
    pace = 6
    print("Pace Is",pace)
    defending = 4
    print("Defending Is",defending)

if pos == "DEF":
    shot = 2
    print("Shot Is",shot)
    passing = 6
    print("Passing Is",passing)
    pace = 4
    print("Pace Is",pace)
    defending = 8
    print("Defending Is",defending)

if pos == "GK":
    dive = 7
    dist = 8
    catch = 7

    print(pos)

您必须使用“”进行选择,因为它是一个字符串

丁弘新
2023-03-14

!= 仅适用于直接在其前面和后面列出的项目(不使用parens和诸如此类的操作)。因此,在您的示例中,while循环表示“当位置不等于ST,MID为true,DEF为true,DK为true,MID为true,DEF为true,Gk为true时,执行您的语句。

要告诉你的程序在位置不等于ST,也不等于MID,也不等于DEF等的情况下执行time循环,你必须明确地拼写出来-

while pos != "ST" and pos != "MID" and ... and post != "Gk"
朱丰
2023-03-14

这部分是错误的:

while pos != "ST" and "MID" and "DEF" and "GK" and "St" and "Mid" and "Def" and "Gk":

pos!="ST"被计算,其余的字符串不与任何东西进行比较。事实上,这部分的评价是:

while (pos != "ST") and ("MID") and ("DEF") and ("GK") and ("St") and ("Mid") and ("Def") and ("Gk"):

非空字符串总是True,因此只要pos!="ST"True,它永远不会离开循环。你可能想做的是:

while pos != "ST" and pos != "MID" and pos != "DEF" and pos != "GK" and pos != "St" and pos != "Mid" and pos != "Def" and pos != "Gk":

但是,正如其中一条评论所指出的,您可以在中使用

while pos not in {"ST", "MID", "DEF", "GK", "St", "Mid", "Def", "Gk"}:

注意,我在这里使用了一个集合,因为它们提供了更有效的成员资格测试。在这个小例子中可能没什么大不了的,但是它是一个更好的选择。

 类似资料:
  • JavaScript 中有三个逻辑运算符:||(或),&&(与),!(非)。 虽然它们被称为“逻辑”运算符,但这些运算符却可以被应用于任意类型的值,而不仅仅是布尔值。它们的结果也同样可以是任意类型。 让我们来详细看一下。 ||(或) 两个竖线符号表示“或”运算符: result = a || b; 在传统的编程中,逻辑或仅能够操作布尔值。如果参与运算的任意一个参数为 true,返回的结果就为 tr

  • 假设我有这样简单的东西: 如果condition_1为真,java会继续运行并检查condition_2吗?我这么问是因为我知道如果条件1为真,条件2会抛出一个错误,我想知道我是否需要做两个独立的if。

  • 主要内容:逻辑非运算(NOT 或者 !),逻辑与运算符(AND 或者 &&),逻辑或运算符(OR 或者 ||),异或运算(XOR 运算符)逻辑运算符又称为布尔运算符,用来确定表达式的真和假。 MySQL中支持的逻辑运算符如下表所示。 MySQL 中的逻辑运算符 运算符 作用 NOT 或者 ! 逻辑非 AND 或者 && 逻辑与 OR 和 || 逻辑或 XOR 逻辑异或   下面分别讨论 MySQL 逻辑运算符的使用方法。 逻辑非运算(NOT 或者 !) 和 都是逻辑非运算符,返回和操作数相反的结

  • 主要内容:打脸某些 Python 教程,逻辑运算符的本质高中数学中我们就学过逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。 Python 也有类似的逻辑运算,请看下表: 表 1 Python 逻辑运算符及功能 逻辑运算符 含义 基本格式 说明 and 逻辑与运算,等价于数学中的“且” a and b 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 or 逻辑或运算,等价于数学

  • 逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。 逻辑运算符是对布尔型变量进行运算,其结果也是布尔型,具体如表 1 所示。 表 1 逻辑运算符的用法、含义及实例 运算符 用法 含义 说明 实例 结果 && a&&b 短路与 ab 全为 true 时,计算结果为 true,否则为 false。 2>1&&3<4

  • 问题内容: 我记得有一阵子关于逻辑运算符的内容,在的情况下,使用要比(或反之亦然)更好。 当我回到项目中时,我只需要在项目中使用它,但是我不记得建议使用哪个运算符,或者它是否正确。 哪个更好?为什么? 问题答案: 没有“更好的”,但是更常见的是。它们具有不同的优先级, 并且可以像通常期望的那样工作。 另请参阅:逻辑运算符( 以下示例从此处获取 ):