2009-10-23 51 views
21

¿Hay alguna manera de pegar un bloque de código en IDLE? Pegar línea por línea funciona, pero a veces me gustaría pegar muchas líneas a la vez. Cuando intento, IDLE lee la primera línea e ignora el resto.Pegar varias líneas en IDLE

>>> a = 1 
b = 2 
c = 3 

>>> 
>>> a 
1 
>>> b 

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    b 
NameError: name 'b' is not defined 

Respuesta

21

Probablemente no es el procedimiento más bella, pero esto funciona:

cmds = ''' 

pegar sus comandos, seguido por ''':

a = 1 
b = 2 
c = 3 
''' 

Entonces exec(cmds) los ejecutará.

O más directamente,

exec(''' 

continuación, pegar los comandos, seguido por '''):

a = 1 
b = 2 
c = 3 
''') 

Es sólo un truco, tal vez hay un funcionario más, de manera elegante.

+1

que funciona, pero yo estaba realmente esperando por algo más elegante. Es bastante común pegar un montón de líneas en IDLE. Prueba de partes de código de un IDE o material ejecutado publicado en SO o lo que sea. – foosion

+1

Sí, a menudo me encontré con el mismo problema y me hice la misma pregunta ... Lo mismo ocurre al pegar una parte del código con sangría, "resuelto" escribiendo 'si es verdadero:' y luego pegando el código. Un poco de un truco sucio ;-) – RedGlyph

+0

usando pyscripter ... copie el código de cualquier parte, digamos una función ... y luego haga clic derecho en el intérprete ... elija "pegar y ejecutar". y esto funcionará muy bien para la pasta de varias líneas. – ihightower

6

IdleX proporciona la extensión PastePyShell.py para IDLE que permite pegar varias líneas en el shell para su ejecución.

Cuestiones relacionadas