Poder Tortuga - Code Club World Projects

Anuncio
PoderTortuga
AllCodeClubsmustberegistered.Byregisteringyourclubwecanmeasureour
impact,andwecancontinuetoprovidefreeresourcesthathelpchildrenlearnto
code.Youcanregisteryourclubatcodeclubworld.org.
01—PoderTortuga
Introducción:
Estetrimestrevamosaaprenderunlenguajedeprogramaciónllamado
Python.LapersonaquecreóPythonlollamóenhonorasuprogramade
televisiónfavorito:ElCircoAmbulantedelosMontyPython.Pythones
usadoporunmontóndeprogramadoresparacosasmuydiferentes.
Pythonesunlenguajemuypoderosoeinteligentequeseutilizaen
YouTube,NASA,CERNymuchosotrossitios.Situclubtieneuna
RaspberryPi,puedesusarPythonparaprogramarla.Muchagenteadora
Pythonporqueesfácildeleer(almenoscomparadoconotroslenguajes
deprogramación).Poderleercódigoesunahabiliadmuyimportante,
tanimportantecomopoderescribirlo.
Paso0:AbrirelEditordePython
SiyatienesPythonentuordenador,eshoradeempezar.
EnWindows,buscaIDLEenelmenuInicio.
EnMacOSX,abrelaTerminal.appyescribe“idle”ydalealatecla
enter.
EnLinux,abreunaconsolaoTerminal,yescribe“idle”ydaleala
teclaenter.
SinotienesPythoninstalado,nopasanada!Puedesdescargartela
1
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
últimaversióndePythondesdehttp://www.python.org/.Laversión
exactanoimportamucho,peronosotrosvamosausarlaversión3,así
quelaversióndeberíaempezarpor3(no2).
CuandoIDLEarancaverásunaventanadesalidallamada“Python
Shell”.Necesitamosabrirunanuevaventanaparaescribircódigo
dentro.Vesa“Archivo->NuevaVentana”yyaestaráslistoparaelPaso
1.Asegúratedequeambasventanasestánvisibles.
Paso1:Hola,Mundo!
AbreIDLE,eleditorquevieneconPython.Todonuestrocódigose
escribiráconesteeditor.Cuandoloabras,verásunaventanadonde
apareceránloserroresylosresultados.
Encasoquenolohayashechoya,vesa“Archivo->NuevaVentana”.
Unaventanavacíaaparecerá,coneltítulode‘SinTítulo’enlabarra
detítulo.
Ahoradeberíastenerdosventanasabiertas,unaparaescribirel
programayotraparamostrarelresultado.Asegúratedeescribiren
laventanacorrecta!
Escribeelsiguientecódigoenlanuevaventana:
print("Hola,Mundo!")
AsegúratequenoestásenlaventanadelaShelldePython,yguarda
tucódigo.
LopuedeshacerseleccionandoArchivo->Guardar.Cuandotepidanun
nombredearchivo,escribe hola.py ,yguardaelarchivoentuescritorio.
LuegoseleccionaEjecutar->EjecutarMódulo.
Felicidades,yahasescritotuprimerprogramadePython:)(PD:Puedes
2
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
hacerqueimprimaporpantallacualquiercosaquequieras,¿porquéno
locambiasparaquetedigaholaati?Cámbialoparaquedigatu
nombre)
SúperPista:
EnWindowsyenUbuntu,utilizaCtrl-Nparacrearunanueva
ventanaentuterminal,utilizactrl-Sparaguardartuarchivounavez
hayasterminadodeeditarlo,ypulsaF5paraejecutartuprograma.
Enalgunosordenadoresalomejorhasdepulsartambiénlateclade
funciónFn.
EnMacOSX,pulsacmd-Nparacrearunanuevaventanaentu
terminal,utilizactrl-Sparaguardartuarchivoypulsalatecla
función(fn)ylateclaF5alavezparaejecutartuprograma.
Paso2:Hola,Tortuga!
Losiguientequevamosahaceresdivertirnosunpococonlastortugas.
Unatortugaesunrobotmuychiquititoquedibujaentupantalla.
PodemoshacerquesemuevausandocomandosdePython.
Abreunanuevaventanaentuterminal(DesdeelmenúArchivo)y
escribelosiguiente(forwardsignificaade:
fromturtleimport*
forward(100)
Guardatuprogramacomomitortuga.pyyelijelaopciónEjecutar->
EjecutarMódulo.¿Vescómolatortugasemueve100píxeleshacia
adelante?Latortugatienepegadounlápizydibujalíneasalmoverse
alrededordelapantalla.
SúperPista:CuandoguardesprogramasdePythonenunarchivo
siempredeberíasdarleunnombrequeacabeen‘.py’.
3
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
Vamosahacerquelatortugasemuevaporlapantalla!Puedesusar
backward(distancia)
paraquelatortugavayahaciaatrás,paraque
girepuedesusar right(ángulo) y left(ángulo) .Porejemplo
backward(20)
ledicealatortugaquesemuevahaciaatrás20
píxeles,y right(90) ledicelatortugaquegirehacialaderecha90
grados.Siledasmásdeunainstrucción,éstasseejecutaránen
orden.
fromturtleimport*
speed(11)
shape("turtle")
forward(100)
right(120)
forward(100)
left(90)
backward(100)
left(90)
forward(50)
ÁngulosyGrados
Juegaunpocodibujandotuspropiasformasutilizandolasinstrucciones
forward
(adelante), backward (atrás), left (izquierda), right
(derecha).Recuerda,con forward y backward hacesquelatortugasese
desplaceunnúmerodepixeles,perocon left y right girasángulos.
Vamosavercómounatortugagiraaladerecha.
Norte
0
|
Oeste|Este
270-----+-----90
|
4
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
|
180
Sur
CuandolatortugaestámirandoalNorte,girar90gradosaladerecha
hacequemirealEste,girando180gradoshacequemirealSur,y
girando270gradoshacequemirealOeste.Sigiras360grados,acabas
dondeempezaste.
Ysigirasalaizquierda?
Norte
0
|
Oeste|Este
90-----+-----270
|
|
180
Sur
CuandolatortugaestámirandohaciaelNorte,girar90gradosala
izquierdahacequesepongamirandoalOeste.Girando180hacequese
pongamirandoalSurygirando270gradoshacequesepongamirando
alEste.Sigiraslatortuga360grados,acabarásenlamismaposición
quehabíasempezado.Unavueltacompletason360grados.
¿Quéhaceelcódigoalprincipiodenuestro
programa?
fromturtleimport*
lediceaPythonquequeremosusarlalibreria
turtle,unacoleccióndecódigoquepodemosusarparadibujaren
nuestrapantalla.Usarunalibreríanospuedeahorrarmuchotiempo.
5
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
speed()
asignalavelocidaddelatortuga,cogeunvalorentre1y11.
11eselmásrápidoy1elmáslento.
shape()
Estamosutilizandolaforma“turtle”(tortuga),pero
tambienpodemosusarvalorescomo“arrow”(flecha),“circle”
(círculo),“square”(cuadrado),“triangle”(triángulo)o“classic”
(clásico).
Vamosaponerestastresinstrucionesalprincipiodetodosnuestros
programasduranteestalección.Siquieres,puedescambiarlaformade
latortugaohacerlairtanrápidoodespaciocomoquieras.
Paso3:DibujandoFormas!
Vamosahaceruncuadradodiciéndolealatortugaquesemueva
siguiendolaformadeuncuadrado.
AbreunnuevoarchivoenIDLE,yescribeelsiguientecódigo:
fromturtleimport*
speed(11)
shape("turtle")
forward(100)
right(90)
forward(100)
right(90)
forward(100)
right(90)
forward(100)
right(90)
GuardatuprogramayeligeEjecutar->NuevoMódulo.¿Vesun
cuadrado?Latortugagira90gradoscuatroveces,yacabamirando
6
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
enlamismadirecciónquehabíaempezado.Girar90,90,90y90
hacequelatortugagire360gradosentotal(4x9=36)
¿Ysiqueremoshaceruntriángulo?Untriángulotienetresesquinas,
asíquetenemosquegirartresveces.Siqueremosacabarmirando
enlamismadirección,necesitaremosquelatortugagireuntotalde
360grados,comoenelcasodelcuadrado.Asíquegiraremos120
grados,luego120gradosmásyunaúltimavez120grados.(120+
120+120=360)
Paradibujaruntriángulo,editatucódigoparaqueseacomoloque
ponemosacontinuación:
fromturtleimport*
speed(11)
shape("turtle")
forward(100)
right(120)
forward(100)
right(120)
forward(100)
right(120)
Ejecutatucódigo.¿Tienesuntriángulo?
Elijeuncolor
¿Cualestucolorfavorito?puedescambiarelcolordelaslíneasusando
lafunción pencolor (Pythonutilizainglésamericano),ytambienpuedes
cambiareltamañodelalíneausando pensize :
Editaelcódigodeantesparaqueseacomoeldelsiguienteejemplo:
7
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
fromturtleimport*
speed(11)
shape("turtle")
pensize(10)
pencolor("red")
forward(100)
right(120)
pencolor("blue")
forward(100)
right(120)
pencolor("green")
forward(100)
right(120)
Ejecutatucodigo,¿quésedibujaenlapantalla?
Estecódigodibujauntriángulodelíneasanchasentrescolores
diferentes.
Intentacambialoscoloresentucódigo,ejecútaloymiraaverqué
sucede.
Latortugaconocecientosdecoloresdiferentes,nosólorojo,azuly
verde.Intentausartucolorfavorito!
Puedesespecificarloscoloresenhex(hexadecimal)talycomo
hicimosenCSS.Enlugardeusar pencolor("red") podríasusar
pencolor("#FF0000")
.
¿Quécoloresel#FF4F00?
Paso4:Repíteteatímismo(conunbucle)
Elúltimoprogramausabalasmismasinstruccionesunayotravez.En
lugardeescribirlos,vamosapedirlealordenadorquelosrepitapor
8
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
nosotros.CuandoestudiabasScratchaprendisteelconceptodeiteración
cuandousastelosbloques ParaSiempre y Repitir / RepitirHastaQue .En
Pythonlosbuclesforseusancuandotienesuntrozodecodigoque
quieresrepetirunnúmerodeveces.Enestecaso,queremosrepetirel
código(indentado,queestámetidohaciaadentro)4veces(porqueun
cuadradotiene4lados).
Abreunnuevoarchivoyescribelosiguiente:
fromturtleimport*
speed(11)
shape("turtle")
forcountinrange(4):
forward(100)
right(90)
Guardaelprogramayejecutaelprograma:Ejecutar->Ejecutar
Módulo.
Fíjatequeelprogramaestáindentado,odesplazadoaladerecha
dentrodelbucle.Pythonutilizaespaciosenblancoparasaberqué
instruccioneshayquerepetir.Puedesutilizareltabulador(teclaTab)
paraindentartucódigo.
Vamosaverquéocurresisóloindentamos forward ,paraello,edita
tuprogramaparaquediga:
fromturtleimport*
speed(11)
shape("turtle")
forcountinrange(4):
forward(100)
right(90)
9
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
Fíjateque forward estáindentadoy right noloestá,¿verdad?¿Qué
creesquehaceelprograma?pruebadeejecutarloparadescubrirlo.
¿Tehasalidounalínearecta?Pythonrepetirálainstrucción forward
cuatrovecesyluegogiraráaladerecha.Pythonutilizaespaciosen
blancoparaagruparinstrucciones,delamismamaneraqueen
Scratchteníamoslosbloques.¿Teacuerdas?Pythonsequejarásiel
códigonoestádebidamentetabulado.
Vamosadejarelprogramacomoloteníamosalprincipioyquenos
dibujeuncuadrado,peroenlugardeusarnúmerosenelcódigo
vamosaasignarvariables.Nosayudaráaverquéhacerealmenteel
programa,yademásnosayudaráaquenonosrepitamosunayotra
vez.
Cambiaelprogramaparaquecontengalosiguiente:
fromturtleimport*
speed(11)
shape("turtle")
lados=4
distancia=100
angulo=90
forcountinrange(lados):
forward(distancia)
right(angulo)
Guardaelprogramayejecutaelprograma:Ejecutar->Ejecutar
Módulo.
Reto:Dibujarotrasformas
10
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
¿Puedesdibujarlassiguientesformascambiandosólolosvalores?
¿untriángulo?(treslados)
¿unpentágono?(fivelados)
¿unhexágono?(sixlados)
¿unoctágono?(eightlados)
Recuerda,untriángulotienetreslados,ytienegirosde120grados.Si
giras120gradosencadaesquinaalfinalhabrásgirado360gradosen
total.Parauncuadradogira90gradosenlas4esquinas,quetambién
suman360grados.
Sigirasseisveces,¿cuantosgradosdeberásgirarparaquesumen360?
Pruebaalgunosnúmerosymiraaverquépasa.
Paso5:Gira,Gira,Gira
Enlugardesernosotroslosquecalculamoselángulo,¿porquénodejas
queseaelordenadorelquelohaga?Pythontepermitehacer
operacionesconnúmeroscomosumar,restar,multiplicarydividir.
Podriamosreescribir lados=4+1 enlugarde5,o lados=4-1 en
lugarde3.ParalamultiplicaciónPythonusa * ,yparaladivisión
usamoslabarra / .
Sinecesitamosgirar360gradosentotal,podemoscalcularelángulo
quenecesitaremos.Parauncuadrado, 360/4 es90,parauntriángulo,
360/3
es120.
Cambiatuproramaparacalcularelángulodelasiguientemanera.
fromturtleimport*
speed(11)
shape("turtle")
11
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
lados=4
distancia=20
angulo=360/lados
forcountinrange(lados):
forward(distancia)
right(angulo)
Ahoracambiaelnúmerodelados.CompruebaquePythonlohaga
bien.Intentadibujarunhexágono(6lados),ocualquiernúmerode
ladosquequieras!
Paso6:FormaSólida
Podemospedirlealatortugaquerellenelasformasconuncolor
usandolasinstrucciones begin_fill() y end_fill() .Cambiatu
códigoyañadeéstasinstruccionesdentro:
fromturtleimport*
speed(11)
shape("turtle")
lados=4
distancia=20
fillcolor('red')
pencolor('red')
begin_fill()
angulo=360/lados
forcountinrange(lados):
forward(distancia)
right(angulo)
end_fill()
12
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
Delamismaformaquehacíamoscon pencolor ,con fillcolor
puedesdarleuncoloralatortugaparaquerellenelaformaque
dibujes.Vamosadibujaruncuadradorojoconunalíneadecolorrojo
también.
Utilizarás begin_fill() paradecirlealatortugaquevasadibujar
unafiguraquequieresquerelleneyend_fill()`paradecirleque
puededejarderellenarconcolor.
Intentacambiarloscolores,loslados,laslongitudesymiraaver
cuantasformaspuedesdibujar!
Paso7:LevantaselLápiz,BajaselLápiz
Siquieresmoverlatortugasindejarningúnrastrodetráspuedesusar
lainstrucción penup() y pendown() parahacerquelatortugadibujeo
no.
Enunnuevoarchivo,intentalosiguiente:
fromturtleimport*
speed(11)
shape("turtle")
pencolor('red')
forcountinrange(20):
penup()
forward(10)
pendown()
forward(20)
Estecódigodeberíadibujarunalíneadeguionesalolargodela
pantalla.Ejecútaloyverás!!
13
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
Home,origenenlapantalla.
Unúltimotruco.Lainstrucción home() devuelvelatortugaasuposición
inicial.Porcontra,lainstrucción clear() borralapantalla
completamente,ylainstruccion reset() devuelvelatortugaalinicioy
limpialapantalla!
Paso8:ATope!
Puedesiradelante forward() ,atrás backward() ,izquierda left() ,y
derecha right() ,puedesiterarusandoelbucle forcountinrange(4) ,
cambiarcolores,cambiarlavelocidadinclusocambiarlasformas!
¿Puedesdibujarunacasa?,¿ungato?,¿unpájaro?,¿unaserpiente?,¿un
perro?,¿unleón?Combinadiferentesformasparaverquéotrasmuchas
cosaspuedesdibujar.¿Puedesdibujarunrobot?
14
©RaspberryPiFoundation.UKRegisteredCharity1129409.TheseprojectsareforuseoutsidetheUKonly.Moreinformationatwww.codeclubworld.org.
ThiscourseworkisdevelopedonGitHub,atwww.github.com/CodeClub.
Descargar