2013-07-30 55 views
-3

我繼續在我的代碼中得到隨機語法錯誤!我使用Python 3.3.2隨機Python語法錯誤?

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: 

冒號後的整條生產線任何人都可以請幫助我,告訴我這是什麼,以及如何解決它?

+0

是什麼語法錯誤究竟說什麼呢? – mattexx

回答

0

while loop=True:應該while loop==True:

我懷疑你甚至不得到modetype == 2 ...

0

嘗試

while loop==True: 

,或者更好的,只是

while loop: 
+0

@danielbeard我不同意。如果代碼中唯一的一段代碼被寫爲我提出的兩個備選方案中的任何一個,它就可以工作。或者至少編譯。 –

+0

我同意,我收回了我的陳述。 – danielbeard

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在「軟性」循環終止,就像你實現。