2012-01-24 08:58:00 +0000 2012-01-24 08:58:00 +0000
36
36

¿Cómo puedo escribir código de más de 1 línea en el intérprete de Python?

Tengo un problema de codificación de Python en la terminal. Sólo estoy aprendiendo lo básico, así que no tengo necesidad de crear archivos .py.

En la terminal puedo ejecutar una línea de código en el intérprete de Python, pero ¿cómo escribo más de una línea?

Obviamente si le doy a enter, entra el comando y no baja de línea.

Sólo quiero probar lo siguiente en la terminal:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)

Respuestas (7)

33
33
33
2012-01-24 09:37:07 +0000

Añadir una barra invertida final (`## Añadir una barra invertida final ()

El truco es - similar a lo que haría en bash, por ejemplo - añadir una barra invertida final. Por ejemplo, si quiero imprimir un 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Si escribes un ## Añadir una barra invertida final (## Añadir una barra invertida final ()

El truco es - similar a lo que haría en bash, por ejemplo - añadir una barra invertida final. Por ejemplo, si quiero imprimir un 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Si escribes un , Python te pedirá con ... (líneas de continuación) que introduzcas el código en la siguiente línea, por así decirlo.

Nota al margen: Esto es lo que ocurre automáticamente cuando creas una función o definición de clase, es decir, las veces que realmente necesitas una nueva línea, por lo que nunca hay un uso realmente bueno para eso, o al menos ninguno que yo conozca. En otras palabras, Python es lo suficientemente inteligente como para ser consciente de que necesitas líneas de continuación cuando estás introduciendo una nueva definición de función u otras construcciones similares (por ejemplo, if:). En estos casos automáticos, tenga en cuenta que necesita introducir una línea vacía usando ## Añadir una barra invertida final (## Añadir una barra invertida final ()

El truco es - similar a lo que haría en bash, por ejemplo - añadir una barra invertida final. Por ejemplo, si quiero imprimir un 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Si escribes un ## Añadir una barra invertida final (## Añadir una barra invertida final ()

El truco es - similar a lo que haría en bash, por ejemplo - añadir una barra invertida final. Por ejemplo, si quiero imprimir un 1:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>>

Si escribes un , Python te pedirá con ... (líneas de continuación) que introduzcas el código en la siguiente línea, por así decirlo.

Nota al margen: Esto es lo que ocurre automáticamente cuando creas una función o definición de clase, es decir, las veces que realmente necesitas una nueva línea, por lo que nunca hay un uso realmente bueno para eso, o al menos ninguno que yo conozca. En otras palabras, Python es lo suficientemente inteligente como para ser consciente de que necesitas líneas de continuación cuando estás introduciendo una nueva definición de función u otras construcciones similares (por ejemplo, if:). En estos casos automáticos, tenga en cuenta que necesita introducir una línea vacía usando para decirle a Python que ha terminado.

Para todo lo demás, necesitas escribir una línea tras otra. La forma en que funciona un intérprete es que, bueno, interpreta cada línea que le das. Ni más, ni menos. Sólo “actuará” cuando vea una nueva línea, por lo que le dirá al intérprete que ejecute lo que le has dado. La barra invertida simple evitará que el intérprete reciba alguna vez un carácter de nueva línea (es decir, no sabrá que realmente presionaste Enter), pero eventualmente recibirá uno.

El intérprete de Python tiene capacidades avanzadas cuando se usa GNU readline, como Emacs o combinaciones de teclas estilo vi para navegar dentro de una línea (por ejemplo, Ctrl-A). Sin embargo, éstos sólo funcionan en la línea actual. El historial también está ahí, simplemente inténtalo y pulsa ↑.

¿Y si quiero ejecutar líneas complicadas una y otra vez?

Probablemente quieras usar archivos fuente propios si quieres ejecutar más de una línea de código a la vez.

O bien, utiliza Jupyter notebooks , que ofrecen una forma estupenda e interactiva de crear código Python con un intérprete incorporado. Puedes escribir código como lo harías en un editor de código fuente, pero puedes elegir qué líneas se interpretan juntas. Entonces puedes ejecutar sólo partes del código de forma selectiva. Lo mejor es que lo pruebes y veas si se ajusta a tu flujo de trabajo.

8
8
8
2013-07-01 22:22:29 +0000

¿Qué tal si utilizamos ;¿Qué tal si utilizamos ? El punto y coma señala el final de un comando y la barra invertida indica que continuamos en la siguiente línea. Por ejemplo, escribapython` en la línea de comandos para entrar en el intérprete de Python, entonces

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

debería dar una salida de

0
4
2
2
2
2012-01-24 09:54:25 +0000

Simplemente, si quieres aprender y quieres ejecutar más de una línea lo escribes en un archivo .py.

El método de la barra invertida es bueno cuando quieres ejecutar rápidamente una serie de comandos, pero no ayuda cuando estás aprendiendo.

Podrás desarrollar mejor el código, editar comandos individuales sin preocuparte por las faltas de ortografía, y reutilizar los fragmentos de código que encuentres útiles si los escribes en un archivo pequeño.

1
1
1
2018-05-01 18:28:49 +0000

Estaba repasando la respuesta que has obtenido.Seguí experimentando poniendo diferentes símbolos.Finalmente conseguí la sintaxis correcta para escribirlo.Prueba lo siguiente

print("more string") ; print(3)

esto te dará un resultado

more string

3

sin ningún error

Acabo de usar ‘;’ para hacer que se escriba en otra línea

espero que mi respuesta te ayude

1
1
1
2013-07-01 22:44:47 +0000

Acabo de escribir lo siguiente en el prompt de mi shell, y ha funcionado bien:

$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>>

La forma de escribir más de una línea de código en el intérprete interactivo de Python es, bueno, escribir más de una línea de código en el intérprete interactivo de Python. Creo que eso es suficiente para tus propósitos.

Es cierto que obtendrás un nuevo prompt después de cada línea, lo que significa que si dos de tus líneas de código producen salida, esa salida estará separada por prompts. Supongo que eso es lo que te preocupa, aunque el ejemplo de tu pregunta no lo sugiere:

$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>>

Si eso es un problema, puedes encerrar tus múltiples sentencias en una sentencia (¡correctamente indentada!) if:

$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
... print "first line"
... print "second line"
... 
first line
second line
>>>

(Sugiero, aunque no responda a tu pregunta, que si estás escribiendo código lo suficientemente complejo como para que esto importe, deberías escribir scripts. Tal vez hayas empezado a hacerlo en el año y medio transcurrido desde que publicaste la pregunta).

0
0
0
2018-08-28 19:51:18 +0000

Sólo tienes que salir del shell y abrir un nuevo archivo de editor. Es decir, ir a archivo y abrir un nuevo archivo. Escriba tantas líneas de código como quiera.

-2
-2
-2
2016-05-25 12:12:58 +0000

En los tres puntos asegúrate de pulsar la tecla “tab” antes de introducir el siguiente comando. Puedes continuar escribiendo tantos comandos de esta manera. Así que cuando presione “enter” después de escribir su segunda línea de código, el intérprete le permitirá introducir la tercera línea de código… como en el ejemplo de Fibonacci de abajo (del tutorial):

a,b=0,1 while b<10: … print(b) # Si introduce el comando “print” inmediatamente después de los puntos y presiona la tecla “enter” al final, obtendrá un error de sangría. En lugar de eso, pulsa el tabulador después de los tres puntos, luego escribe tu código y pulsa la tecla enter, te permitirá introducir la tercera línea de código y así sucesivamente. Mira el siguiente ejemplo (del tutorial):

a,b=0,1 # Seguido de la tecla enter while b<10: # Seguido de la tecla enter … print(b) # Seguido de la tecla enter. nota el tabulador después de los tres puntos … a,b=b,a+b # Seguido de la tecla enter …tecla enter # No hay más comandos para introducir

verás el resultado del prog anterior