Me gustaría leer datos del teclado en Python
Intento esto:
nb = input('Choose a number')
print ('Number%s \n' % (nb))
Pero no funciona, ni con eclipse ni en la terminal, siempre se detiene la pregunta. Puedo escribir un número pero después no pasa nada.
¿Sabes por qué?
Respuestas:
tratar
y si quieres tener un valor numérico simplemente conviértelo:
fuente
Parece que estás mezclando diferentes pitones aquí (Python 2.x vs. Python 3.x) ... Esto es básicamente correcto:
El problema es que solo es compatible con Python 3. Como respondió @sharpner, para versiones anteriores de Python (2.x), debe usar la función
raw_input
:Si desea convertir eso en un número, entonces debe intentar:
... aunque debe tener en cuenta que esto puede generar una excepción:
Y si desea imprimir el número con formato,
str.format()
se recomienda en Python 3 :En vez de:
Pero ambas opciones (
str.format()
y%
) funcionan tanto en Python 2.7 como en Python 3.fuente
space
después de su cadena para que el usuario ingrese su entrada si paz.Enter Tel12340404
vsEnter Tel: 12340404
. ¡ver! : PSin bloqueo, ejemplo de subprocesos múltiples:
Dado que el bloqueo en la entrada del teclado (ya que los
input()
bloques de funciones) con frecuencia no es lo que queremos hacer (con frecuencia nos gustaría seguir haciendo otras cosas), aquí hay un ejemplo multiproceso muy simplificado para demostrar cómo seguir ejecutando su aplicación principal mientras sigue leyendo en las entradas del teclado cada vez que llegan .Esto funciona creando un subproceso para ejecutar en segundo plano, llamando continuamente
input()
y luego pasando cualquier dato que reciba a una cola.De esta manera, su hilo principal se deja hacer lo que quiera, recibiendo los datos de entrada del teclado del primer hilo siempre que haya algo en la cola.
1. Ejemplo de código Bare Python 3 (sin comentarios):
2. El mismo código de Python 3 que el anterior, pero con extensos comentarios explicativos:
Salida de muestra:
Referencias
Relacionados / entrecruzados:
fuente
input([prompt])
es equivalenteeval(raw_input(prompt))
y está disponible desde python 2.6Como no es seguro (debido a eval), se debe preferir raw_input para aplicaciones críticas.
fuente
raw_input
fue renombradoinput
y NO evalúa.Esto debería funcionar
fuente
input()
?