2014-09-13 4 views
-3

Je faisais un programme qui a montré plusieurs nombres premiers, est nécessaire pour utiliser les fonctions. Par exemple 1 à 10 = 2,3,5,7Python 3.4.1 syntaxe invalide?

mais apparaissent une erreur dans la dernière ligne dans le - imprimer i- que ... Je ne comprends pas ce que

def isPrime(num): 
    if num < 2: 
     return False 

    i = 2 
    for i in range(2,int(math.sqrt(num)+1)): 
     if (num % i == 0): 
      return False 

    return True 

def main(): 
    print ("this program do prime numbers") 
    start = int(raw_input("start number ")) 
    finish = int(raw_input('finish number: ')) 

    for i in range(start,finish): 
     if isPrime(i): 
      print i 
+1

Je trouve aide à des messages d'erreur Google. «erreur de syntaxe d'impression python» aurait résolu le problème. (Notez qu'il y a d'autres problèmes ici - vous obtiendrez un NameError de 'raw_input', par exemple, mais googling résoudra cela aussi.) – DSM

+0

@nneonneo - donc, je pense que c'est aussi, mais j'ai essayé de changer, mais ne fonctionne pas – Susan

+0

Alors, quelle erreur obtenez-vous? –

Répondre

1

Votre problème est que vous n'entourez pas le i dans print i avec des parenthèses. In Python 3, print has been changed from a statement to a function. Voici votre code édité:

def isPrime(num): 
    if num < 2: 
     return False 

    i = 2 
    for i in range(2,int(math.sqrt(num)+1)): 
     if (num % i == 0): 
      return False 

    return True 

def main(): 
    print ("this program do prime numbers") 
    start = int(raw_input("start number ")) 
    finish = int(raw_input('finish number: ')) 

    for i in range(start,finish): 
     if isPrime(i): 
      print(i) #Previously "print i" 

précédemment exécuté:

bash-3.2$ python3.4 prime.py 
    File "test.py", line 19 
    print i 
     ^
SyntaxError: invalid syntax 
bash-3.2$ 

Après l'édition:

bash-3.2$ python3.4 prime.py 
bash-3.2$ 
Questions connexes