Professional Documents
Culture Documents
converted by W eb2PDFConvert.com
p a ra re fe rirse a e sta to rtu g a . E sta s tre s p rim e ra s ln e a s n o s se p re p a ra , listo p a ra h a ce r a lg u n a s co sa s
tile s.
E n la s ln e a s 4 -6 , in stru im o s a l o b je c t o d e a le x q u e se m u e va , y q u e g ire . H a ce m o s e sto m e d ia n te la
i n v o c a c i n , o la a ctiva ci n , lo s m t o d o s d e a le x e sta s so n la s in stru ccio n e s q u e to d a s la s
to rtu g a s sa b e n c m o re sp o n d e r.
La ltim a ln e a ta m b i n d e se m p e a u n p a p e l: la va ria b le wn se re fie re a la ve n ta n a a ctiva . C u a n d o se
in vo ca e l m to d o exitonclick, d e tie n e la e je cu ci n d e l p ro g ra m a , y e sp e ra a q u e e l u su a rio h a g a clic
co n e l ra t n e n a lg n lu g a r d e la ve n ta n a . C u a n d o e ste e ve n to click se p ro d u ce , la re sp u e sta e s ce rra r
la ve n ta n a d e la to rtu g a y la sa lid a (la e je cu ci n d e la p a ra d a ) d e l p ro g ra m a d e P yth o n .
1 import turtle
2
3 turtle.setup(800, 600) # establecer el tamao de la ventana de 800 por 600 pxeles
4 wn = turtle.Screen() # establecer wn al objeto de la ventana
5 wn.bgcolor("lightgreen") # establecer el color de fondo de la ventana
6 wn.title("Hola, Tess!") # establecer el ttulo de la ventana
7 tess = turtle.Turtle()
8 tess.color("blue") # hacer tess azul
9 tess.pensize(3) # establecer el ancho de la pluma
10 tess.forward(300)
11 tess.left(120)
12 tess.forward(300)
13
14 wn.exitonclick()
converted by W eb2PDFConvert.com
1. M o dific arem o s es te pro gram a antes de c rear la v entana, s e le pedir al us uario que intro duzc a el c o lo r de
fo ndo des eado . Se debe alm ac enar las res pues tas del us uario en una v ariable, y m o dific ar el c o lo r de la
v entana de ac uerdo a lo s des eo s del us uario . (Pis ta: s e puede enc o ntrar una lis ta de no m bres de c o lo res
perm itido s en http://w w w .tc l.tk /m an/tc l8.4/Tk C m d/c o lo rs .htm . Inc luy e alguno s bas tante inus uales , c o m o
peac h puff (bo c anada de m elo c o t n) y H o tPink (ro s ado c aliente). )
2. Lo s c am bio s s im ilares para perm itir al us uario , en tiem po de ejec uc i n, para es tablec er el c o lo r de Tes s .
3. H aga lo m is m o para el anc ho de la plum a de Tes s . Sugerenc ia: el dilo go c o n el us uario dev o lv er una c adena,
pero el m to do de tes s pensize es pera que s u argum ento es un entero . A s que tendrs que c o nv ertir la
c adena en un entero de pas ar a pensize.
3 .2 . C a s o s u n a m a n a d a d e to rtu g a s
A l ig u a l q u e p o d e m o s te n e r m u ch o s e n te ro s d ife re n te s e n u n p ro g ra m a , p o d e m o s te n e r m u ch a s to rtu g a s.
C a d a u n o d e e llo s se lla m a u n a i n s t a n c i a . C a d a in sta n cia tie n e su s p ro p io s a trib u to s y m to d o s - p o r lo
q u e A le x p u e d e d ib u ja r co n u n l p iz n e g ro d e lg a d o y e sta r e n a lg u n a p o sici n , m ie n tra s q u e T e ss q u e
p o d ra e sta r p a sa n d o e n su p ro p ia d ire cci n co n u n b o lg ra fo d e co lo r ro sa d e g ra sa (fa t p in k). A s q u e a q u
e st lo q u e su ce d e cu a n d o A le x te rm in a su re ct n g u lo , y T e ss co m p le ta su tri n g u lo , e n u n p ro g ra m a
lla m a d o :d o w n lo a d : tess_y_alex.py <recursos/cap03/tess_y_alex.py>:
1 import turtle
2
3 # setup the window and its attributes
4 turtle.setup(800, 600)
5 wn = turtle.Screen()
6 wn.bgcolor("lightgreen")
7 wn.title("Tess & Alex")
8
9 # instantiate (create) tess and set her attributes
10 tess = turtle.Turtle()
11 tess.color("hotpink")
12 tess.pensize(5)
13
14 # instantiate alex
15 alex = turtle.Turtle()
16
17 # draw an equilateral triangle with tess
18 tess.forward(320)
19 tess.left(120)
20 tess.forward(320)
21 tess.left(120)
22 tess.forward(320)
23 tess.left(120)
24
25 # turn tess around and move her away from the origin
26 tess.right(180)
27 tess.forward(320)
28
29 # make alex draw a square
30 alex.forward(200)
31 alex.left(90)
32 alex.forward(200)
33 alex.left(90)
34 alex.forward(200)
35 alex.left(90)
36 alex.forward(200)
37
38 wn.exitonclick()
q u e g e n e ra e ste cu a n d o se e je cu ta :
converted by W eb2PDFConvert.com
A q u e st n a lg u n a s C m o p e n sa r co m o u n e x p e rto e n co m p u ta ci n o b se rva cio n e s:
3 .3 . El b u c le fo r
C u a n d o n o so tro s d ib u ja m o s e l cu a d ra d o , fu e a lg o b a sta n te te d io so . T u vim o s q u e p a sa r y lu e g o a su ve z
cu rva r, e ct, e ct., e n cu a tro o ca sio n e s. S i tu vi ra m o s q u e d ib u ja r u n h e x g o n o , o u n O ct g o n o , o u n
p o lg o n o d e 4 2 la d o s, h u b ie ra sid o u n a p e sa d illa .
P o r lo q u e u n b lo q u e d e co n stru cci n b sico d e to d o s lo s p ro g ra m a s d e b e d e se r ca p a z d e re p e tir e l
c d ig o , u n a y o tra ve z .
P yth o n b u cle f o r re su e lve e sto p a ra n o so tro s.
D ig a m o s q u e te n g o a lg u n o s a m ig o s, y n o s g u sta ria e n via rle s u n co rre o e le ctr n ico ca d a in vit n d o lo s a
n u e stro p a rtid o . D a d o q u e n o sa b e m o s c m o e n via r co rre o e le ctr n ico , sin e m b a rg o , p o r e l m o m e n to s lo
te n d re m o s q u e im p rim ir u n m e n sa je p o r ca d a a m ig o :
converted by W eb2PDFConvert.com
Hola Joe. Por favor, ven a mi fiesta el sbado!
Hola Amy. Por favor, ven a mi fiesta el sbado!
Hola Brad. Por favor, ven a mi fiesta el sbado!
Hola Angelina. Por favor, ven a mi fiesta el sbado!
Hola Tsuki. Por favor, ven a mi fiesta el sbado!
Hola Thandi. Por favor, ven a mi fiesta el sbado!
Hola Pars. Por favor, ven a mi fiesta el sbado!
3 .4 . F lu jo d e la e je c u c i n d e l b u c le fo r
C o m o u n p ro g ra m a se e je cu ta , e l in t rp re te sie m p re co m p ru e b a q u e la d e cla ra ci n e st a p u n to d e se r
e je cu ta d o . Lla m a m o s a e sto e l c o n t r o l d e f l u jo , e l f l u jo d e e je c u c i n d e l p ro g ra m a . C u a n d o lo s
h u m a n o s e je cu ta n lo s p ro g ra m a s, a m e n u d o u sa n su s d e d o s p a ra se a la r a ca d a in stru cci n e n tu rn o . P o r
lo q u e p o d ra p e n sa r e n e l flu jo d e co n tro l co m o d e d o q u e se m u e ve e n P yth o n .
C o n tro l d e flu jo h a sta a h o ra h a sid o e stricta m e n te d e a rrrib a a a b a jo , u n a d e cla ra ci n a la ve z . E l la z o d e
b u cle for ca m b ia e sto .
C o n tro l d e flu jo e s a m e n u d o f cil d e visu a liz a r y co m p re n d e r si se d ib u ja u n d ia g ra m a d e flu jo . E sto
m u e stra lo s p a so s e x a cto s y la l g ica d e c m o fu n cio n a la in stru cci n for p a ra e je cu ta r.
M ie n tra s q u e a h o rra r u n a s ln e a s d e c d ig o q u e p u e d e se r co n ve n ie n te , p e ro n o e s e l p ro b le m a a q u . Lo
q u e e s m u ch o m s im p o rta n te e s q u e h e m o s e n co n tra d o u n p a tr n d e re p e tici n d e la s d e cla ra cio n e s, y
re o rg a n iz a d o n u e stro p ro g ra m a p a ra re p e tir e l p a tr n . E n co n tra r lo s tro z o s y d e a lg u n a m a n e ra co n se g u ir
n u e stro s p ro g ra m a s o rg a n iz a d o s a lre d e d o r d e lo s tro z o s e s u n a h a b ilid a d vita l e n C m o p e n sa r co m o u n
cie n tfico d e la co m p u ta ci n .
Lo s va lo re s e n la lista , [0, 1, 2, 3], se le s p ro p o rcio n p a ra q u e e l cu e rp o d e l b u cle e je cu ta cu a tro ve ce s.
P o d ra m o s h a b e r u sa d o cu a lq u ie ra d e lo s cu a tro va lo re s, p e ro e sto s so n lo s co n ve n cio n a le s p a ra su u so . D e
h e ch o , so n ta n p o p u la re s q u e P yth o n n o s d a u n a e sp e cia l fu n ci n incorporada d e se rie p a ra e ste p ro p sito .
converted by W eb2PDFConvert.com
T e n g a e n cu e n ta q u e :
>>> list(range(6))
[0, 1, 2, 3, 4, 5]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Q u p a s a ra s i h ic i ra m o s e s te c a m b io ? ...
for clr in ["amarillo", "rojo", "prpura", "azul"]:
alex.color(clr)
alex.forward(250)
alex.left(90)
U na v ariable tam bin s e le puede as ignar un v alo r que es una lis t (lis ta). A s que las lis tas tam bin s e pueden
utilizar en o tras s ituac io nes que el buc le for. El c digo anterio r s e po dra rees c ribir as :
3 .6 . A p o c o m s d e m to d o s d e to rtu g a s y tru c o s
M to d o s d e to rtu g a p u e d e u tiliz a r lo s n g u lo s n e g a tivo s o la s d ista n cia s. A s tess.foward (-100) se m o ve r
te ss h a cia a tr s y tess.left (-30) le d a vu e lta a la d e re ch a . A d e m s, d a d o q u e h a y 3 6 0 g ra d o s e n u n crcu lo ,
d e cu m p lir lo s 3 0 a la iz q u ie rd a te n d r fre n te a u ste d e n la m ism a d ire cci n d e g iro d e 3 3 0 a la d e re ch a ! (La
a n im a ci n e n la p a n ta lla se r d ife re n te , a u n q u e u ste d se r ca p a z d e d e cir si T e ss se e st co n virtie n d o e n
se n tid o h o ra rio o a n tih o ra rio !)
E sto su g ie re q u e n o n e ce sita m o s ta n to u n m to d o d e g ira r a la iz q u ie rd a y a la d e re ch a q u e p o d ra se r
m in im a lista s, y s lo h a y u n m to d o . T a m b i n h a y u n m to d o h a cia a tr s . (S i u ste d e s m u y n e rd , e s p o sib le
d isfru ta r d e d e cir alex.backward (-100) p a ra m o ve r a le x h a cia a d e la n te !)
P a rte d e p e n sa r co m o u n cie n tfico e s co m p re n d e r m e jo r la e stru ctu ra y re la cio n e s rica s e n su ca m p o . A s
q u e re visa r a lg u n o s h e ch o s b sico s a ce rca d e la g e o m e tra y la s ln e a s d e n m e ro , co m o e sta m o s h a cie n d o
a q u e s u n b u e n co m ie n z o si va m o s a ju g a r co n la s to rtu g a s.
L p iz d e la to rtu g a se p u e d e n re co g e r o d e ja r. E sto n o s p e rm ite m o ve r u n a to rtu g a a u n lu g a r d ife re n te sin
d ib u ja r u n a ln e a . Lo s m to d o s so n
alex. penup()
alex. forward(100) # esto hace que mueva alex, pero no hay lnea dibujada
alex. pendown ()
converted by W eb2PDFConvert.com
alex.shape("turtle")
alex.speed(10)
import turtle
turtle.setup(800, 600)
wn = turtle.Screen()
wn.bgcolor("lightgreen")
wn.title("Tess's Spiral")
tess = turtle.Turtle()
tess.shape("turtle")
tess.color("blue")
q u e g e n e ra e sto cu a n d o se e je cu ta :
T e n cu id a d o a h o ra : co n to d o s e x ce p to u n a d e la s fo rm a s q u e se ve e n la p a n ta lla d e a q u so n la s h u e lla s
cre a d a s p o r e l se llo . P e ro e l p ro g ra m a s lo cu e n ta co n u n a in sta n cia d e to rtu g a - S e p u e d e a ve rig u a r cu l
e s e l te ss re a l? (P ista : si u ste d n o e st se g u ro , e scrib a u n a n u e va ln e a d e c d ig o d e sp u s d e l b u cle fo r p a ra
ca m b ia r e l co lo r d e T e ss, o p o n e r su p lu m a y d ib u ja u n a ln e a , o p a ra ca m b ia r su fo rm a , e tc)
3 .7 . G lo s a rio
a t t r ib u t e
A lg n e sta d o o va lo r q u e p e rte n e ce a u n o b je to p a rticu la r. P o r e je m p lo , T e ss tie n e u n co lo r.
canvas
U n a su p e rficie d e n tro d e u n a ve n ta n a d e d ib u jo , d o n d e se lle va a ca b o .
c o n t r o l d e f lu j o
converted by W eb2PDFConvert.com
V e r e l flu jo d e e je cu ci n e n e l p r x im o ca p tu lo .
S e n t e n c ia F o r L o o p
U n a d e cla ra ci n e n P yth o n p a ra la re p e tici n co n ve n ie n te d e se n te n cia s e n e l cu e rp o d e l b u cle .
L IS T :
U n tip o d e d a to s e n P yth o n q u e co n tie n e u n a co le cci n d e va lo re s. Lista s e n P yth o n e st n e n tre
co rch e te s ([,]) y e le m e n to s d e la lista e st n se p a ra d o s p o r co m a s (,).
c u e r p o d e l b u c le
C u a lq u ie r n m e ro d e in stru ccio n e s a n id a d a s d e n tro d e u n b u cle . La a n id a ci n se in d ica p o r e l h e ch o
d e q u e la s d e cla ra cio n e s se in se rta d e b a jo d e la se n te n cia d e b u cle fo r.
v a r ia b le d e b u c le
U n a va ria b le q u e se u tiliz a co m o p a rte d e u n b u cle fo r. S e le a sig n a u n va lo r d ife re n te e n ca d a ite ra ci n
d e l b u cle , y se u tiliz a co m o p a rte d e la co n d ici n d e te rm in a ci n d e l b u cle , e je m p lo U n o b je to q u e
p e rte n e ce a u n a cla se d e T e ss. Y A le x so n la s d ife re n te s in sta n cia s d e la T o rtu g a d e cla se
M to d o
U n a fu n ci n q u e se a d ju n ta a u n o b je to . In vo ca r o a ctiva r e l m to d o h a ce q u e e l o b je to d e re sp o n d e r
d e a lg u n a m a n e ra , p o r e je m p lo , h a cia a d e la n te e s e l m to d o a l d e cir te ss.fo rw a rd (1 0 0 ).
in v o c a r
U n o b je to tie n e m to d o s. N o so tro s u sa m o s e l ve rb o e n e l se n tid o d e in vo ca r a ctiva r e l m to d o . La
in vo ca ci n d e u n m to d o se h a ce p o n ie n d o e n tre p a r n te sis d e sp u s d e l n o m b re d e l m to d o , co n
a lg u n o s a rg u m e n to s p o sib le s. A s w n .e x ito n click () e s u n a in vo ca ci n d e l m to d o e x ito n click.
m d u lo
U n a rch ivo q u e co n tie n e d e fin icio n e s d e P yth o n y d e cla ra cio n e s d e stin a d o s a se r u tiliz a d o s e n o tro s
p ro g ra m a s P yth o n . E l co n te n id o d e u n m d u lo se p o n e n a d isp o sici n d e l o tro p ro g ra m a co n la
in stru cci n d e im p o rta ci n .
O b je to
U n a co sa a la q u e p u e d e re fe rir u n a va ria b le . E sto p o d ra se r u n a ve n ta n a d e la p a n ta lla , o u n a d e la s
to rtu g a s q u e h a cre a d o .
a lc a n c e
U n a fu n ci n in te g ra d a e n P yth o n p a ra g e n e ra r se cu e n cia s d e n m e ro s e n te ro s. E s e sp e cia lm e n te til
cu a n d o te n e m o s q u e e scrib ir u n b u cle p a ra q u e se e je cu te u n n m e ro d e te rm in a d o d e ve ce s.
t e r m in a c i n d e c o n d ic i n
U n a co n d ici n q u e se p ro d u ce lo q u e p ro vo ca u n b u cle p a ra d e te n e r la re p e tici n d e su cu e rp o . E n lo s
b u cle s fo r q u e vim o s e n e ste ca p tu lo , la co n d ici n d e fin a liz a ci n h a sid o , cu a n d o h a y e le m e n to s n o
a sig n a r a la va ria b le d e b u cle .
3 .8 . Eje rc ic io s
1 . E scrib a u n p ro g ra m a q u e im p rim a Nosotros nos gusta trabajar con la tortuga de Python! 1 0 0 ve ce s.
2 . E l vo ca b u la rio u tiliz a d o e n lo s o b je to s d e so ftw a re se in sp ir e n lo s o b je to s d e l m u n d o re a l. V a m o s a
in ve rtir e l p ro ce so d e l p e n sa m ie n to , y d e scrib ir u n o b je to d e l m u n d o re a l, su te l fo n o ce lu la r,
u tiliz a n d o e l m ism o vo ca b u la rio q u e u sa m o s co n lo s o b je to s d e so ftw a re .
D tre s a trib u to s y tre s m to d o s d e su te l fo n o m vil.
3 . C re a r u n a lista lla m a d a meses q u e co n te n g a 1 2 ca d e n a s co n lo s n o m b re s d e lo s m e se s d e l a o e n e l
o rd e n e n q u e o cu rre n .
4 . E scrib ir u n p ro g ra m a q u e u tiliz a u n b u cle p a ra re co rre r meses p a ra im p rim ir
5 . S u p o n g a q u e tie n e la a sig n a ci n x = [1 2 , 1 0 , 3 2 , 3 , 6 6 , 1 7 , 4 2 , 9 9 , 2 0 ]
a . E scrib ir u n b u cle q u e im p rim a ca d a u n o d e lo s n m e ro s e n la n u e va ln e a .
b . E scrib ir u n b u cle q u e im p rim a ca d a n m e ro y su cu a d ra d o e n u n a n u e va ln e a .
D e s a f o s a d ic io n a le s (p a ra lo s e s tu d ia n te s m a s in te lig e n te s )...
converted by W eb2PDFConvert.com
c . Es c riba un buc le que s um a to do s lo s nm ero s de la lis ta en una v ariable llam ada total. U s ted
debe es tablec er la v ariable total para tener el v alo r 0 antes de c o m enzar a agregar, y im prim a el
v av o l en total des pus del c ic lo s e ha c o m platado .
d. Im prim ir el pro duc to de to do s lo s nm ero s en la lis ta. (Pro duc to de to do s lo s m edio s
m ultiplic ado s entre s i).
6 . E scrib ir u n p ro g ra m a p a ra d ib u ja r u n a fo rm a d e e sta m a n e ra :
S u g eren c ias
Prube es to en un pedazo de papel, el m o v im iento y dar v uelta a s u telfo no m o v il c o m o s i fuera una
to rtuga. M ira c untas ro tac io nes c o m pletas tu m v il hac e antes de c o m pletar la es trella. Ya que c ada
giro c o m pleto es de 360 grado s , s e puede av eriguar el nm ero to tal de grado s que s u telfo no fue
girado . Si us ted div ide es o po r 5, po rque hay c inc o punto s de la es trella. U s ted s abra c unto s grado s a
s u v ez a la to rtuga en c ada punto .
Puede o c ultar una to rtuga detrs de s u c apa de inv is ibilidad, s i us ted no quiere que s e m ues tra. To dav a
s ac ar s us lneas s i s u plum a es hac ia abajo . El m to do es inv o c ado c o m o tess.hideturtle().
tess.showturtle() hac e que la to rtuga v is ible de nuev o .
converted by W eb2PDFConvert.com
H int
U s e una c o m binac i n de lo s penup, forward, pendown, stamp, y backward m eto do s de la turtuga para
c o ns eguir que es to func io ne.
La to rtu g a d e b e te rm in a r d e n u e vo e n d o n d e e m p e z o cu a n d o e l p ro g ra m a te rm in e .
8 . A h o ra se b a sa n e n la so lu ci n d e l e je rcicio a n te rio r e scrib ir u n p ro g ra m a p a ra d ib u ja r u n a e sfe ra d e
u n re lo j q u e se ve a lg o co m o e sto :
p re vio u s | n e x t | in d e x
C m o P e n sa r co m o u n In fo rm tico : E l a p re n d e r co n P yth o n vE d 2 d o cu m e n ta tio n
Copyright 2009, Jeffrey Elkner, Allen B. Downey, Chris Meyers y Gregorio Inda. Created using Sphinx 1.0.1.
converted by W eb2PDFConvert.com