¿Cómo uso raw_input en Python 3?

Resuelto Lonnie Price asked hace 15 años • 9 respuestas

En Python 2:

raw_input()

En Python 3, aparece un error:

NameError: el nombre 'raw_input' no está definido

Lonnie Price avatar Jun 05 '09 15:06 Lonnie Price
Aceptado

A partir de Python 3, raw_input()se le cambió el nombre a input().

De Novedades de Python 3.0, segundo elemento de la sección Incorporados.

balpha avatar Jun 05 '2009 08:06 balpha

Esto funciona en Python 3.x y 2.x:

# Fix Python 2.x.
try: input = raw_input
except NameError: pass
print("Hi " + input("Say something: "))
Cees Timmerman avatar Sep 06 '2011 14:09 Cees Timmerman

Una forma confiable de abordar esto es

from six.moves import input

six es un módulo que soluciona muchos de los 2/3 puntos débiles comunes del código base.

tacaswell avatar Jul 28 '2015 21:07 tacaswell

La solución de Timmerman funciona muy bien al ejecutar el código, pero si no desea recibir Undefined nameerrores al usar pyflakes o un linter similar, puede usar lo siguiente:

try:
    import __builtin__
    input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
    pass
jmagnusson avatar Aug 20 '2013 09:08 jmagnusson