¿Cuál es la diferencia entre raw_input()
y input()
en python3.x?¿Cuál es la diferencia entre raw_input() y input() en python3.x?
Respuesta
La diferencia es que raw_input()
no existe en Python 3.x, mientras que input()
sí. En realidad, el antiguo raw_input()
se ha renombrado como input()
, y el antiguo input()
se ha ido, pero se puede simular fácilmente usando eval(input())
. (Recuerde que eval()
es malo, por lo que si intenta utilizar formas más seguras de analizar su entrada si es posible.)
"¿Cuál es la diferencia entre' raw_input' ...? " - "La diferencia es que no hay' raw_input'. " ... ¡Una gran diferencia drástica, diría! –
En Python 2 supongo que supusieron que los programadores querían realmente "ejecutar" como un comando la entrada del usuario, ya que inicialmente (supongo) que la solicitud del usuario podría ser solo para eso. Pero cuando se dieron cuenta de que los programadores también querían obtener la entrada "en bruto", diseñaron otra función llamada "entrada en bruto". En Python 3 se dieron cuenta de lo estúpido que era y simplemente borraron la ejecución de la entrada original por defecto, produciendo solo una función simple. –
Repl.it, ejecutando Py3.5.1 tiene raw_input() como palabra clave. – OldBunny2800
En Python , raw_input()
devuelve una cadena, y input()
intenta ejecutar la entrada como una expresión de Python.
Como obtener una cadena era casi siempre lo que quería, Python 3 lo hace con input()
. Como dice Sven, si alguna vez quieres el viejo comportamiento, eval(input())
funciona.
Debe agregar que Python 3 no tiene 'raw_input()'. –
¿Cuál es el uso de la entrada en ejecución como expresión de python? –
@AkshayVijayJain, probablemente fue para ingresar números. Pero es totalmente inseguro. – MarSoft
Python 2:
raw_input()
toma exactamente lo que el usuario escribió y pasa de nuevo como una cadena.input()
primero toma elraw_input()
y luego realiza uneval()
en él también.
La diferencia principal es que input()
espera una declaración pitón sintácticamente correcta, donde raw_input()
no.
Python 3:
raw_input()
fue renombrada comoinput()
input()
por lo que ahora devuelve la cadena exacta.- Antiguo
input()
eliminado.
Si desea utilizar el viejo input()
, lo que significa que necesita para evaluar una entrada de usuario como una declaración de pitón, usted tiene que hacerlo de forma manual mediante el uso de eval(input())
.
... en python 2. – askewchan
no aplicable para python 3 –
Me gustaría añadir un poco más de detalle a la explicación proporcionada por todos para el python 2 usuarios. raw_input()
, que, por ahora, ya sabes que evalúa los datos que el usuario ingresa como una cadena. Esto significa que Python no intenta ni siquiera comprender los datos ingresados nuevamente. Todo lo que considerará es que los datos ingresados serán de cadena, ya sea o no una cadena real o int o cualquier otra cosa.
Mientras que input()
, por otro lado, intenta comprender los datos ingresados por el usuario. Entonces la entrada como helloworld
incluso mostraría el error como 'helloworld is undefined
'.
En conclusión, para pitón 2, para entrar en una cadena demasiado lo que necesita para entrar en él como 'helloworld
' que es la estructura común que se utiliza en Python utilizar cadenas.
En Python 3, raw_input()
no existe, que ya fue mencionado por Sven.
En Python 2, la función input()
evalúa su entrada.
Ejemplo:
name = input("what is your name ?")
what is your name ?harsha
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = input("what is your name ?")
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
En el ejemplo anterior, Python 2.x está intentando evaluar Harsha como una variable en lugar de una cadena. Para evitar esto, podemos utilizar comillas dobles alrededor de nuestra entrada como "Harsha":
>>> name = input("what is your name?")
what is your name?"harsha"
>>> print(name)
harsha
raw_input()
El raw_input() `función no evalúa, se acaba de leer lo que usted entrar.
Ejemplo:
name = raw_input("what is your name ?")
what is your name ?harsha
>>> name
'harsha'
Ejemplo:
name = eval(raw_input("what is your name?"))
what is your name?harsha
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
name = eval(raw_input("what is your name?"))
File "<string>", line 1, in <module>
NameError: name 'harsha' is not defined
En ejemplo anterior, sólo estaba tratando de evaluar la entrada del usuario con la función de eval
.
- 1. Diferencias entre `input` y` raw_input`
- 2. ¿Cuál es la diferencia entre x ++ y ++ x
- 3. ¿Cuál es la diferencia entre X = X ++; vs X ++ ;?
- 4. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 5. Cuál es la diferencia entre $ y jQuery
- 6. ¿Cuál es la diferencia en R entre idéntico (x, y) e isTRUE (all.equal (x, y))?
- 7. ¿Cuál es la diferencia entre/dev/uinput y/dev/input en Linux?
- 8. ¿Cuál es la diferencia entre 'var $ x' y 'var x' en javascript?
- 9. ¿Cuál es la diferencia entre x: Key y x: Nombre en WPF?
- 10. Diferencia entre x: Clave y x: Nombre
- 11. ¿Cuál es la diferencia entre + = y = +?
- 12. Python: ¿Cuál es la diferencia entre __builtin__ y __builtins__?
- 13. ¿cuál es la diferencia entre:.! y: r !?
- 14. ¿Cuál es la diferencia entre ".equals" y "=="?
- 15. Cuál es la diferencia entre = y: =
- 16. Cuál es la diferencia entre $ (...) y `...`
- 17. ¿Cuál es la diferencia entre dict() y {}?
- 18. ¿Cuál es la diferencia entre " " y ""?
- 19. ¿Cuál es la diferencia entre .ToString (+) y ""
- 20. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 21. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 22. ¿Cuál es la diferencia entre {0} y ""?
- 23. ¿Cuál es la diferencia entre cerrar Input/OutputStream y cerrar Socket directamente?
- 24. En ASP.Net, ¿cuál es la diferencia entre <% = y <% #
- 25. ¿Cuál es la diferencia entre == y = en Prolog?
- 26. ¿Cuál es la diferencia entre% define y equ en NASM?
- 27. R, ¿Cuál es la diferencia entre df [ "x"] y $ df x
- 28. Haskell: ¿Cuál es la diferencia entre (+1) y (\ x-> x + 1)?
- 29. JavaScript: ¿Cuál es la diferencia entre `if (! X)` y `if (x == null)`?
- 30. En matplotlib, ¿cuál es la diferencia entre set_xlim y set_xbound?
¿Cómo se hace un programa que tenga en cuenta tanto Python 2 como Python 3 compatibles? –
Para hacer eso, intenta establecer 'input' en' raw_input' e ignorar los errores de nombre. –
Busque la biblioteca 'six' para compatibilidad con python 2 y 3. –