Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN I
TAREA I
ZEN DE PHYTON
DOCENTE :
Ing. Edwin Vargas Yapura
MATERIA:
Programación I – INF 120 SD
GRUPO: 12
PORCENTAJE TERMINADO
Investigación: 70%
INTEGRANTES DT HG HI EVALUACION
Días de Retraso: 0
COMENTARIO
Con el siguiente trabajo que hemos realizado hemos entendido que se puede llamar
al lenguaje Python como muy sencillo, que deja enfocarse en el problema, ayuda a
hacer los código más simple, limpio, legible, esto también pudimos percibir en los
comentarios de los compañeros y el docente, nos damos cuenta que responde de
una manera muy similar, hay un patrón por ahí, esto se debe al resultado de la forma
en la que ha evolucionado el lenguaje y la importancia que se le ha dado a ciertos
principios fundamentales que han guiado esa evolución.
Con este trabajo también entendimos por qué el ingeniero nos recomienda tener
una mejor presentación en nuestro código, ósea que nuestro código fuera más
PYTHÓNICO, así utilizando y aplicando esos principios del ZEN PHYTON.
ZEN PHYTON
Este documento de nombre PEP 20 - “Import This” es TEXTO CORTO pero tan
lleno de sabiduría que engloba a toda la filosofía del lenguaje vamos a explorar
PRINCIPIOS
Comenzamos con uno de los principios más objetivos del centro y es que, la
belleza está en los ojos de quien mira es muy difícil traducir algo tan subjetivo como
a la belleza al mundo del software que está lleno de elementos, objetivos pero bueno
tal vez podamos acordar algo cuando vemos algo que personalmente consideramos
bello normalmente nos genera alegría, asombro. con un propósito distinto por
supuesto exactamente si podemos encontrar este tipo de contrastes en el mundo de
la arquitectura de software de los procesos de integración continua e inclusive en el
código mismo entonces si realmente mantener una base de código que
consideramos bella nos promete que podamos ser más felices pues debería ser
razón suficiente para valorar la belleza en cada línea que escribimos en cada
producto que diseñamos claro que la belleza no lo es todo inclusive a veces
viene con un costo añadido de mantenimiento.
Ejemplo
Vemos estas dos funciones que queremos entender qué es lo que hace, entonces
puedes ver una función calcular si es mayor o menor de edad, La Funcion 1 pide
edad el cual detalle que escriba la edad procesa y devuelve si es mayor de edad o
menor de edad, la Funcion 2 parece que calcular toma algunos datos que se los
manda a la función de procesar o hará con ellos para obtener después un el resultado
va más o menos podemos dar una idea de qué es lo que hace este código sin
embargo no se está ocultando cosas hay muchas cosas implícitas en este código que
no nos dan la información completa.
SIMPLE ES MEJOR QUE COMPLEJO, COMPLEJO ES MEJOR QUE
COMPLICADO
Simple
return menor(menor(a,b),menor(menor(c,d),e))
Complejo
else : return e
Hemos aprendido la palabra de anidado hay dos principales en los que las cosas
anidadas se manifiestan y causan problemas, vamos a verlas cuando escuchamos
condiciones anidadas, ciclos anidados, se refiere que ponemos una condición dentro
de otra un ciclo dentro de otro una condición dentro de ellos y asi.
Ahora cuando hacemos esto que sucede pues cada vez que anidamos algo estamos
agregando un nuevo camino independiente que puede tomar el código existen
medidas formales de medir esto como el índice de complejidad ciclo matemática de
main que es muy sencillo realmente es cuenta cuántos caminos independientes hay
en el código y eso te da una medida de complejidad porque esto es importante pues
porque cuando un desarrollador llega a uno de esos caminos y hace un cambio entre
más caminos haya pues va a ser más difícil para él considerar como los cambios que
está haciendo en uno de esos caminos impactan al resto de los caminos entonces
pues tratemos de no anidar tantas tantos niveles de crear tantos caminos
independientes tratemos de mantenerlos de una manera más plana para evitar estos
problemas y reducir la complejidad tener funciones mucho más claras otro lugar
donde esto se manifiesta sin jerarquías.
Tener un caso especial vamos a dejar a un lado todas las reglas que teníamos por
algo existía, por el otro lado pues si tenemos un problema que tenemos que resolver
pues no vamos a ser puristas irnos completamente al otro extremo y no resolverlo
porque había reglas entonces qué hacer pues bueno adoptar la prácticabilidad y
cómo hacemos eso pues bueno encontramos una solución que tal vez no va a estar
100% a favor de lo que decían las reglas pero para hacer esta solución práctica
necesitamos entender esas reglas muy bien entender por qué existían entender qué
es lo que tratan de proteger y entonces así podemos documentar bien nuestra
solución entender cuáles son las ventajas y el costo y el beneficio de lo que estamos
haciendo mejor ejemplo de esto no podría haber más que el trabajo desde casa o el
tener paicone desde casa los organizadores definitivamente siguieron el principio de
prácticabilidad y gracias a eso estamos aquí
LOS ERRORES NUNCA DEBERÍAN PASAR SILENCIOSAMENTE.
Los errores nunca deberían pasar silenciosamente a menos que sean explícitamente
entonces queremos para nuestro código, no queremos que en nuestro código, las
situaciones de error que sucedan se queden sin solucionar, al contrario queremos
que sean ruidosas que nos avisen que algo malo está pasando y que no dejemos
pasar esos errores.
“NO ADIVINAR”
Debería haber una y solo preferiblemente, solo una manera obvia de hacerlo, aunque
esa manera puede no ser obvia al principio a menos que seas holandés, este es otro
de los principios subjetivos del Zen, porque pues bueno que es obvio y que no es
obvio incluso aquí Tim el autor hace una pequeña broma hacia cuidó el creador de
payton porque Widow es holandés entonces para widow y era obvias las maneras de
hacerlo y bueno me estás diciendo que hay una forma obvia de escribir Python, me
gustaría decir que si ahora este problema es mucho más allá de que hay muchos
lenguajes que tienen este problema incluso más arraigado por ejemplo pero pero
tiene un problema de densidad tiene tantas maneras similares de expresar la misma
cosa que se crea una explosión combinatoria de maneras de expresar lo mismo y por
lo tanto que simplemente no hay una forma obvia de escribir pero ruido no quería esto
para país la visión para python era tener sólo unas cuantas cosas unas cuantas
maneras de escribir la misma cosa pero que de esas maneras sólo una fuera la
elección obvia ahora esto es muy muy difícil de lograr sobre todo con un lenguaje que
está en constante evolución que lleva en evolución tantos años y que incluso se
siguen aumentando nuevas maneras de expresar cosas nueva funcionalidad
Ahora es mejor que nunca aunque nunca suele ser mejor que justo ahora
Esa optimización que crees que vas a necesitar en dos meses y esa pequeña
decoración que le estás poniendo a tu código por si las dudas no las vas a necesitar
lo que nos invita este principio del zen es a evaluar cuál es el momento correcto de
implementar algo entonces bueno de entrada lo vas a necesitar o no lo vas a necesitar
si lo si no lo vas a necesitar pues cuando es la mejor el mejor momento de
implementarlo simplemente nunca pero si lo vas a necesitar y lo haces justo ahora
pues lo podrías hacer con calidad, simple, explícito
Facil de explicar
Los espacios de nombres simplemente son, lo que nos permite utilizar definiciones
idénticas en diferentes contextos que significan diferentes cosas pensemos una
variable que se llama igual que una función o que se llama igual que un módulo el
intérprete no se confunde entre estos entre estas definiciones porque cada uno está
en un contexto distinto entonces está en un espacio de nombre diferente piensa por
ejemplo en un teclado no es lo mismo cuando tú oprime es una tecla de una letra que
si la oprime es mientras que presionas alto shift entonces independientemente de lo
que haga en el hardware del teclado pues al aplicar estos modificadores tú estás
cambiando el contexto de la letra que estás presionando lo que estás haciendo es
cambiar ese espacio de nombre cierto y por lo tanto obtienes un resultado distinto.
CONCLUSIÓN
Como conclusión y aprendizaje de los principios en el Zen Phyton nos sirven de guía
para todas las personas de alguna manera y contribuyen al lenguaje al escribir el
código mas “bello, explicito, simple, complejo, plano, esparcido, legible, regla de
practicalidad, errores ruidosos, no adivinar, obvio, ahora nunca, fácil de
explicar, espacios de nombre,” esta es la esencia de payton estos son los principios
que al seguirlos hacen que tu código sea pythonyco.
VOCABULARIO
Bibliografía https://elpythonista.com/zen-de-python
https://es.wikipedia.org/wiki/Zen_de_Python
https://es.wikipedia.org/wiki/Python
https://peps.python.org/pep-0020/