【问题标题】:Random Python Syntax Error?随机 Python 语法错误?
【发布时间】:2013-07-30 22:19:39
【问题描述】:

我的代码不断出现随机语法错误!我正在使用 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:

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

【问题讨论】:

  • 语法错误到底是什么意思?

标签: python random syntax syntax-error


【解决方案1】:
loop=True
while loop=True:

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

while True:

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

    else:
        loop==True

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      试试

      while loop==True:
      

      或者,更好,简单

      while loop:
      

      【讨论】:

      • @danielbeard 我不同意。如果仅将代码中的 while 编写为我建议的 2 个替代方案中的任何一个,它就可以工作。或者至少可以编译。
      • 我同意,我撤回了我的声明。
      猜你喜欢
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多