por Jos Miguel Ruiz Torres jmruizt.94@gmail.com Este libro se distribuye bajo una licencia Creative Commons Atribucin-NoComercial- CompartirIgual 3.0 Espaa. sted es libre de! Copiar" distribuir y comunicar p#blicamente la obra. Remezclar $ trans%ormar la obra. &ajo las condiciones siguientes! Reconocimiento $ En todos los casos se deben reconocer los cr'ditos de la obra al autor original ()os' *iguel +ui, -orres. y /acer una mencin a la comunidad 0ree 1evelopment. No comercial $ No puede utili,ar esta obra para %ines comerciales. Compartir bajo la misma licencia $ 2i altera o trans%orma esta obra" o genera una obra derivada" slo puede distribuir la obra generada bajo una licencia id'ntica a 'sta. 2 Iniciacin a Python 3 ndice de contenido nas palabras del autor........................................................................................................................3 Antes de empe,ar.................................................................................................................................4 Instalacin en 5inu6.........................................................................................................................4 Instalacin en *ac 72.....................................................................................................................4 Instalacin en 8indo9s...................................................................................................................: ;Cmo /ago mi programa<..................................................................................................................= Editores para 5inu6..........................................................................................................................= Editores para *ac 72......................................................................................................................= Editores para 8indo9s....................................................................................................................> Comen,amos........................................................................................................................................? 5os doce mandamientos.................................................................................................................@@ 2alida de in%ormacin....................................................................................................................@A -e6to..........................................................................................................................................@A Comentarios..............................................................................................................................@A N#meros....................................................................................................................................@3 Bariables.........................................................................................................................................@4 Entrada de in%ormacin..................................................................................................................@> 5a %uncin input(......................................................................................................................@> Ejercicios.......................................................................................................................................A0 Condiciones...................................................................................................................................AA i%Celse.........................................................................................................................................AA eli%.............................................................................................................................................A3 Ejercicios...................................................................................................................................A4 &ucles.............................................................................................................................................A= 9/ile..........................................................................................................................................A= Ejercicios...................................................................................................................................A> 5a despedida.......................................................................................................................................30 3 Iniciacin a Python 3 Unas palabras del autor Escribo este manual con la intencin de ue sir!a como "erramienta de aprendizaje para auellas personas ue deseen iniciarse en la programacin con #$t"on. %u& se ir'n e(plicando los di)erentes conceptos con)orme sea necesario* en un lenguaje colouial* procurando as& no agobiar al lector con una llu!ia de de)iniciones $ tecnicismos ue una persona normal es incapaz de entender. #arto de ue el lector no tiene ning+n conocimiento de programacin e intento transmitirle lo imprescindible para ue sea capaz de progresar por s& mismo. Es mi deseo poner esta obra a disposicin de toda persona ue desee compartirla o adaptarla* siempre ue se respeten las condiciones anteriormente citadas. #$t"on es un lenguaje de programacin ue puede usarse para crear programas en di)erentes sistemas operati!os como ,inu(* Mac -. $ /indo0s. .u )iloso)&a es ser un lenguaje sencillo a la !ez ue elegante $ )le(ible. #$t"on es realmente potente $ puede usarse para casi cualuier propsito* desde la creacin de un diccionario "asta un !ideojuego $ muc"o m's. Espero uerido lector ue te di!iertas $ aprendas le$endo las l&neas de este libro. 1n cordial saludo. Jos Miguel Ruiz Torres 4 Iniciacin a Python 3 Antes de empezar %ntes de empezar a programar necesitaremos instalar #$t"on en el ordenador. 2omo no s u sistema operati!o est' usando el lector* e(plicar cmo proceder a la instalacin en cada caso. Instalacin en Linu En ,inu( la instalacin resulta realmente sencilla. .i eres usuario de 1buntu 34ebian $ deri!ados5* basta con abrir la terminal $ escribir lo siguiente6 sudo apt-get install python3 .i eres usuario de otra distribucin no puedo guiarte desde au&* $a ue puede !ariar el gestor de pauetes $ el nombre de la paueter&a. Escr&beme a mi correo si necesitas a$uda $ estar encantado de ec"arte un cable. Instalacin en Mac !" #$t"on !iene preinstalado en este sistema. .i tu !ersin estu!iera desactualizada deber's descargar uno de los siguientes pauetes seg+n te con!enga6 .i tienes un Macintos" con procesador 7ntel debes descargar el siguiente instalador6 "ttp688000.p$t"on.org8)tp8p$t"on89.:.98p$t"on;9.:.9;macos(<=.>.dmg .i por el contrario tu m'uina tiene un procesador #o0er#2* debes descargar este6 "ttp688000.p$t"on.org8)tp8p$t"on89.:.98p$t"on;9.:.9;macos(<=.9.dmg ?o tengo el pri!ilegio de poseer estas m'uinas* as& ue m's no puedo "acer. # Iniciacin a Python 3 Instalacin en $indo%s #or suerte 3o por desgracia5 todo el mundo dispone de una copia de /indo0s en casa* incluso $o@ as& ue en esta instalacin si os puedo guiar. #$t"on no !iene preinstalado en /indo0s* por lo ue obligatoriamente deber's descargar este pauete6 "ttp688000.p$t"on.org8)tp8p$t"on89.:.98p$t"on;9.:.9.msi ,a instalacin en /indo0s no tiene ma$or complicacin6 basta con "acer clic en A.iguienteB repetidas !eces "asta )inalizar. C con esto $a tenemos instalado #$t"on en nuestro ordenador. & Iniciacin a Python 3 '(mo ha)o mi pro)rama* 1n programa est' compuesto por cdigos* rdenes simples ue las personas podemos comprender. #or ejemplo6 ; ,enguaje "umano6 -rden6 4ime* Dcu'nto son :E:F Respuesta6 .on 4. ; ,enguaje #$t"on6 -rden6 print3:E:5 Respuesta6 4 G'cil* D!erdadF. #ara escribir dic"os cdigos nosotros usaremos un editor de te(to. D2onoces el bloc de notas de /indo0sF pues ese ser&a un ejemplo. #ero el bloc de notas es mu$ malo* as& ue nosotros !amos a usar otro editor. +ditores para Linu En ,inu( tenemos magn&)icos editores como Gedit 3H?-ME5 $ Kate 3I4E5. .i eres un enamorado de la terminal tambin puedes usar Pico. %sumo ue los usuarios de ,inu( saben encontrar estos programas en su sistema o* en caso de no tenerlos* saben instalarlos. +ditores para Mac !" ,os usuarios de Mac tambin pueden dis)rutar de Gedit6 #ara Tiger 3<=.4* 7ntel56 descargar #ara ,eopard 3<=.J56 descargar #ara .no0 ,eopard 3<=.>5 $ posterior6 descargar 2omo $a dije antes* no esto$ metido en el mundo de %pple. .eguro de ue los maueros conocen editores muc"o mejores para su sistema. , Iniciacin a Python 3 +ditores para $indo%s #ara /indo0s "a$ gran !ariedad* aunue $o me decanto por estos dos6 Hedit6 descargar ?otepadEE6 descargar Mi recomendacin es ue !a$'is probando $ os uedis con el ue os resulte m's cmodo. .i ninguno os con!ence* entonces podis buscar alternati!as en 7nternet. 2on esto $a tenemos lo necesario para empezar a aprender. - Iniciacin a Python 3 Comenzamos ,o primero ue "aremos ser' crear un nue!o arc"i!o llamado A"ola.p$B. En /indo0s puede surgir alguna complicacin* $a ue por de)ecto el sistema no permite !er8cambiar la e(tensin a los arc"i!os. 2mo cambiar esto en /indo0s K#6 %bre el na!egador de arc"i!os $* como se muestra en la imagen* accede a ALerramientas -pciones de carpeta...B. Me a la pestaNa AMerB $ desmarca la casilla ue dice A-cultar las e(tensiones de arc"i!o para tipos de arc"i!o conocidoB. . Iniciacin a Python 3 2mo cambiar esto en /indo0s O6 Me a A7nicio #anel de controlB* a"& cambia la !ista a A7conos grandesB $ entra en A-pciones de carpetaB. En la nue!a !entana !e a la pestaNa AMerB $ a"& desmarca la casilla de A-cultar las e(tensiones de arc"i!o para tipos de arc"i!o conocidosB. Lec"o esto* abre el arc"i!o A"ola.p$B con tu editor de te(to )a!orito. /0 Iniciacin a Python 3 Los doce mandamientos Le au& unas sencillas normas ue deben respetarse para un correcto estilo de programacin en #$t"on. Realmente ser&an doce* pero $o "e decidido suprimir algunas para no con)undir al lector. %l principio es probable ue no entiendas nada* pero con)orme !a$as a!anzando en el libro todo cobrar' sentido. %"ora es bueno ue* por lo menos* te !a$a sonando6 /1 ,os nombres de los )ic"eros deben escribirse en min+scula. Ejemplo6 "ola.p$ calculadora.p$ 21 ,as llamadas a )unciones se escriben en min+scula. Ejemplo6 print35 input35 31 ,as !ariables se escriben en min+scula $* de estar )ormadas por !arias palabras* stas !an unidas por guiones bajos. Ejemplo6 balones piezasPdePrepuesto 41 ,os tipos de dato se escriben en min+scula. Ejemplo6 str int #1 #on un espacio despus de cada coma. Ejemplo6 print3QTienesQ* numPzapatos* Qzapatos $Q* numPblusas* Qblusas.Q5 &1 #on un espacio antes $ despus de cada operador. Ejemplo6 R E : total ES > ,1 7ndenta con 4 espacios@ nunca uses el tabulador. Ejemplo6 i) nombre SS QTngelQ6 print3QLolaQ* nombre5 <:94 input35 -1 Escribe abundantes comentarios en tu cdigo* describiendo cada detalle* para "acer ue sea lo m's claro $ legible posible. // Iniciacin a Python 3 "alida de in2ormacin 3eto Todo programa "ace una serie de acciones b'sicas. 1na de estas acciones es la de mostrar in)ormacin6 te(to* n+meros* resultados... es algo imprescindible. %ntes dijimos ue un programa se compon&a de peueNas l&neas de cdigo* rdenes simples. En adelante llamaremos a estas rdenes funciones. Mamos a "acer nuestro primer programa. Este consistir' en mostrar un te(to. #ara mostrar te(to en #$t"on usamos la )uncin print* cu$a sinta(is es6 print('texto') Ejemplo en lenguaje "umano6 -rden6 4ime AMe llamo .ergio $ tengo <> aNosB Respuesta6 Me llamo .ergio $ tengo <> aNos ,enguaje #$t"on6 -rden6 print3QMe llamo .ergio $ tengo <> aNosQ5 Respuesta6 Me llamo .ergio $ tengo <> aNos Recuerda6 print('el texto que quieres mostrar') (omentarios ,os comentarios son anotaciones ue "ace el programador en su cdigo )uente. .ir!en para ue al leer el cdigo* otros programadores puedan entenderlo )'cilmente 3o incluso el autor original* al !ol!er a leerlo pasado un tiempo5. En #$t"on los comentarios se "acen con una almo"adilla 3U5. Ejemplo6 # olo afecta al texto que !a a continuaci"n de la almohadilla# print('$ola') # %e estoy saludando# Es un buen "'bito escribir comentarios $ te con!iene acostumbrarte a "acerlo. /2 Iniciacin a Python 3 45meros DC si en lugar de te(to uiero mostrar una operacinF Es mu$ )'cil* solo debes tener en cuenta una regla6 cuando !as a mostrar te(to* el interior de los parntesis de print !a con comillas simples6 print('texto') #ero cuando uieres mostrar n+meros u operaciones* !a sin comillas6 print(& ' () .e aprecia la di)erencia* D!erdadF. %"ora !amos a poner un ejemplo6 Ejemplo en lenguaje "umano6 -rden6 4ime* Dcu'nto son <= menos : $ medioF Respuesta6 .on O $ medio. ,enguaje #$t"on6 -rden6 print3<= :.J5 Respuesta6 O.J %u& solo "emos mostrado n+meros pero* Dpodr&amos mostrar te(to $ n+meros al mismo tiempo en nuestro programaF ,a respuesta es ue s&. -rden6 print36<= por 9 son6, <= V 95 Respuesta6 <= por 9 son 9= #ara combinar te(to con operaciones debes respetar la regla ue mencion antes6 el te(to lle!a comillas* los n+meros no. ,a )rase '&) por 3 son' aunue contiene n+meros* a estos se los considera te(to $ por eso lle!an comillas. &) * 3 es una operacin@ no es te(to $ por eso no lle!a comillas. 7mportante6 el te(to !a separado de los n+meros $ operaciones por coma. -rden6 print3QMi /indo0s tieneQ, >= E 4=, Q!irus.Q5 Respuesta6 Mi /indo0s tiene <== !irus. #ongo una coma a cada lado de la operacin para separarlo de los dos te(tos. /3 Iniciacin a Python 3 .eguro ue te "abr's desconcertado un poco al !er ue la multiplicacin en #$t"on se "ace con asterisco 3V5 $ no con euis 3(5. Tambin te "abr' sorprendido !er ue en los n+meros con parte )raccionaria no "a$ separacin por coma* sino por punto@ de tal manera ue el n+mero +,3) en #$t"on es +#3). Te con!iene conocer los tipos de n+mero* as& como las operaciones aritmticas ue puedes "acer en este lenguaje 3suma* resta* multiplicacin...5 $ otras m's potentes. Tipos de n+mero $ operaciones6 En #$t"on* dentro del sistema n+merico decimal* podemos operar con n+meros enteros $ n+meros reales. ,os n+meros enteros son auellos ue no tienen parte )raccionaria@ $ los n+meros reales son los ue s& la tienen. Ejemplo6 ?+mero entero6 <== ?+mero real6 :=.9= La$ algo importante a tener en cuenta* $ es ue el resultado de una operacin ser' entero o real dependiendo del tipo de n+meros con los ue se opere. 4e esta manera* si todos los n+meros son enteros el resultado tambin lo ser'@ pero si al menos uno de los n+meros )uera real* el resultado ser' real. Ejemplo6 := E 9= S J= U El resultado es entero* porue todos los n+meros lo son. J V : S <= U El resultado tambin es entero. :=.= E 9= S J=.= U El resultado es real* porue "a$ un n+mero real. J V :.J S <:.J U El resultado tambin es real. :.: =.: S :.= U El resultado tambin se muestra como real. Le au& una tabla ue muestra algunas de las operaciones b'sicas ue pueden "acerse en #$t"on6 Operacin Operador Ejemplo 2uma D A D 3 E : +esta $ A $ 3 E -A *ultiplicacin F 3 F 3 E ? Gotencia FF 3 FF 3 E A= 1ivisin C 40 C : E >.3 Cociente CC 40 CC : E > +esto H 40 H : E A ?ota6 asumo ue el lector tiene conocimientos de matmaticas su)icientes como para entender lo ue se e(presa en la anterior tabla. /4 Iniciacin a Python 3 7ariables Ca sabemos cmo mostrar in)ormacin $ operar con n+meros* pero "asta a"ora nuestra in)ormacin era est'tica $ no se guardaba en ning+n lado. 1na !ariable es un elemento ue permite almacenar in)ormacin. #ara comprender su )uncionamiento pondr como ejemplo una comparacin. 7magina ue tienes : cajones $ cada uno lle!a una etiueta puesta. 4entro de cada cajn tendremos guardado algo6 nombre S Q%lmudenaQ edad S <9 4e esta manera nuestro programa tendr' control en todo momento sobre los datos ue manejamos. .i %lmudena cumpliera un aNo m's* su edad se incrementar&a6 nombre S Q%lmudenaQ edad S := #ongamos un ejemplo en #$t"on6 nombre - '.lmudena' # Guardo el nombre de la chica# edad - &/ # Guardo su edad# # 0uestro su nombre1 print('%e llamas', nombre) # . continuaci"n muestro cuantos a2os tiene1 print('%ienes', edad, 'a2os#') edad - edad ' & # 3e pongo un a2o m4s# # 5uel!o a mostrar su edad1 print('6umples', edad, 'a2os 7felicidades8') input() # $ago una pausa hasta que el usuario pulse la tecla 9:%;<# El programa mostrar&a lo siguiente6 %e llamas .lmudena %ienes &/ a2os# 6umples () a2os 7felicidades8 Te "abr's percatado de ue la )uncin print tambin sir!e para mostrar !ariables. ,as !ariables tambin deben respetar la norma ue !imos antes6 !an sin comillas $ deben estar separadas del te(to por coma. /# Iniciacin a Python 3 ,a !ariable debe su nombre a ue la in)ormacin ue guarda puede !ariar. #ara manejar la in)ormacin podemos usar los operadores ue !imos en la anterior tabla@ $ adem's* operar con !arias !ariables a la !ez. Ejemplo6 comida=ni2os - >) # %engo >) bande?as de comida para ni2os# comida=adultos - 3) # %engo 3) bande?as de comida para adultos# # 0uestro las bande?as que tengo1 print('%ienes', comida=ni2os, 'bande?as de comida para ni2os#') print('%ienes', comida=adultos, 'bande?as de comida para adultos#') # imulo que los clientes han hecho consumiciones1 comida=ni2os - comida=ni2os @ A) comida=adultos - comida=adultos @ () # umo las bande?as que tengo y las guardo en otra !ariable1 total=comida - comida=ni2os ' comida=adultos print('$a habido !enta# Bn total quedan', total=comida, 'bande?as de comida#') input() # $ago una pausa hasta que el usuario pulse la tecla 9:%;<# El programa mostrar&a lo siguiente6 %ienes >) bande?as de comida para ni2os# %ienes 3) bande?as de comida para adultos# $a habido !enta# Bn total quedan () bande?as de comida# 7mportante6 en el caso de Ccomida=ni2os - comida=ni2os @ A)D estamos "aciendo un decremento en el !alor de la !ariable* pero de esta manera ueda demasiado largo. #odr&a "acerse lo mismo de una manera m's corta* pero slo es !'lido cuando inter!iene una !ariable $ un n+mero@ o dos !ariables. Ejemplo6 comida=ni2os - comida=ni2os @ A) # 0Etodo largo# comida=ni2os @- A) # 0Etodo corto# $ace lo mismo que el largo# Estar&amos "aciendo lo mismo* pero a"orrando espacio $ tiempo. %u& otro ejemplo* esta !ez con dos !ariables6 total - &) sobrante - () total '- sobrante # 3e sumo el contenido de CsobranteD a la !ariable CtotalD# print('Bl total mas el sobrante es', total) input() # $ago una pausa hasta que el usuario pulse la tecla 9:%;<# El programa mostrar&a lo siguiente6 Bl total mas el sobrante es 3) /& Iniciacin a Python 3 %"ora te enseNar lo ue nunca debes "acer6 cds=reggaeton - ( cds=metal - F total - cds=reggaeton '- cds=metal # Slo pueden intervenir dos variables. # Bsto darGa un error sint4ctico# :o se puede meHclar el metal con reggaeton### Le au& una tabla en la ue podr's !er cada operacin con su correspondiente ejemplo simpli)icado6 Operacin Ejemplo Ejemplo simplificado Asignacin a E b a E b 2uma a E a D b a DE b +esta a E a $ b a -E b *ultiplicacin a E a F b a FE b Gotencia a E a FF b a FFE b 1ivisin a E a C b a CE b Cociente a E a CC b a CCE b +esto a E a H b a HE b /, Iniciacin a Python 3 +ntrada de in2ormacin -tra accin imprescindible ue realiza un programa es la de tomar in)ormacin. Esto le permite interactuar con el usuario* adapt'ndose a las necesidades de ste. .i un programa no toma in)ormacin los resultados siempre ser'n los mismos* por lo ue resultar' de poca utilidad. La 2uncin input89 Ca "abr's !isto esta )uncin en ejemplos de cdigo anteriores. ?osotros la usaremos para dos cosas6 "acer pausas en nuestro programa $ permitir ue el usuario introduzca in)ormacin. Meamos un ejemplo de pausa6 input() %u& el programa se uedar&a esperando "asta ue el usuario pulse 7?TR-. Tambin podemos "acer ue se muestre un mensaje junto con la )uncin. Ejemplo6 input('Pulsa 9:%;< para continuar###') El programa mostrar&a lo siguiente6 Pulsa 9:%;< para continuar### Tras pulsar 7?TR- el programa continuar&a con su ejecucin o* en caso de ser input() la +ltima l&nea de cdigo* el programa )inalizar&a de )orma normal. %"ora ue $a sabemos cmo "acer pausas con esta )uncin* !amos a aprender a pedirle in)ormacin al usuario $ guardarla en !ariables. #ara ello conoceremos algunos tipos de datos* los cuales se muestran en la siguiente tabla6 Tipo Clase Ejemplo str -e6to IEsto es un te6toI int N#mero entero A3 %loat N#mero real 3.@3 /- Iniciacin a Python 3 ,a in)ormacin de la tabla anterior puede parecer algo con)usa al principio* pero a"ora te lo e(plicar detalladamente para ue lo entiendas6 nombre - str (input('9ntroduce tu nombre')) print('%e llamas', nombre) 1samos str cuando ueremos ue el usuario introduzca cualuier tipo de te(to como palabras* )rases* etc. 2abe destacar ue tambin podemos operar con te(to 3sumarlo* restarlo* multiplicarlo...5* por incre&ble ue te pueda parecer. Ejemplo6 # Bste programa se in!enta palabras compuestas1 palabra=& - str (input('9ntroduce la primera palabra')) palabra=( - str (input('9ntroduce la segunda palabra')) compuesta - palabra=& ' palabra=( # $ago la uni"n de ambos textos# print('0e he in!entado esta palabra1', compuesta) El tipo int se utiliza cuando ueremos ue el usuario introduzca n+meros enteros. Este tipo tamb&en es !'lido para n+meros mu$ grandes. Ejemplo6 edad - int (input('9ntroduce tu edad')) print('%ienes', edad, 'a2os#') -tro ejemplo6 dist=pluto - int (input('I. cu4ntos Jil"metros est4 Plut"n de la %ierraK')) print('Bst4 a', dist=pluto, 'Jil"metros#') 1saremos el tipo float para ue el usuario introduzca n+meros reales. Ejemplo6 pi - float (input('I6u4l es el nLmero P9K')) # Ma sabemos que es 3#&A print('Bl nLmero P9 es', pi) C con esto tenemos lo necesario para crear una interaccin b'sica con el usuario. /. Iniciacin a Python 3 +:ercicios 2on lo ue se "a !isto "asta a"ora "as acumulado una cantidad considerable de in)ormacin $ $a !a siendo "ora de ir asimil'ndola. DWu mejor ue unos cuantos ejercicios para ponerte a pruebaF Tranuilo* son ejercicios resueltos. .i te uedas bloueado podr's !er la solucin. ?ota6 se entiende ue todos los ejercicios deber'n estar comentados $ "acer una pausa "asta ue el usuario pulse 7?TR-* antes de )inalizar. ;az un pro)rama <ue111 /1 Muestre el teto =;ola mundo>1 21 Pida al usuario su nombre y edad, y los muestre1 31 Pida al usuario dos n5meros enteros, los sume y muestre el resultado1 41 Pida al usuario un n5mero real y calcule su ra?z cuadrada1 Para esto puedes usar la propiedad de las potencias 8@n A n 01# 91 #1 (alcule el rea de un c?rculo1 "er el usuario <uien introduzca el radio1 La 2rmula es PI multiplicado por radio al cuadrado 831/4 B r 2 91 20 Iniciacin a Python 3 /1 "olucinC print3QLola mundo.Q5 U Muestro el te(to. input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 21 "olucinC nombre S str 3input3Q7ntroduzca su nombreQ55 U ,e pido su nombre. edad S int 3input3Q7ntroduzca su edadQ55 U ,e pido su edad. print3QTe llamasQ* nombre* Q$ tienesQ* edad* QaNos.Q5 U Muestro nombre $ edad. input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 31 "olucinC numP< S int 3input3Q7ntroduzca el primer n+meroQ55 U #ido un n+mero. numP: S int 3input3Q7ntroduzca el segundo n+meroQ55 U #ido otro n+mero. Resultado S numP< E numP: U Lago la operacin $ almaceno el resultado. print3QEl resultado esQ* resultado5 U Muestro el resultado. input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 41 "olucinC radicando S )loat 3input3Q7ntroduzca el radicandoQ55 U #ido un n+mero. resultado S radicando VV =.J U 2alculo la ra&z $ almaceno el resultado. print3Q,a ra&z esQ* resultado5 U Muestro el resultado. input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. #1 "olucinC pi S 9.<4 U #7 son 9.<4 radio S )loat 3input3Q7ntroduzca el radio en cmQ55 U #ido al usuario el radio. resultado S pi V radio VV : U Lago la operacin $ guardo el resultado. print3QEl 'rea esQ* resultado* QcmQ5 U Muestro el resultado. input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 2/ Iniciacin a Python 3 (ondiciones ,as condiciones dotan de inteligencia a nuestros programas. 1sando una condicin puedes plantear una igualdad ue* si se cumple* conlle!a a una determinada accin. #ara comprobar una igualdad usamos los siguientes operadores relacionales6 Operacin Operador Ejemplo Descripcin Igual EE a EE b Comprueba si a y b son iguales. 1esigual JE a JE b Comprueba si a y b sin distintos. *ayor Kue L a L b Comprueba si a es mayor Kue b. *enor Kue M a M b Comprueba si a es menor Kue b. *ayor o igual a LE a LE b Comprueba si a es mayor o igual a b. *enor o igual a ME a ME b Comprueba si a es menor o igual a b. % continuacin se e(plicar' cmo usar condiciones. i2Delse Xien* if $ else son dos )unciones ue pueden )uncionar en conjunto o de manera independiente para crear condiciones. #ongamos un ejemplo con if6 nombre - str (input('I6"mo te llamasK')) # Pido al usuario su nombre# # BstableHco una condici"n1 si el usuario se llama 6ristian, le saludo# if nombre -- '6ristian'1 print('$ola', nombre) <:94 input('Pulse 9:%;< para finaliHar###') # $ago una pausa# Le establecido ue* si el usuario se llama 2ristian* el programa le saludar'. En caso de no cumplirse esto* el programa terminar&a sin mostrar nada. %"ora atento* pues lo ue !o$ a decir es mu$ importante6 para ue una serie de acciones estn sujetas a una condicin deber's indentarlas con 4 espacios* nunca con tabulador. Todo lo ue no est sujeto a una condicin !a sin indentado. 22 Iniciacin a Python 3 2omo $a dije antes* puedes usar if de )orma independiente. En cambio* para usar else siempre debe "aber antes de ste un if. El e)ecto de else es ue si no se cumple la condicin de if* entonces el bloue de acciones de else se ejecuta. #ongamos otro ejemplo para !erlo con m's claridad6 # 3e pido al usuario que introduHca su nombre# nombre - str (input('I6"mo te llamasK')) # 6ompruebo si el usuario se llama 3aura# # iempre que se cumpla el if, el else nunca se e?ecutar4# if nombre -- '3aura'1 print('$ola', nombre) <:94 # i no se cumple la condici"n de if, entonces sG se e?ecuta el else# else1 print(':o te conoHco#') <:94 # Bl input est4 afuera de ambas condiciones, asG que siempre se e?ecutar4# # Para de?ar afuera un bloque, Este debe estar sin indentar# input('Pulse 9:%;< para finaliHar###') # $ago una pausa# 2abe destacar ue despus de cada llamada a if $ else !an dos puntos 365. %"ora supongamos ue ueremos comprobar !arias condiciones* Dpodr&amos poner !arios if uno detr's de otroF la respuesta es ue s&. Ejemplo6 # Bste programa comprueba si cumplimos los requisitos de Nbuntu &(#)A# # Pido informaci"n sobre el procesador1 procesador - float (input('I6u4ntos megaherHios tiene su procesadorK')) # Pido informaci"n sobre la ;.01 ram - int (input('I6u4nta memoria ;.0 tiene su ordenadorK')) if procesador O- &)))1 # 6ompruebo la potencia del procesador# print('%u procesador cumple los requisitos#') <:94 else1 print('%u procesador no cumple los requisitos#') <:94 if ram O- &)(A1 # 6ompruebo la cantidad de ;.0# print('%ienes suficiente memoria ;.0#') <:94 else1 print(':o tienes suficiente memoria ;.0#') <:94 input('Pulse 9:%;< para finaliHar###') # $ago una pausa# 23 Iniciacin a Python 3 eli2 La$ otro mtodo para "acer !arias comprobaciones* aunue el e)ecto es distinto. .i ueremos "acer !arias comprobaciones $ ue !arios bloues de acciones se ejecuten* entonces usaremos !arios if@ pero si ueremos "acer !arias comprobaciones $ ue slo se ejecute un bloue de acciones* usaremos elif. # Bste programa comprueba si un nLmero es positi!o o negati!o1 num - int (input('9ntroduHca un nLmero')) # Pido un nLmero al usuario# if num P )1 print(num, 'es un nLmero negati!o#') <:94 elif num O )1 print(num, 'es un nLmero positi!o#') <:94 elif num -- )1 print(num, 'no pertenece a ningLn grupo#') <:94 input('Pulse 9:%;< para finaliHar###') # $ago una pausa# Tambin podemos aNadir un else despus del +timo elif para contemplar otros posibles sucesos. Ejemplo6 nombre - str (input('I6"mo se llama ustedK')) # Pido su nombre al usuario# # Bl programa comprobar4 si te llamas .lberto o ;egina# # Qe cumplirse te saludar4, pero si tienes otro nombre dir4 que no te conoce# if nombre -- '.lberto'1 print('$ola', nombre) <:94 elif nombre -- ';egina' print('$ola', nombre) <:94 else1 print(':o te conoHco#') <:94 input('Pulse 9:%;< para finaliHar###') # $ago una pausa# 7mportante6 esto no es m's ue una cuestin de gustos. 4ependiendo de tu estilo de programacin 3$ del propsito de tu programa5 te sentir's m's cmodo con un mtodo u otro* pero lo cierto es ue elif o)rece muc"as )acilidades. #ara poder usar elif* antes debe e(istir un if. #uedes combinar if;elif;else, pero else slo podr' inter!enir una !ez* despus del +ltimo elif* como muestra el ejemplo. 24 Iniciacin a Python 3 +:ercicios %"ora ue "as aprendido a usar condiciones es momento de ponerlo en pr'ctica para terminar de asimilarlo. En la p'gina siguiente encontrar's las soluciones. ?ota6 se entiende ue todos los ejercicios deber'n estar comentados $ "acer una pausa "asta ue el usuario pulse 7?TR-* antes de )inalizar. ;az un pro)rama <ue111 /1 Pida dos n5meros reales, compruebe cul es mayor y lo muestre1 21 Pida tu edad y compruebe si tienes o no la mayor?a1 +n caso de introducir un n5mero menor <ue cero, el pro)rama deEolEer un mensa:e de error1 31 Pida un n5mero entero, la nota 2inal de una asi)natura1 "i es menor <ue 0, deEolEer un mensa:e de errorF si es menor <ue #, mostar por pantalla =suspenso>F si es i)ual a #, =su2iciente>F si es i)ual a &, =aprobado>F si es i)ual a ,, =notable>F y si es mayor o i)ual a -, =sobresaliente>1 2# Iniciacin a Python 3 /1 "olucinC numP< S )loat 3input3Q7ntroduzca el primer n+meroQ55 U #ido un n+mero. numP: S )loat 3input3Q7ntroduzca el segundo n+meroQ55 U #ido otro n+mero. U 2ompruebo cu'l de los dos es ma$or* o si son iguales. i) numP< SS numP:6 print3Q.on iguales.Q5 eli) numP< Y numP:6 print3numP<* Qes ma$or ueQ* numP:5 eli) numP< Z numP:6 print3numP:* Qes ma$or ueQ* numP<5 input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 21 "olucinC edad S int 3input3QD2u'ntos aNos tienesFQ55 U #ido la edad al usuario. U Lago la comprobacin. i) edad Z =6 print3QError.Q5 eli) edad Z <R6 print3QEres menor de edad.Q5 eli) edad YS <R6 print3QEres ma$or de edad.Q5 input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 31 "olucinC nota S int 3input3Q7ntroduzca su cali)icacinQ55 U #ido la nota. U Lago la comprobacin. 7) nota Z =6 print3QError.Q5 eli) nota Z J6 print3Q.uspenso.Q5 eli) nota SS J6 print3Q.u)iciente.Q5 eli) nota SS >6 print3Q%probado.Q5 eli) nota SS O6 print3Q?otable.Q5 eli) nota YS R6 print3Q.obresaliente.Q5 input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 2& Iniciacin a Python 3 Gucles El bucle es otro tipo de condicin. 2on l tambin podemos plantear una igualdad* con la di)erencia de ue mientras sta se cumpla* el bloue de acciones sujeto al bucle se ir' repitiendo una $ otra !ez. El bucle slo )inalizar' cuando la igualdad deje de cumplirse. % continuacin se e(plicar' cmo usar el bucle Rhile. %hile El bucle Rhile se puede utilizar cuando desconocemos el n+mero de !eces ue se repetir' un bloue $ para el mane?o de excepciones* entre otras cosas. Meamos un ejemplo de repeticin de un bloue6 # Bste programa nos ser!ir4 para comprar un nLmero dado de c"mics1 comics=usuario - ) # :Lmero de c"mics que tiene actualmente el usuario# # 3e pregunto al usuario cu4ntos c"mics le gustarGa tener# num=comics - int (input('I6u4ntos c"mics te gustarGa tenerK')) # 0ientras tengas menos c"mics de los que te gustarGa tener### Rhile comics=usuario P num=comics1 print('%ienes', comics=usuario, 'comics#') print('$as comprado un c"mic nue!o#') comics=usuario '- & input('Pulse 9:%;< para continuar###') # $ago una pausa# <:94 input('Pulse 9:%;< para finaliHar###') # $ago una pausa# El mane?o de excepciones sir!e para impedir ue ocurran impre!istos en la ejecucin de un programa. #or ejemplo* cuando uiero ue el usuario introduzca slo n+meros ma$ores ue cero. # 3e pregunto al usuario cu4ntos c"mics le gustarGa tener# num=comics - int (input('I6u4ntos c"mics te gustarGa tenerK')) Rhile num=comics P- )1 # 0ane?o de excepciones# print('Qebes introducir un nLmero mayor que cero#') # .d!ertencia# # $ago que el usuario introduHca otro nLmero# # i sigue siendo menor o igual a cero, el bloque !ol!er4 a repetirse# num=comics - int (input('I6u4ntos c"mics te gustarGa tenerK')) <:94 input('Pulse 9:%;< para finaliHar###') # $ago una pausa# 2, Iniciacin a Python 3 +:ercicios %"ora ue sabes usar bucles es el momento de ponerlo en pr'ctica. [ste ser' el +ltimo ejercicio del libro* $ con l termina tu aprendizaje. ?ota6 el ejercicio deber' estar comentado@ tener manejo de e(cepciones $ "acer una pausa "asta ue el usuario pulse 7?TR-* antes de )inalizar. ;az un pro)rama <ue111 /1 Pida al usuario un n5mero entero, impidiendo <ue Hste sea menor <ue cero1 +l pro)rama mostrar la tabla de multiplicar de dicho n5mero1 2- Iniciacin a Python 3 /1 "olucinC num S int 3input3Q7ntroduzca un n+meroQ55 U #ido un n+mero al usuario. multiplicador S = U ?+mero ue ir' multiplicando al introducido. 0"ile num Z =6 U Manejo de e(cepciones. print3QEl n+mero introducido no puede ser negati!o.Q5 U %d!ertencia. num S int 3input3Q7ntroduzca otro n+meroQ55 U #ido un n+mero al usuario. U Mientras el multiplicador sea menor o igual a <=... 0"ile multiplicador ZS <=6 resultado S num V multiplicador U -pero $ almaceno el resultado. print3num* Q(Q* multiplicador* QSQ* resultado5 U Muestro el resultado. multiplicador ES < U 7ncremento el multiplicador. input3Q#ulse 7?TR- para )inalizar...Q5 U Lago una pausa. 2. Iniciacin a Python 3 La despedida .i lees estas l&neas caben dos posibilidades6 o eres un curioso $ te "as ido directo a mirar u "a$ en la +ltima p'gina del libro* o est's a punto de terminarlo. 4e ser el segundo caso* te )elicito. Las aprendido lo b'sico $ $a est's preparado para seguir tu propio camino* pero debes saber ue toda!&a te )altan muc"&simas cosas por !er. 4ominar el arte de la programacin reuiere aNos. [ste es un camino di)&cil $ m's cuando se recorre en solitario. #or eso* Du mejor ue ir acompaNado por otras personas ue comparten tus mismos interesesF. E(iste una comunidad de usuarios apasionados por la libertad $ la tecnolog&a llamada Gree 4e!elopment. %ll& todos "acen un magn&)ico trabajo compartiendo sus conocimientos $ lle!ando a cabo pro$ectos ue apuestan por el bien com+n. 2ualuier persona puede entrar a )ormar parte de la comunidad sin importar su ni!el de conocimientos. ,os miembros estar'n encantados de conocer a nue!os compaNeros $ sin duda ser' una gran e(periencia para ti. #uedes contactar con la comunidad Gree 4e!elopment desde las redes sociales6 4iaspora Gaceboo\ Tuenti T0itter Tambin puedes escribirles un correo a )ree.de!elopment.Odb@gmail.com #or +ltimo* debo con)esar ue "e dis)rutado muc"o in!irtiendo mi tiempo en esta obra $ espero ue t+ "a$as sentido lo mismo. .in m's demora me despido. Jos Miguel Ruiz Torres 30 Iniciacin a Python 3