如何使用逻辑运算符
How Do I use logical operators
我已经尝试了所有方法,如果您不选择 "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"}:
请注意,我在这里使用了 set,因为它们提供了更有效的成员资格测试。在这个小例子中可能无关紧要,但它仍然是一个更好的选择。
!= 仅适用于紧跟其后列出的项目(无需使用括号和诸如此类的东西进行操作)。所以在你的例子中,你的 while 循环说“当位置不等于 ST,MID 为真,DEF 为真,DK 为真,Mid 为真,Def 为真,Gk 为真,做你的陈述。
要告诉您的程序在位置不等于 ST、MID 或 DEF 等时执行 while 循环,您必须明确拼写 out-
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)
你必须选择“”,因为它是一个字符串
我已经尝试了所有方法,如果您不选择 "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"}:
请注意,我在这里使用了 set,因为它们提供了更有效的成员资格测试。在这个小例子中可能无关紧要,但它仍然是一个更好的选择。
!= 仅适用于紧跟其后列出的项目(无需使用括号和诸如此类的东西进行操作)。所以在你的例子中,你的 while 循环说“当位置不等于 ST,MID 为真,DEF 为真,DK 为真,Mid 为真,Def 为真,Gk 为真,做你的陈述。
要告诉您的程序在位置不等于 ST、MID 或 DEF 等时执行 while 循环,您必须明确拼写 out-
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)
你必须选择“”,因为它是一个字符串