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.