-3

我的代码不断出现随机语法错误!我正在使用 python 3.3.2

def modestart():
modetype = int(input"""Select a Game Mode:
1 - Standard Selection Mode
2 - Ordered Mode
3 - Random Shuffle Mode!
Or press any other key to exit
""")
loop=True
while loop=True:
    try:
        if modetype == 1:
            loop=False
            standard()
        if modetype == 2:
            loop=False
            ordered()
        if modetype == 3:
            loop=False
            shuffle()
        else:
            loop==True
            print("Please select a valid option")
    except ValueError:
        loop=True
        print("Please select a valid option")

语法错误突出显示冒号后的整行

if modetype == 2:

谁能帮助我并告诉我这是什么,以及如何解决它?

4

3 回答 3

1
loop=True
while loop=True:

不要这样做。这既是语法错误(您的意思是while loop == True),也是不必要的。做就是了

while True:

然后break当你完成循环时。请注意,您似乎到处都在混淆赋值和相等检查;

    else:
        loop==True

您几乎可以肯定只是打算这样做loop = True,尽管这显然是不必要的,因为它必须已经True到达代码中的那一点。

实际上,我错了,但没有充分的理由。我假设你也犯了一个逻辑错误,第二个和第三个if陈述本来就是elif陈述。照原样,如果用户输入“1”,第一个if块触发,然后代码查看第二个和第三个if块。由于第三个if语句是错误的,因此该else语句也会触发,这不是您想要的。

这是break像您实现的那样使用“更软”循环终止的另一个原因。

于 2013-07-30T22:29:16.447 回答
0

while loop=True:应该while loop==True:

我怀疑你甚至没有进入 modetype == 2 ...

于 2013-07-30T22:22:08.257 回答
0

尝试

while loop==True:

或者,更好的是,简单地

while loop:
于 2013-07-30T22:27:55.593 回答