为了账号安全,请及时绑定邮箱和手机立即绑定

我如何使用逻辑运算符

我如何使用逻辑运算符

斯蒂芬大帝 2021-08-17 10:13:06
我已经尝试了所有方法,如果您不选择“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 = 7print(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 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

这部分是错误的:

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

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


查看完整回答
反对 回复 2021-08-17
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

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)

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


查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信