2013-02-08 69 views
2

我想完成我的一個類的程序,但我一直得到無效的語法,python對我來說是非常新的,所以忍受我的無知。python無效的語法*更新

無效的語法彈出在「if guess ==(num_x + num_y)」冒號:「 如果有人可以幫助,我會非常感激。


更新* 固定括號謝謝abarnert但現在我有以下SyntaxError

Traceback (most recent call last): 
    File "C:\Users\Franz\Desktop\randomstudy.py", line 48, in <module> 
    main() 
    File "C:\Users\Franz\Desktop\randomstudy.py", line 25, in main 
    guess=int(input(num_x, "-", num_y, "=\n")) 
TypeError: input expected at most 1 arguments, got 4 

我已經更新了下面的代碼,包括括號。

def main(): 
    import random 
    num_x=random.randint(-50,50) 
    num_y=random.randint(-50,50) 
    op=random.randint(0,3) 
    control=True 
    print("Welcome! Here is your random problem:\n") 
    if op==0: 
     while True: 
      guess=int(input(num_x, "+", num_y, "=\n")) 
      if guess==(num_x+num_y): 
       print("Congratulations! You have answered the problem correctly!") 
       break  
      else: 
       print("I’m sorry, that is not correct. Please try again.") 
    elif op==1: 
     while True: 
      guess=int(input(num_x, "-", num_y, "=\n")) 
      if guess==(num_x-num_y): 
       print("Congratulations! You have answered the problem correctly!") 
       break  
      else: 
       print("I’m sorry, that is not correct. Please try again.") 
    elif op==2: 
     while True: 
      guess=int(input(num_x, "*", num_y, "=\n")) 
      if guess==(num_x*num_y): 
       print("Congratulations! You have answered the problem correctly!") 
       break  
      else: 
       print("I’m sorry, that is not correct. Please try again.") 
    elif op==3: 
     while True: 
      guess=int(input(num_x, "/", num_y, "=(Please round to two decimal places)\n")) 
      if guess==(num_x/num_y): 
       print("Congratulations! You have answered the problem correctly!") 
       break  
      else: 
       print("I’m sorry, that is not correct. Please try again.") 

main() 
+0

將缺少的')'添加到int的末尾(輸入(num_x,「+」,num_y,「= \ n」)'(爲其他兩個'int(輸入(..'))加上相同的值 –

+0

將來,不要只說「無效的語法」,粘貼實際的'SyntaxError'和回溯。這很容易,但是通常需要更多的工作才能找到問題,並且如果我們可以看到所有的詳細信息Python給了你 – abarnert

回答

6

在此之前,該行權缺少「)」:

guess=int(input(num_x, "+", num_y, "=\n") 
    if guess==(num_x+num_y): 

由於伊戈爾在評論中指出,你有其他線路,它們也缺少一個右括號,你必須修復他們也是如此,或者你只需​​要幾行就可以得到另一個SyntaxError。你可能想要考慮使用一個編輯器來幫助平衡括號和類似的問題 - 這當然會讓我的生活變得更容易。

這在Python中與其他大多數語言不太一樣,但它確實發生的頻率足夠高,以至於每當遇到莫名其妙的SyntaxError時,都應該習慣於查看上一行。

(在大多數語言中,幾乎所有的表達式或語句可以繼續到下一行。這不是真正在Python的,但如果有一個開放的括號,括號表達允許繼續到下一行。)

+1

在所有的語句中你缺少關閉括號 – Igor

+0

臨時快速幫助的人 – user2054056