Le terminal Python ne fonctionne pas pour les boucles [fermé]

9

J'ai exécuté ce code dans le terminal Python:

>>> for news in news_list:
...     print news("li", {"class", "first"})[0].a["href"]
...     
...     

Je veux pouvoir fermer cette boucle pour dans le terminal, mais je ne sais pas comment. J'ai essayé d'appuyer Enterdeux fois mais cela ne fonctionne pas.

jason328
la source
1
Il vous manque une accolade de fermeture. Pouvez-vous expliquer ce que vous essayez de faire dans la déclaration imprimée?
Hashken
1
Désolé, l'accolade aurait dû être là. Je fais une boucle dans un tableau contenant des données html. Cela fonctionne, je ne sais pas comment fermer la boucle dans le terminal.
jason328
1
Il semble que vous utilisiez des structures de données imbriquées. Je ne peux pas dire quel est le problème sans regarder tout le code. Veuillez joindre le code entier.
Hashken
4
entrer deux fois fonctionne pour moi. Assurez-vous que la 2e entrée est intacte
Karthik T
1
Je vois que c'est une console. Pouvez - vous faire print newset print news_listavant cela et nous donner la sortie? Nous aurons une idée des infrastructures de données là-bas.
SiddharthaRT

Réponses:

14

Peu importe les données sur lesquelles il travaille. Quelle que soit la façon dont vous utilisez print "spam"ou une expression compliquée, la boucle for doit être fermée après deux entrées ou une exception Python sera déclenchée avec des données incorrectes ou une erreur de syntaxe.

Le problème est que vous indenter les lignes vides, donc l'interprète pense que vous allez toujours lui donner du code.

Voyez la différence dans l'extrait de code ci-dessous (sélectionnez le texte pour voir pourquoi):

>>> for x in range(4):
...     print x
... 
0
1
2
3
>>> for x in range(4):
...     print x
...     
...     
...     
... 
0
1
2
3
>>> 
Timo
la source
Un côté: Vérifiez bpython. Il s'agit d'un interpréteur python en ligne de commande avec des suggestions de mots clés, l'indentation automatique, la mémoire de l'historique entre les sessions, une option pour enregistrer le code dans un fichier, etc. Les deux premières fonctionnalités en font une application géniale. Tant de fois, j'ai appuyé sur tab dans l'interpréteur par défaut pour trouver un onglet à l'écran!
S Prasanth
@SPrasanth, tu veux dire ipython?
warvariuc
@warwaruk Non, bpython apps.ubuntu.com/cat/applications/bpython se penchera cependant sur ipython.
S Prasanth