import sys
print(sys.platform)
print(2**100)
raw_input()
J'utilise Python 3.1 et je n'arrive pas raw_input
à "geler" le pop-up dos. Le livre que je lis est pour Python 2.5 et j'utilise Python 3.1
Que dois-je faire pour résoudre ce problème?
python
python-3.x
Prix Lonnie
la source
la source
Réponses:
À partir de Python 3, a
raw_input()
été renomméinput()
.À partir de Quoi de neuf dans Python 3.0, deuxième élément de la section Builtins .
la source
input()
etraw_input()
.a = input()
prendra l'entrée utilisateur et la mettra dans le bon type. Par exemple: si l'utilisateur tape 5, la valeur dea
est entier 5.a = raw_input()
prendra l'entrée utilisateur et la mettra sous forme de chaîne. Par exemple: si l'utilisateur tape 5, la valeur dansa
est la chaîne '5' et non un entier. Je pensais que cela pourrait être une bonne info pour les débutants en python comme moi.Cela fonctionne en Python 3.x et 2.x:
la source
global input
en haut de la fonction appelante.import __builtin__; input = getattr(__builtin__, 'raw_input', input)
__builtin__
.__builtin__
est renommébuiltins
en Python 3. Les deux sont disponibles comme__builtins__
dans CPython.getattr(__builtins__, 'raw_input', input)
renvoie la valeur par défaut lors de l'importation dans Python 2.7.2.Un moyen fiable de résoudre ce problème est
six est un module qui corrige la plupart des 2/3 des points communs de base de code.
la source
from six.moves import input as raw_input
, vous pouvez conserverraw_input
votre script et exécuter en utilisant les deux versions de Python.Comme d'autres l'ont indiqué, la
raw_input
fonction a été renomméeinput
en Python 3.0, et vous seriez vraiment mieux servi par un livre plus à jour, mais je tiens à souligner qu'il existe de meilleures façons de voir la sortie de votre script .D'après votre description, je pense que vous utilisez Windows, vous avez enregistré un
.py
fichier et vous double-cliquez dessus pour l'exécuter. La fenêtre du terminal qui apparaît se ferme dès la fin de votre programme, vous ne pouvez donc pas voir le résultat de votre programme. Pour résoudre ce problème, votre livre recommande d'ajouter une instructionraw_input
/input
pour attendre que l'utilisateur appuie sur Entrée. Cependant, comme vous l'avez vu, si quelque chose ne va pas, comme une erreur dans votre programme, cette instruction ne sera pas exécutée et la fenêtre se fermera sans que vous puissiez voir ce qui s'est mal passé. Vous trouverez peut-être plus facile d'utiliser une invite de commande ou IDLE.Utilisez une invite de commande
Lorsque vous regardez la fenêtre de dossier qui contient votre programme Python, maintenez la touche Maj enfoncée et cliquez avec le bouton droit n'importe où dans la zone d'arrière-plan blanc de la fenêtre. Le menu qui apparaît doit contenir une entrée "Ouvrir la fenêtre de commande ici". (Je pense que cela fonctionne sur Windows Vista et Windows 7.) Cela ouvrira une fenêtre d'invite de commande qui ressemble à ceci:
Pour exécuter votre programme, tapez ce qui suit (en remplaçant le nom de votre script):
... et appuyez sur entrée. (Si vous obtenez une erreur indiquant que "python" n'est pas une commande reconnue, consultez http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96 ) Lorsque votre programme se termine, qu'il se termine avec succès ou non, la fenêtre restera ouvert et l'invite de commande apparaîtra à nouveau pour vous permettre de taper une autre commande. Si vous souhaitez réexécuter votre programme, vous pouvez appuyer sur la flèche vers le haut pour rappeler la commande précédente que vous avez entrée et appuyer sur entrée pour l'exécuter à nouveau, plutôt que d'avoir à taper le nom du fichier à chaque fois.
Utiliser IDLE
IDLE est un éditeur de programme simple qui est installé avec Python. Entre autres fonctionnalités, il peut exécuter vos programmes dans une fenêtre. Faites un clic droit sur votre
.py
fichier et choisissez "Modifier dans IDLE". Lorsque votre programme apparaît dans l'éditeur, appuyez sur F5 ou choisissez "Exécuter le module" dans le menu "Exécuter". Votre programme s'exécutera dans une fenêtre qui reste ouverte après la fin de votre programme et dans laquelle vous pouvez entrer des commandes Python à exécuter immédiatement.la source
pythonw -m idlelib.idle
La solution de Timmerman fonctionne très bien lors de l'exécution du code, mais si vous ne souhaitez pas obtenir d'
Undefined name
erreurs lors de l'utilisation de pyflakes ou d'un linter similaire, vous pouvez utiliser les éléments suivants à la place:la source
Redefining built-in 'input' (redefined-builtin)
,Unable to import '__builtin__' (import-error)
,Invalid constant name "input" (invalid-name)
.flake8
oupyflakes
afin de ne pas prendre toute la journée avec des avertissements vides de sens.Voici un morceau de code que j'ai mis dans mes scripts que je ne veux pas exécuter dans un environnement py2 / 3-agnostique:
Vous pouvez maintenant utiliser real_raw_input. C'est assez cher mais court et lisible. L'utilisation de données brutes coûte généralement beaucoup de temps (en attente de données), ce n'est donc pas important.
En théorie, vous pouvez même assigner raw_input au lieu de real_raw_input mais il peut y avoir des modules qui vérifient l'existence de raw_input et se comportent en conséquence. Il vaut mieux rester prudent.
la source
Ce n'est probablement pas la meilleure solution, mais avant de venir ici, je l'ai fait à la volée pour continuer à travailler sans avoir une pause rapide dans mes études.
Ensuite, lorsque je lance
raw_input('Enter your first name: ')
le script sur lequel je travaillais, il le capture comme il leinput()
ferait.Il y a peut-être une raison pour ne pas le faire, que je n'ai pas encore rencontré!
la source
raw_input = input
?