introduccion a-la-programacion-python

Download Introduccion a-la-programacion-python

If you can't read please download the document

Post on 23-Jun-2015

1.707 views

Category:

Documents

35 download

Embed Size (px)

TRANSCRIPT

  • 1. Introduccina la programacincon PythonAndrs MarzalIsabel GraciaDepartamento de lenguajes y sistemas informticos Codis dassignatura II04 i IG04Andrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9Introduccin a la programacin con Python - UJI

2. Introduccin a la programacino ocon Python Andrs Marzal e Isabel Gracia Departamento de Lenguajes y Sistemas Informticosa Universitat Jaume IEdita: Publicacions de la Universitat Jaume I. Servei de Comunicaci i Publicacions Campus del Riu Sec. Edifici Rectorat i Serveis Centrals. 12071 Castell de la Plana http://www.tenda.uji.es e-mail: publicacions@uji.esCollecci Sapientia, 23www.sapientia.uji.esISBN: 978-84-692-5869-9Aquest text est subjecte a una llicncia Reconeixement-NoComercial-CompartirIgual deCreative Commons, que permet copiar, distribuir i comunicar pblicament lobra sempreque especifique lautor i el nom de la publicaci i sense objectius comercials, i tamb per-met crear obres derivades, sempre que siguen distribudes amb aquesta mateixa llicncia.http://creativecommons.org/licenses/by-nc-sa/2.5/es/deed.ca Andrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9 IIIntroduccin a la programacin con Python - UJI 3. Prefacio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Andrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9 III Introduccin a la programacin con Python - UJI 4. Andrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9 IV Introduccin a la programacin con Python - UJI 5. Andrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9Introduccin a la programacin con Python - UJI 6. Andrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9 VI Introduccin a la programacin con Python - UJI 7. PrefacioIntroduccin a la programacin con Python e Introduccin a la programacin con Cooo odesarrollan el temario de la asignatura Metodolog y tecnolog de la programacin dea a olas titulaciones de Ingenier Informtica e Ingenier Tcnica en Informtica de Gestin aa a ea ode la Universitat Jaume I. En ella se pretende ensear a programar y, a diferencia de lo nque es usual en cursos introductorios a la programacin, se propone el aprendizaje conodos lenguajes de programacin: Python y C. o Por qu dos lenguajes de programacin? Python y C son bien diferentes. El primero e oes un lenguaje de muy alto nivel que permite expresar algoritmos de forma casi directa(ha llegado a considerarse pseudocdigo ejecutable) y hemos comprobado que se trata ode un lenguaje particularmente adecuado para la enseanza de la programacin. Estan oimpresin se ve corroborada por la adopcin de Python como lenguaje introductorio en oootras universidades. El lenguaje C exige una gran atencin a multitud de detalles queodicultan la implementacin de algoritmos a un estudiante que se enfrenta por primera ovez al desarrollo de programas. No obstante, C sigue siendo un lenguaje de programacinode referencia y debe formar parte del currculum de todo informtico: su proximidad alacomputador nos permite controlar con gran precisin el consumo de recursos computacio- onales. Aprender Python antes que C permite estudiar las estructuras de control y de datosbsicas con un alto nivel de abstraccin y, as entender mejor qu supone, exactamente,ao,ela mayor complejidad de la programacin en C y hasta qu punto es mayor el grado oede control que nos otorga. Por ejemplo, una vez se han estudiado listas en Python, suimplementacin en C permite al estudiante no perder de vista el objetivo ultimo: cons-otruir una entidad con cierto nivel de abstraccin usando unas herramientas concretas (los opunteros). De ese modo se evita una desafortunada confusin entre estructuras dinmicaso ay punteros que es frecuente cuando stas se estudian unicamente a la luz de un lenguaje e como C. En cierto modo, pues, Python y C se complementan en el aprendizaje y ofrecenuna visin ms rica y completa de la programacin. Las similitudes y diferencias entreoa oambos permiten al estudiante inferir ms fcilmente qu es fundamental y qu accesorioa ae eo accidental al disear programas en un lenguaje de programacin cualquiera.no Y por qu otro libro de texto introductorio a la programacin? Ciertamente hay muchos eolibros que ensean a programar desde cero. Creemos que estos dos libros de texto sendiferencia de ellos tanto en el hecho de estudiar secuencialmente dos lenguajes como enla forma en que se exponen y desarrollan los conocimientos. Hemos procurado adoptarsiempre el punto de vista del estudiante y presentar los conceptos y estrategias paradisear programas bsicos paso a paso, incrementalmente. La experiencia docente nos ha n aido mostrando toda una serie lneas de razonamiento inapropiadas, errores y vicios enlos que caen muchos estudiantes. El texto trata de exponer, con mayor o menor fortuna,esos razonamientos, errores y vicios para que el estudiante los tenga presentes y procureevitarlos. As en el desarrollo de algunos programas llegamos a ofrecer versiones errneas ,opara, acto seguido, estudiar sus defectos y mostrar una versin corregida. Los apuntesoestn repletos de cuadros que pretenden profundizar en aspectos marginales, llamar laaatencin sobre algn extremo, ofrecer algunas pinceladas de historia o, sencillamente, o udesviarse de lo sustancial con alguna digresin que podr resultar motivadora para elo a1 Introduccin a la programacin con Python - UJIAndrs Marzal/Isabel Gracia - ISBN: 978-84-692-5869-9 8. estudiante.Hemos de recalcar que este libro pretende ensear a programar y no es un manual nexhaustivo sobre el lenguaje de programacin Python. Son particularmente reseableso ndos omisiones: los diccionarios y las clases. No forman parte de esta edicin (aunqueoposiblemente se incluirn en otra posterior) porque hemos preferido centrarnos en aquellosaaspectos que tanto Python como C presentan en comn. La orientacin a objetos se puedeuotratar a partir del material expuesto en estos volmenes, pero hubiera resultado difucilincluir estos contenidos en el volumen de Python y no poder tratarlos adecuadamente enel volumen dedicado a C.Queremos aprovechar para dar un consejo a los estudiantes que no nos cansamos derepetir: es imposible aprender a programar limitndose a leer unos apuntes o a seguirapasivamente una explicacin en clase (especialmente si el peroodo de estudio se concen-tra en una o dos semanas). Programar al nivel propio de un curso introductorio no esparticularmente dif pero constituye una actividad intelectual radicalmente nueva paracil,los estudiantes. Es necesario darse una oportunidad para ir asentando los conocimien-tos y las estrategias de diseo de programas (y as superar el curso). Esa oportunidadn ,requiere tiempo para madurar. . . y trabajo, mucho trabajo; por eso el texto ofrece ms de acuatrocientos ochenta ejercicios. Slo tras haberse enfrentado a buena parte de ellos se oestar preparado para demostrar que se ha aprendido lo necesario. aHay centenares de diferencias entre las dos primeras ediciones (publicadas comoapuntes en la Universidad Jaume I y en formato electrnico en Internet) y sta. No slo o e ohemos corregido erratas (y errores), hemos aadido tambin nuevos ejemplos, modicadoneotros, preparado nuevos ejercicios, reubicado ejercicios para que aparezcan en lugaresque hemos juzgado ms apropiados, etc. Los programas se presentan con una tipografa aque, creemos, facilita notablemente la lectura. El documento PDF ofrece, adems, laaposibilidad de descargar cmodamente el texto de los programas (que se pueden descargarode http://ocw.uji.es). Esperamos que esta posibilidad se traduzca en un mayor animodel estudiante para experimentar con los programas.Convenios tipogrcosaHemos tratado de seguir una serie de convenios tipogrcos a lo largo del texto. Los aprogramas, por ejemplo, se muestran con fondo gris, as: 1 print Hola,mundo! !Por regla general, las lneas del programa aparecen numeradas a mano izquierda. Estanumeracin tiene por objeto facilitar la referencia a puntos concretos del programa y no odebe reproducirse en el chero de texto si se copia el programa.Cuando se quiere destacar el nombre del chero en el que reside un programa, sedispone este en una barra encima del cdigo: ohola mundo.py print Hola,mundo! ! 1Si se trabaja con la versin electrnica del libro en formato PDF (disponible en la oopgina web http://ocw.uji.es) es posible acceder cmodamente al texto de los pro-aogramas. Para ello, basta con desempaquetar el chero programas.tgz (o programas.zip)en el mismo directorio en el que est ubicado el documento PDF. Los programas accesiblesetienen un icono que representa un documento escrito en la esquina superior izquierda.Junto al icono aparece el nombre real del chero: como ofrecemos varias versiones de unmismo programa, nos hemos visto obligados a seguir un esquema de numeracin que modi-oca el propio nombre del chero. La primera versin de un chero llamado hola mundo.pyoes hola mundo 1.py, la segunda hola mundo 2.py, y as sucesivamente. Introduccin Marzal/Isabel Gracia -Python 978-84-692-5869-9 Andrs a la programacin con ISBN:o o2 Introduccin a la programacin con Python - c UJIUJI 9. hola mundo 1.py hola mundo.py 1print Hola,, mundo! !Si, aunque haya varias versiones, no aparece un nmero al nal del nombre del cheroudescargable, se entiende que esa es la versin denitiva.o hola mundo.py hola mundo.py 1print Hola,mundo! !Al pinchar en el icono, se abre un chero de texto con el navegador web o editor de textosque se indique en las preferencias del visualizador de documentos PDF.Cuando el programa contiene algn error grave, aparecen un par de rayos anqueando ual nombre del programa: E hola mundo.py Erint Hola,mundo!! 1Algunos programas no estn completos y, por ello, presentan alguna deciencia. No aobstante, hemos optado por no marcarlos como errneos cuando stos evolucionaban eno eel curso de la exposicin. oLa informacin que se muestra por pantalla aparece siempre recuadrada. El resultadoode ejecutar hola mundo.py se mostrar as a :!Hola, mundo! En ocasiones mostraremos las