如何使用逻辑运算符



我已经尝试了所有的方法,如果你不选择"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")

此部分错误:

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":

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

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

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

!=仅适用于直接在其前后列出的项目(不涉及parens和whatnot的操作(。因此,在你的例子中,while循环是说"当位置不等于ST,MID为真,DEF为真,DK为真,MID为真、DEF为真和Gk为真时,做你的陈述。">

要告诉你的程序在位置不等于ST、MID或DEF等时执行while循环,你必须明确地拼写出来-

while pos != "ST" and pos != "MID" and ... and post != "Gk"

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

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)

你必须选择",因为它是一个字符串

相关内容

  • 没有找到相关文章

最新更新