Python 3.2 ralenti : plage de la fonction d'impression ou de la liste?
Je sais que ce n'est pas une bonne chose à faire, mais je suis à l'aide de python 3, mais il étudie avec python 2 livre.
il dit,
>>>range(2,7)
montrera
[2,3,4,5,6]
mais je sais qu'il ne montre pas la sortie ci-dessus, QUE j'ai pensé. j'ai donc essayé:
>>>>print(range(2,7))
et ta-da - elle montre à suivre:
range(2,7)
il semble que ce soit l'un des changements de P2 à P3, donc j'ai essayé:
list(range(2,7))
celui-ci fonctionne ok au repos, mais pas ok sur le bloc-notes pour de longues codage. donc finalement j'ai essayé:
print(list(range(2,7)))
et il a montré quelque chose de semblable à ce que j'ai prévu... Suis-je en train de faire? Est-ce la seule façon de l'écrire?
- ce problème s'applique également à zip. Vous avez besoin
list( zip(stuff) )
InformationsquelleAutor Sean | 2011-03-22
Vous devez vous connecter pour publier un commentaire.
Dans votre INACTIVITÉ cas, vous exécutez le code dans le vide de l'PyShell fenêtre. C'est l'exécution de l'interactif interprète. En mode interactif, Python interprète immédiatement à chaque ligne que vous tapez et il affiche la valeur retournée par l'évaluation de la déclaration que vous avez tapé plus rien écrit sur la sortie standard ou d'erreur standard. Pour Python 2,
range()
renvoie une liste et, comme vous l'avez découvert, en Python 3, il renvoie un objet iterablerange()
objet que vous pouvez utiliser pour créer un objet de la liste ou utilisez ailleurs dans l'itération contextes. Le Python 3 range() est similaire à Python 2 xrange().Lorsque vous modifiez un fichier dans un éditeur de texte comme le bloc-notes, vous écrivez un fichier de script et lorsque vous exécutez le fichier dans l'interpréteur Python, l'ensemble du script est interprété et exécuté comme une unité, même si c'est une seule ligne. Sur l'écran, vous ne voyez que ce qui est écrit sur la sortie standard (c'est à dire "
print()
") ou la norme de l'erreur (erreur soit un retraçage); vous ne voyez pas les résultats de l'évaluation de chaque énoncé comme vous le faites en mode interactif. Donc, dans votre exemple, lors de l'exécution à partir d'un fichier de script, si vous n'imprimez pas les résultats de l'évaluation de quelque chose, vous ne le verrez pas.Le tutoriel Python parle un peu de ce ici.
Si votre seul but est de revenir de la liste à la représentation, ce que vous faites est correct. Python 3.0 traite maintenant
range
renvoie un itérateur (cexrange
l'habitude de faire)