2016-09-27 53 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上。