2016-09-27 80 views
-1
>>> import sys 
def prime(n): 
    i=2 
    isp=True; 
    while(i<n): 
     if(n%i==0): 
      isp=False 
      break 
     n/=i 
     i+=1 
    if(n==1): 
     isp=False 
    return isp 

while(True) 
    x=input("num=") 
    if x=="exit" 
     sys.exit() 
    print(prime(int(x)))) 

SyntaxError: multiple statements found while compiling a single statement 

爲什麼這個代碼總是「語法錯誤:在編譯一個語句中找到多條語句」在Python
3.5.2語法錯誤:多個語句中找到在編譯一個語句

回答

0

有一些我發現的語法錯誤,我解決了它們,代碼對我來說運行良好。在上次聲明中還有一個額外的),並且您還錯過了幾個:。以下是更新後的版本:

import sys 

def prime(n): 
    i=2 
    isp=True; 
    while(i<n): 
     if(n%i==0): 
      isp=False 
      break 
     n/=i 
     i+=1 
    if(n==1): 
     isp=False 
    return isp 

while(True): 
    x=input("num=") 
    if x=="exit": 
     sys.exit() 
    print(prime(int(x))) 
0

您的代碼中有多個語法錯誤。在Python語句結尾處沒有;,每個循環和條件(因此whileif)以:結尾。請注意圓括號,因爲您在print聲明中有額外的結尾。 在這裏,我固定的錯誤:

import sys 
def prime(n): 
    i=2 
    isp=True 
    while(i<n): 
     if(n%i==0): 
      isp=False 
      break 
     n/=i 
     i+=1 
    if(n==1): 
     isp=False 
    return isp 

while(True): 
    x=input("num=") 
    if x=="exit": 
     sys.exit() 
    print(prime(int(x))) 

編輯:我想補充一點,這是非常容易使用閒置檢測語法錯誤,是來包裝的Windows上的Python的IDE,並且可以很容易地也安裝在Linux上。