2.0 puesta en marcha

15
2. Puesta en Marcha Autores:José María Herrera Fernández, Luis Miguel Sánchez Brea Contenidos de este capítulo: Windows Linux Trabajar con Python Consolas IDEs Pythonpath Ayudas Mi primer programa Estructura de un programa .py Autoejecución Cabecera Generación de ayudas Carga de Módulos Definición de funciones Código ejecutable: main Sistema de verificación del código Como en casi todos los programas, dependiendo del sistema operativo del que disponga nuestro ordenador la instalación de software variará ligeramente y Python no es una excepción. A fin de que el sistema operativo no suponga un bache en nuestro camino hacia el aprendizaje de Python, en esta sección veremos la instalación paso a paso en los dos sistemas operativos más extendidos en la actualidad. Para otros sistemas operativos recomendamos al lector que en caso de duda acuda a la gran bibliografía existente en la red. 2.1. Windows A la hora de instalar Python en el sistema operativo de Microsoft tenemos dos opciones según el uso que vayamos a hacer del lenguaje de programación. Por una parte, como ya hemos mencionado en la introducción, Python es un leguanje de programación de uso general por lo que, si éste es el caso, recomendamos la instalación del paquete básico e incorporar los módulos que necesitemos. En el sitio oficial de Phython en la sección de descargas podemos encontrar diferentes versiones. En la actualidad conviven las versiones 3.3.* y 2.7.* donde * es la última versión estable. Las instalaciones de este libro fueron realizadas con la versión 2.7.2 aunque no varía sustancialmente para versiones posteriores. Por otra parte, como la programación que vamos a realizar está orientada al ámbito científicoacadémico e ingenieril, la opción que más se ajusta a nuestros intereses es el paquete Python(x,y) . Python(x,y) es un software de desarrollo gratuito que incorpora los principales módulos necesarios para cálculo numérico junto con algún otro complemento que analizaremos posteriormente. La instalación es similar a otros programas de Windows. Lo primero que debemos de hacer es descargarmos la última versión del programa desde la sección de descargas de la web oficial, http://code.google.com/p/pythonxy/wiki/Downloads?tm=2 . En la Figura 2 podemos ver que en el mismo enlace disponemos de las notas de instalación que recomendamos repasar antes de iniciar el proceso. Son unos 420 MB (ya que tiene bastantes aplicaciones). Una vez instalado observaremos como nuestros archivos con extensión .py se asocian con python por lo que si pinchamos dos veces sobre ellos se ejecutarán. TABLA DE CONTENIDOS Autores Qué es nuevo Licencia Descargas Referencias 1. Introducción 2. Puesta en Marcha 3. Lenguajes de Programación 4. Módulos Científicos 5. Ecuaciones de Maxwell en el vacío 6. Polarización 7. Interacción radiaciónmateria 8. Índice de refracción: modelo microscóp 9. Ecuaciones de Fresnel 10. Pulsos de luz 11. Interferencias 12. Módulos de Óptica 13. Difracción en campo cercano 14. Difracción en campo lejano 15. Redes de Difracción 16. Procesado óptico de la información BÚSQUEDA Ir a Introduzca los términos de búsqueda o un nombre módulo, clase o función. Computación científica con Python para módulos de evaluación continua en asignaturas de ciencias aplicadas ANTERIOR | SIGUIENTE

Upload: richard-ore-cayetano

Post on 18-Aug-2015

19 views

Category:

Documents


3 download

DESCRIPTION

python

TRANSCRIPT

