2016-06-06 1 views
0

Je suis en train d'écrire un code simple en Python et obtenir cette erreur: retraçage (le plus récent appel dernier): Fichier "prog.py", ligne 4, en EOFError: EOF lors de la lecture d'une ligneEOF erreur python

Mon code est:

inp = [""] 
i=0 
while i==0: 
    answer = raw_input("") 
    if answer!="": 
     inp.append(answer) 
    else: 
     break 

for item in inp: 
    if item=="42": 
     break 
    else: 
     print item 

print "" 
+0

Quand avez-vous reçu cette erreur? Je peux le produire avec 'python2 prog.py Dilettant

+1

Comment utilisez-vous votre script? Il y a [beaucoup de réponses à ce sujet] (http://stackoverflow.com/search?q= [python] + raw_input + eoferror) déjà là, alors peut-être devriez-vous en lire quelques-unes d'abord. –

+0

Mon code fonctionne aussi bien sur le compilateur Codeacdemy.com mais sur Ideone.com, il s'agit de cette erreur –

Répondre

1

vous pouvez essayer de lire et de comprendre cette réponse (pour vous aider dans votre voyage à la connaissance Python):

#! /usr/bin/env python 
"""Short description what this module does.""" 
from __future__ import print_function 


inp = [] 
while True: 
    try: 
     answer = raw_input("") # in python v3 use input instead 
    except EOFError as e: 
     print("Ignored:", e) 
     answer = None 
    if answer: 
     inp.append(answer) 
    else: 
     break 

for item in inp: 
    if item == "42": 
     break 
    else: 
     print(item) 

print() 

Ce n'est qu'un premier pas dans l'essai d'un style de codage plus lisible.

suivant serait sûr d'essayer le tutoriel Python d'origine à python.org ...

L'appel de script ci-dessus stockées dans prog.py:

$> python2 prog.py < /dev/null 

ce qui rend le programme lu à partir /dev/null en entrée ne provoque pas plus ceci:

Traceback (most recent call last): 
    File "prog.py", line 5, in <module> 
    answer = raw_input("") 
EOFError: EOF when reading a line 

mais au lieu:

Ignored: EOF when reading a line 
[] 

si vous voulez tout simplement pas imprimer la ligne Ignored ..., et sachez qu'il est correct d'ignorer en silence, vous pouvez réécrire cette exception ligne/bloc dans

except EOFError: 
    answer = None 
+0

merci beaucoup. Okay, la dernière fois: Donc vous dites que pour les compilateurs en ligne comme ideone.com, nous devons remplacer toutes les raw_inputs par: ceux qui essayent et attrape et s'il vous plaît dites-moi pourquoi cela se produit seulement dans les interprètes en ligne comme ideone mais il y a pas de problème avec mon code d'origine à d'autres interprètes –