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

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

Tengo un problema al codificar Python en la terminal. Recién estoy aprendiendo lo básico, así que no necesito 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 presiono Enter, ingresa el comando y no baja una 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)

Respuesta1

Agregue una barra invertida al final ( \)

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

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

Si escribe un \, Python le solicitará ...(líneas de continuación) que ingrese el código en la siguiente línea, por así decirlo.

Nota al margen: esto es lo que sucede automáticamente cuando crea una función o definición de clase, es decir, los momentos en que realmentenecesidaduna nueva línea, por lo que nunca hay un buen uso para eso, o al menos ninguno que yo sepa. En otras palabras, Python es lo suficientemente inteligente como para ser consciente de que necesita líneas de continuación cuando ingresa una nueva definición de función u otras construcciones similares (por ejemplo if:). En estos casos automáticos, tenga en cuenta que debe ingresar una línea vacía usando \para decirle a Python que ya terminó.

Para todo lo demás, debes escribir una línea tras otra. La forma en que funciona un intérprete es que, bueno, interpreta cada línea que le envías. Ni más ni menos. Sólo "actuará" cuando vea una nueva línea, por lo que le indicará al intérprete que ejecute lo que le dio. La barra invertida única evitará que el intérprete reciba un carácter de nueva línea (es decir, no sabrá que usted realmente presionó Enter), pero eventualmente recibirá uno.

El intérprete de Python tienecapacidades avanzadascuando usa GNU readline, como Emacs o combinaciones de teclas estilo vi para navegar dentro de una línea (por ejemplo Ctrl-A). Sin embargo, estos funcionan sólo en la línea actual. El historial también está ahí, solo intenta presionar .

¿Qué pasa si quiero ejecutar líneas complicadas una y otra vez?

Probablemente desee utilizar archivos fuente adecuados si desea ejecutar más de una línea de código a la vez.

O usarcuadernos jupyter, que ofrecen una forma excelente e interactiva de crear código Python con un intérprete integrado. Puedes escribir código como lo harías en un editor de código fuente, pero puedes elegir qué líneas se interpretan juntas. Luego podrá ejecutar sólo partes del código de forma selectiva. La mejor manera es intentar ver si eso se ajusta a su flujo de trabajo.

Respuesta2

¿Qué tal usarlo ;\? El punto y coma indica el final de un comando y la barra invertida indica que continuamos en la siguiente línea. Por ejemplo, escriba pythonen la línea de comando para ingresar al intérprete de Python, luego

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

debería dar una salida de

0
4

Respuesta3

Estaba repasando la respuesta que tienes. Seguí experimentando poniendo diferentes símbolos. Finalmente obtuve 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 que escriba en otra linea

espero que mi respuesta te pueda ayudar

Respuesta4

Simplemente escribí lo siguiente en el símbolo del shell y funcionó 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 sería lo suficientemente bueno para tus propósitos.

Es cierto que recibirá un nuevo mensaje después de cada línea, lo que significa que si dos de sus líneas de código producen resultados, esos resultados estarán separados por mensajes. Supongo que eso es lo que le preocupa, aunque el ejemplo de su pregunta no sugiere eso:

$ 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, puede incluir sus múltiples declaraciones en una ifdeclaración (¡con la sangría adecuada!):

$ 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
>>> 

(Yo sugeriría, aunque no responde a su pregunta, que si está escribiendo código que sea lo suficientemente complejo como para que esto importe, debería escribir scripts. Quizás haya comenzado a hacerlo en el año y medio desde que publicaste la pregunta.)

información relacionada