2.PuestaenMarchaAutores:JosMaraHerreraFernndez,LuisMiguelSnchezBreaContenidosdeestecaptulo:WindowsLinuxTrabajarconPythonConsolasIDEsPythonpathAyudasMiprimerprogramaEstructuradeunprograma.pyAutoejecucinCabeceraGeneracindeayudasCargadeMdulosDefinicindefuncionesCdigoejecutable:mainSistemadeverificacindelcdigoComo en casi todos los programas, dependiendo del sistema operativo del que disponga nuestro ordenador lainstalacindesoftwarevariarligeramenteyPythonnoesunaexcepcin.AfindequeelsistemaoperativonosupongaunbacheennuestrocaminohaciaelaprendizajedePython,enestaseccinveremoslainstalacinpasoapasoenlosdossistemasoperativosmsextendidosenlaactualidad.Paraotrossistemasoperativosrecomendamosallectorqueencasodedudaacudaalagranbibliografaexistenteenlared.2.1.WindowsA la hora de instalar Python en el sistema operativo de Microsoft tenemos dos opciones segn el uso que vayamos ahacer del lenguaje de programacin. Por una parte, como ya hemos mencionado en la introduccin, Python es unleguanjedeprogramacindeusogeneralporloque,sisteeselcaso,recomendamoslainstalacindelpaquetebsicoeincorporarlosmdulosquenecesitemos.EnelsitiooficialdePhythonenlaseccindedescargaspodemosencontrardiferentes versiones. En la actualidad conviven las versiones 3.3.* y 2.7.* donde * es la ltima versin estable. Lasinstalaciones de este libro fueron realizadas con la versin 2.7.2 aunque no vara sustancialmente para versionesposteriores.Porotraparte,comolaprogramacinquevamosarealizarestorientadaalmbitocientficoacadmicoeingenieril, la opcin que ms se ajusta a nuestros intereses es el paquete Python(x,y).Python(x,y) es un software dedesarrollo gratuito que incorpora los principales mdulos necesarios para clculo numrico junto con algn otrocomplemento que analizaremos posteriormente. La instalacin es similar a otros programas de Windows. Lo primeroquedebemosdehaceresdescargarmoslaltimaversindelprogramadesdelaseccindedescargasdelaweboficial,http://code.google.com/p/pythonxy/wiki/Downloads?tm=2.EnlaFigura2podemosverqueenelmismoenlacedisponemosdelasnotasdeinstalacinquerecomendamosrepasarantes de iniciar el proceso. Son unos 420 MB (ya que tiene bastantes aplicaciones). Una vez instalado observaremoscomo nuestros archivos con extensin .py se asocian con python por lo que si pinchamos dos veces sobre ellos seejecutarn.TABLA DE CONTENI DOSAutoresQuesnuevoLicenciaDescargasReferencias1.Introduccin2.PuestaenMarcha3.LenguajesdeProgramacin4.MdulosCientficos5.EcuacionesdeMaxwellenelvaco6.Polarizacin7.Interaccinradiacinmateria8.ndicederefraccin:modelomicroscpico9.EcuacionesdeFresnel10.Pulsosdeluz11.Interferencias12.Mdulosdeptica13.Difraccinencampocercano14.Difraccinencampolejano15.RedesdeDifraccin16.ProcesadopticodelainformacinBSQUEDA IraIntroduzcalostrminosdebsquedaounnombredemdulo,claseofuncin.Computacin cientfica con Python para mdulos de evaluacin continuaen asignaturas de ciencias aplicadasANTERI OR|SI GUI ENTEFigura2.DescargadePython(x,y)desdelaseccincorrespondienteenlaweboficial.Enlasmismapginapodemosencontrarlasnotasdeinstalacinquedebemosdetenerencuenta.2.2.LinuxPythonvieneincorporadoenlamayoradelasdistribucionesexistentes.SienunaterminalejecutamoselcomandopythonVcomprobaremosqueversindePythontenemosinstalada.EncasodenoseraspodemosinstalarloejecutandoaptgetinstallpythonOtra opcin es, por ejemplo, desde el centro de software en Ubuntu. Basta con buscar python en el lugarcorrespondiente y nos indicar si lo tenemos instalado y si queremos instalarlo o desistalarlo. Para instalar nuevosmdulossepuedeseguirelmismoprocedimientoyaseadesdelaterminalodesdeelcentrodesoftware.2.2.1.TrabajarconPythonAlahoradeiniciarseenlaprogramacinesmuyimportanteconocerlasintasisdellenguajequesevaautilizarparadesarrollar codigo de una manera correcta. De igual importancia es conocer las herramientas de las que disponemosparaejecutarydepurarelcdigodesarrollado.2.3.ConsolasDesde el mismo momento en el que Python se instala en el sistema podemos empezar a programar abriendo unaconsolainteractivaenunaterminal.Laconsolainteractivamssencillaseejecutadirectamenteenunterminal(Linux)escribiendopythonInmediantamente podremos ir introduciendo lineas de comandos y ejecutar de una en una. En Windows la forma esequivalente.Existenconcolasinteractivasmscompletasquenosvanindicandoayudasinmediatasamedidaquevamosescribiendocdigo.Seintroducelainstruccionyseejecutadeunaenuna.Estaformadeprogramacinesadecuadacuandosomosprincipiantes y estamos desarrollando programas cortos donde nos interesa ver inmediatamente si el resultado escorrectoono.2.4.IDEsLasconsolasnoeselmejorprocedimientoparadesarrollarprogramasextensos.Elcdigoescritoenlaconsolanoesfcildeseguirydevolverautilizar.UnaprogramacineficazserealizamedianteunEntornodeDesarrolloIntegrado(IDE, Integrated Developed Environment). Con este acrnimo ingls se describe a toda aplicacin de sofware queproporcionaunafacilidadcomprensivaalahoradelacreacindeprogramasinformticosseaenellenguajequesea.NormalmenteunIDEconstadeuneditordecdigofuente,uncompliadory/ounintrprete,herramientasdecreacinyundepurador.Tambinsuelentenerconsolasinteractivas.EnestaseccinnoscentraremosentresIDEsenparticular:IDLE,SpyderyEclipse.IDLE:eselIDEdePythonbasadoenelentornodeventantasthinterydesarrollado100%tambinenPython.Es el ms simple de los tres que veremos pero para principiantes quizs sea el ms adecuado. Posee mododepuracinaunqueparaprogramadoresexperimentadossequedabastantecorto.LainstalacinenWindowsserealizaconlainstalacindelpropiolenguajemientrasqueenelrestodeSOlainstalacinserealizadelaformausual. Para ms informacin podemos consultar la documentacin oficial en el siguiente enlace:http://docs.python.org/2/library/idle.html. En la Figura 3 se muestra un ejemplo de creacin de un array en laconsoladeIDLE.Figura3.ConsoladeIDLE.Spyder:SpyderesunIDEespecficoparaPythonorientadoacientficosydesarrolloingenierilconunainterfazmuy similar a Matlab, por lo que es la opcin ms adecuada cuando se quiere migrar de Matlab a Python. SihemosinstaladoPython(x,y),aliniciarelprogramasenosabreunaventanacondiversascaractersitcas.Dentrode la pestaa Shortcuts nos encontramos el apartado Spyder. Bastar con pinchar en el smbolo delprograma(Figura4)einmediatamentesenosabriraelprograma.Comosiempre,sinosencontramosenlinuxabrimosunaterminalyejecutamoslaordensudoaptgetinstallspyderytrasunossegundosnosaparecercomoopcinennuestromenu.Figura4.SpyderenPython(X,Y).Parainiciarelprogramapinchamosenelsmboloresaltadoenlaimagen.Al iniciar el programa por primera vez vemos que, si hemos sido usuarios de MATLAB, efectivamente nosencontramosenunentornofamiliar.EnlaFigura5vemosqueenlazonaizquierdadelapantallatenemosuneditordecdigo. En la zona central nos encontramos un navegador con nuestros programas y en la zona derecha tenemos laayudaylaconsolainteractiva.Figura5.Spyderconsusdiferentessecciones.ParamsinformacinpodemosconsultarelmanualoficialdelIDEenhttp://packages.python.org/spyder/Eclipse:Eclipsees un programa informtico compuesto por un conjunto de herramientas de programacin decdigoabiertomultiplataformaparadesarrollarloqueelproyectollamaAplicacionesdeClienteEnriquecido,opuestoalasaplicacionesClientelivianobasadasennavegadores.Estaplataforma,tpicamentehasidousadaparadesarrollarIDEs,comoelIDEdeJavallamadoJavaDevelopmentToolkit(JDT).EclipsepuedeserusadoconPythonmediantelainstalacindePydev.PydevesunIDEparaEclipsemuycompletoyconfigurableconunmododedepuracinextraordinariamentepotente.DelostresIDEsquehemosvisto,steeselentornomscomplicado por la cantidad de opciones que contiene. Sin embargo para el programador avanzado ser el quemscomodoleresultealahoraderealizarsusprogramas.Si nos encontramos en el sistema operativo de Microsoft, lo primero que debemos hacer es decargarnos la ultimaversindelprogramaenelsitiooficial,http://www.eclipse.org/downloads/.Enlinux,sudoaptgetinstalleclipseTantoenlinuxcomoenWindowssinolostenemosdebemosinstalarlaultimaversindeJavaDevelopmentKit(JDK)yelJavaRuntimeEnvironment(JRE).ParaconfigurarPyDevenEclipsedebemosdeseguirlossiguientespasos:1. Abrimos Eclipse y nos vamos a Help > Install New Software. En la pantalla emergente aadimoshttp://pydev.org/updatesenelcampoworkwith.Figura6.InstalaciondePydevenEclipse.2. PulsamosenAdd,esperamosaqueactualizeelcampodeabajoparapoderseleccionarPyDev,luegopulsamosenNext,yseguimoselasistenteparacompletarlainstalacin.Figura7.InstalaciondePydevenEclipse.3. ReiniciamosEclipse.4. Ahora deberemos especificar dnde se encuentra el interprete de python en las preferencias Eclipse, para ellonos vamos a Eclipse >preferences>PyDev>Interpreter>Python. Pulsamos en autoConfig, marcamostodo(sinoloest)yaceptamos.Figura8.InstalacindePydevenEclipse.En este caso tambin tenemos a nuestra disposicin un manual oficial muy completo enhttp://pydev.org/manual_101_root.html. Si hemos realizado todos los pasos correctamente podremos ejecutarprogramas realizados en python sin ningn problema. En la Figura [figEclipse] podemos ver un ejemplo de ladisposicin de las secciones en Eclipse. Estas seccciones son totalmente configurables por lo que dependiendo devuestraspreferenciaslaimagenpuedeonocoincidirconvuestradisposicin.Figura9.EclipseconPydevconfigurado.2.5.PythonpathDependiendo el IDE elegido se nos habr creado una carpeta como directorio de trabajo. Sin embargo en ocasionespuedeinteresarnostrabajarconarchivosfueradeestedirectorio.Paraellodebemosdeaadirlanuevarutadenuestrosarchivos.EstaoperacinserealizaenPythonpath.Spyder:Tools>PYTHONPATHmanager.Sebuscaeldirectoriodondetenemoslosprogramas.Eclipse:Project>Properties>PydevPYTHONPATH.Sebuscaeldirectoriodondetenemoslosprogramas.Figura10.CargadelosdirectoriosenelPythonpath,paraeclipse.2.6.AyudasLascomandosdeloslenguajesdeprogramacinsonprcticamenteinfinitosy,slomedianteprctica,conseguiremosaprendernosalgunosdeellos.Sinembargo,enlamayoradeloscasosdebereosacudiraladocumentacinoficialpararesolvernuestrasdudas.Normalmentecadalenguajedeprogramacintienealgncomandoespecficoparaaccederalainformacinquenosinterese.AdemsmuchosdelosIDEfacilitanelaccesoaestainformacinmediantealgnaccesodirecto o alguna ventana permanente. En general los pasos a seguir cuando no sabemos qu comando utilizar o lasintaxisdesuutilizacinsonlossiguientes.Google.Elbuscadordeinformacineninternetporexcelencia.Enalgunasocasionesnosabremosmuybienpordondeempezaronossabremoselcomandoequivalenteenotrolenguajedeprogramacin.Siellectorhatenidoesa duda seguramente otra persona la haya tenido antes por lo que podremos encontrar la respuesta sindemasiadoesfuerzo.Medianteelusodecomandosespecificos.Comohemosmencionado,cadalenguajedeprogramacintieneunaserie de comandos para accecer a la informacin de los comandos acerca de los cuales tengamos dudas. Porejemplosienunaconsolatecleamosimportnumpyasnphelp(np.linspace)obtendremoslainformacindelinspaceenlamismaconsola,Helponfunctionlinspaceinmodulenumpy.core.function_base:linspace(start,stop,num=50,endpoint=True,retstep=False)Returnevenlyspacednumbersoveraspecifiedinterval.Returns`num`evenlyspacedsamples,calculatedovertheinterval[`start`,`stop`].Theendpointoftheintervalcanoptionallybeexcluded.Parametersstart:scalarThestartingvalueofthesequence.stop:scalarTheendvalueofthesequence,unless`endpoint`issettoFalse.Inthatcase,thesequenceconsistsofallbutthelastof``num+1``evenlyspacedsamples,sothat`stop`isexcluded.Notethatthestepsizechangeswhen`endpoint`isFalse.num:int,optionalNumberofsamplestogenerate.Defaultis50.endpoint:bool,optionalIfTrue,`stop`isthelastsample.Otherwise,itisnotincluded.DefaultisTrue.retstep:bool,optionalIfTrue,return(`samples`,`step`),where`step`isthespacingbetweensamples.Returnssamples:ndarrayThereare`num`equallyspacedsamplesintheclosedinterval``[start,stop]``orthehalfopeninterval``[start,stop)``(dependingonwhether`endpoint`isTrueorFalse).step:float(onlyif`retstep`isTrue)Sizeofspacingbetweensamples.SeeAlsoarange:Similiarto`linspace`,butusesastepsize(insteadofthenumberofsamples).logspace:Samplesuniformlydistributedinlogspace.Examples>>>np.linspace(2.0,3.0,num=5)array([2.,2.25,2.5,2.75,3.])>>>np.linspace(2.0,3.0,num=5,endpoint=False)array([2.,2.2,2.4,2.6,2.8])>>>np.linspace(2.0,3.0,num=5,retstep=True)(array([2.,2.25,2.5,2.75,3.]),0.25)Graphicalillustration:>>>importmatplotlib.pyplotasplt>>>N=8>>>y=np.zeros(N)>>>x1=np.linspace(0,10,N,endpoint=True)>>>x2=np.linspace(0,10,N,endpoint=False)>>>plt.plot(x1,y,'o')[]>>>plt.plot(x2,y+0.5,'o')[]>>>plt.ylim([0.5,1])(0.5,1)>>>plt.show()EnelcasoconcretodelIDESpydertenemoselObjectinspector.Siescribimosenlacajaobjectlapalabraquedeseamosprobablementeaparezcalaayudadeformaautomtica.Porejemplo,siquieroordenarunalistaynosecmo,podemosescribirsortyaparecerlaformadeutilizacin.AdemstantoenspydercomoenEclipse,alescribirelcomandonosaparecelaayudadeformaautomticacomopodemosverenlaFigura11Figura10.AyudaautomticauObjectinspectorenSpyder.2.6.1.MiprimerprogramaPor tradicin se suele decir que un lenguaje de programacin es ms o menos complicado cuanto ms nos cuestaimplementarelHolaMundo,esdecir,imprimirenpantallaestasdospalabras.Pythonteniendoencuentaestecriterioesdeloslenguajesmsfcilesyaqueconunasolalneadecdigopodemosobtenerelresultadodeseado>>>print("HolaMundo")HolaMundosicomparamosconC++,#includeusingnamespacestd;intmain(){coutLosnombresdeloscreadoresdelprograma.Creacin>Fechadecreacindelprograma.Historia>Encasodemodificacinesposterioresesenestasecindondeseindicalamodificacin,lafechadelarealizacinyelautordelamisma.Dependencias>Mdulosnecesariosparalaejecucindelprograma.Porejemploscipy,matplotlib..Licencia>Apartadocorrespondientealosderechosdeautor.Comoseobserva,paraincluiruncomentarioseutilizaelcaracter#2.9.GeneracindeayudasEnelapartadodeAyudas(2.2.4)aprendimosautilizarelcomandohelpparaobtenerinformacinsobreelusodeundeterminado comando. El resultado es una informacin muy valiosa que nosotros debemos de aadir tambin anuestras funciones, programas etc. Es lo que se denomina Docstring. Las ayudas se deben de incluir inmediatamentedespes de la cabecera en el caso de ser una descripcin general e inmediantamente despus de cualquier funcin,clase, etc. La metodologa es simple, todo aquella informacin que creamos necesaria para el Docstring debe de irencerradaentreseisparesdecomillasdobles(tresalinicioytresalfinal).Ademsparafuncionesdeberemosdeincluirlossiguientesapartados:(Entradas) > (salidas). Se enumeran el tipo de entrados que necesita como entradas la funcin y el tipo desalidasquenosdevolver,int,bool,float,etcDescripcin.Ecplicacindelafuncin.Explicacindecadaentrada.Explicacindecadasalida.Test.Ejemplosencilloconelresultadoquepuedaservircomocomprobadordelbuenusodelafuncincreada.Ejemplodeayudaparaunarchivogeneral,"""Descripcin:ArchivoplantillaparagenerarprogramasenPython."""Aunque todava no hemos visto las funciones podemos ver un ejemplo de ayuda en una funcin que nos devuelve elsenodelnmeroqueentremos,deff1(x=3.3): """ *(float)>(float) *Descripcin:Funcinquedevuelveelsenodeunenterodado. *Entradas: x=entero. *Salidas: y=seno(entero) *Test: >>>print("f1(0.7)") 0.64421768723769102 """ y=sp.sin(x) returny2.10.CargadeMdulosEnPythonnoesnecesariodeclararlasvariables,locualsuponeunagransimplificacinrespectoaprogramascomoC.Sin embargo para llamar a funciones y clases que no estn en el archivo que se est ejecutando, es necesario decirlednde estn. Se pueden declarar un mdulo, o llamar a sus funciones de diversas formas. En los siguientes ejemploscargamosalgunasotodaslasfuncionesdelmdulocientficoscipy.importscipyimportscipyasspfromscipyimport*fromscipyimportsinfromscipy.fftpackimportfftimportmatplotlib.pyplotaspltVeamoscomollamaramosalafuncionsindependiendolaformaenlaquehayamoscargadoscipyimportscipy>y=scipy.sin(x),Importamosscipyyllamamosalasfuncionesquetiene.importscipyassp>y=sp.sin(x),Renombramosscipyconunaliasmscorto.fromscipyimport*>y=sin(x),importamostodaslasfuncionesquecontienescipyfromscipyimportsin,cos>y=sin(x),importamosnicamentesinycosfromscipy.fftpackimportfft>Silosmdulossonmuylargos,sepuedenhacerenvariosarchivos.Entonceslasfuncionesoclasesestnanidadas.Estoesdegranutilidadporvariosmotivos:Permitenoestarpendientedelnombredelasfunciones,clases,etc.Sielnombreserepiteendosmdulos,nohayproblema,puessabemosaqumdulopertenecePermite escribir cdigo de forma modular. Para utilizar en mdulo desarrollado por otro programado, porejemplooptica.py,lonicoquehayquehaceresllamarloantes,importoptica2.11.DefinicindefuncionesSeguidamentealasdeclaracionesdelosmdulossepuedenescribirlasfuncionesyclasesquevayamosautilizar.Estonosignificaqueelprogramavayaarealizarningunaaccin.Enelsiguientetemasevercmohayquedesarrollarelcdigoparacrearestasfuncionesyclases.UnaventajadePythonesqueenunmismoprograma(omdulo,segndefinamos)podemosescribirmuchasfuncionesyclasesalavez,porloquesesimplificalarevisindecdigoysumantenimiento.Asimismo,incluirvariasfuncionesenunmismoarchivopermitepoderpasarnuestrocdigoaotrosprogramadoresdeunaformasencilla.deff1(x=3.3): """ *(float)>(float) *Descripcin:Funcinquedevuelveelsenodeunenterodado. *Entradas: x=entero. *Salidas: y=seno(entero) *Test: >>>print("f1(0.7)") 0.64421768723769102 """ y=sp.sin(x) returnydeff2(x=3): """ *(float)>(float) *Descripcin:Funcinquedevuelveelsenodeunenterodado. *Entradas: x=entero. *Salidas: y=cos(entero) *Test: >>print("f2(0.7)") 0.7648421872844885 """ y=sp.cos(x) returnyPython no utiliza parntesis o llaves para decir qu cdigo pertenece a una funcin. Es de esencial importancia enPythonseguirunsistemadeindentacin.Esdecir,elcdigoqueestdentrodeunafuncintienequeestrindentadodentro de la funcin como en el ejemplo anterior para que pertenezca a la funcin. Para salirnos de la funcin,simplementedesindentamoselcdigo.2.12.Cdigoejecutable:mainA una funcin de Python se la puede llamar de dos formas: a travs de otra funcin python o directamente. Elcomportamiento de la funcin puede ser distinto por lo que se debe de tener cuidado. Si, por ejemplo, tenemos elsiguientecodigoalfinaldelarchivo:if__name__=='__main__': #Creamoselarrayx x=sp.linspace(0,10,100) #Calculamoselsenoyelcosenomediantelasfuncionescreadas. y1=f1(x) y2=f2(x) #Dibujamoslasdosfuncionesenunanicafigura. plt.figure() plt.plot(x,y1,'k',label='seno') plt.hold(True) plt.plot(x,y2,'r',label='coseno') plt.show()Llegadosaestepuntopodemosvernuestraprogramacompletoquenoservirdeplantillaparaelrestodeprogramasquecreemos,#!/usr/bin/envpython#*coding:utf8*from__future__importdivision##Nombre:ejemplo_estructura_programa.py#Propsito:Ejemplodearchivoconlaestructuradeunprograma##Origen:Propio#Autor:JosMar aHerreraFernandezyLuisMiguelSanchezBrea##Creacin:12deSeptiembrede2013#Historia:##Dependencias:scipy,matplotlib#Licencia:GPL#"""Descripcin:ArchivoplantillaparagenerarprogramasenPython."""importscipyimportscipyasspfromscipyimport*fromscipyimportsinfromscipy.fftpackimportfftimportmatplotlib.pyplotaspltdeff1(x=3.3): """ *(float)>(float) *Descripcin:Funcinquedevuelveelsenodeunenterodado. *Entradas: x=entero. *Salidas: y=seno(entero) *Test: >>>print("f1(0.7)") 0.64421768723769102 """ y=sp.sin(x) returnydeff2(x=3): """ *(float)>(float) *Descripcin:Funcinquedevuelveelsenodeunenterodado. *Entradas: x=entero. *Salidas: y=cos(entero) *Test: >>print("f2(0.7)") 0.7648421872844885 """ y=sp.cos(x) returnyif__name__=='__main__': #Creamoselarrayx x=sp.linspace(0,10,100) #Calculamoselsenoyelcosenomediantelasfuncionescreadas. y1=f1(x) y2=f2(x) #Dibujamoslasdosfuncionesenunanicafigura. plt.figure() plt.plot(x,y1,'k',label='seno') plt.hold(True) plt.plot(x,y2,'r',label='coseno') plt.show()Ejecutando,(Sourcecode,png,hires.png,pdf)2.13.SistemadeverificacindelcdigoEnelapartadodegeneracindeayudasvimosqueeraconvenienteaadirunapartadodeverificacindelalafuncinquellamamosTest.Sinembargo,enocasioneslasfuncionessondemasiadogradesparaaadiresteapartado.Enestasocasioneslasolucinessimple,noscreamosotrafuncinqueinvoquealaprimeraproporcionandodatosconocidos.Deestaformacontinuaremosprobandoelbuenfuncionamientodenuestrafuncinsinelinconvenientedelespacio.ANTERIOR|SIGUIENTEMOSTRARELCDIGOCopyright2013,LuisMiguelSnchezBrea.CreadoconSphinx