Reto: Yo soy 196

--Originally published at Migue´s Blog

Este reto consiste en identificar los posibles numeros Lycharel, los cuales son numeros que no se convierten en palyndromos después de sumar sus inversos, para este programa considere un posible candidato aquel numero que no se volvía palindromo después de sumar 30 veces su inverso

captura-de-pantalla-de-2016-10-27-01-03-46

captura-de-pantalla-de-2016-10-27-01-04-11

captura-de-pantalla-de-2016-10-27-01-03-29

captura-de-pantalla-de-2016-10-27-01-07-11

En esta parte se declaran las variables, a continuación se introduce el inicio y el final de la serie y por ultime se añade toda la sería una variable llamada “secuencia”

captura-de-pantalla-de-2016-10-27-01-07-34

Este ciclo for es el que se va a repetir por cada numero dentro de la secuencia para ver si es número Lycharel.

Primero se invierte el número y se guarda en la variable “y” para posteriormente sumarselo

captura-de-pantalla-de-2016-10-27-01-07-52

En esta sección se analiza si es un palindromo natural, es decir sin necesidad de sumar su inverso, el if y los elif sirven para descartar los numeros del 0 al 9, debido a que ellos podrian ser tomados como palindromos pero yo no los tome debido a que solo son de 1 cifra, si aun asi es palindromo natural y tiene más de una cifra se añade uno al contador de palindromos naturales y de numeros no Lycharel y s termina el ciclo para ese numero.

captura-de-pantalla-de-2016-10-27-01-08-13

Si no es palindromo entonces se comienza a analizar sumando su inverso.

El contador se utiliza para entrar al ciclo mientras sea menor que 31, si alcanza a 31 quiere decir que ya se sumo 30 veces su inverso y no se volvio palindromo, por lo que lo consideraremos como un posible candidato.

si en una de esas sumas se vuelve palindromo se acaba el ciclo para ese numero y se añade uno al contador de numeros no Lycharel

 

 


Reto: Revisar Palindromos

--Originally published at Migue´s Blog

Este reto fue de los más complicados, consistía en revisar un texto y mostrar cuantos palindromos contiene, hubiera sido más sencillo si solo se analizaban palabras como:

Bob=boB

Pero también se tiene que analizar toda la frase para ver en donde inicia y en donde termina cada palindromo por ejemplo en:

Anita lava la tina=anita lava la tinA

captura-de-pantalla-de-2016-10-27-00-40-32

captura-de-pantalla-de-2016-10-27-00-40-50

captura-de-pantalla-de-2016-10-27-00-41-38

captura-de-pantalla-de-2016-10-27-00-47-56

Aquí se declaran todas las variables a utilizar a lo largo del programa, son muchas para no revolverlas entre ellas, se irán explicando conforme se utilicen

captura-de-pantalla-de-2016-10-27-00-48-17

Con esta parte se preparan las letras a analizar:

  • linea 16: se introduce la frase
  • 17: se cambian a minusculas las letras
  • 18: se eliminan los elementos de la lista “eliminar”
  • 20: se añade cada elemento a la lista “letras_espacios” incluyendo los espacios
  • 22: Se separan las palabras por espacios, lo que elimina a los espacios de la lista
  • 23: Añade cada palabra separada a una lista
  • 25: separa las palabras en letras y las añade a otra lista
  • 29: Voltea las letras

captura-de-pantalla-de-2016-10-27-00-48-48

En esta sección se analizan las letras para identificar los palindromos,

Se analiza cada letra de la lista de letras que tiene el orden correcto, con la lista de letras con el orden invertido, si las letras son iguales se añade esa letra a una lista de “palindromos”, si no se agrega un espacio para separar los palindromos ya identificados y se continuan analizando las siguientes letras.

captura-de-pantalla-de-2016-10-27-00-49-02

En esta parte ya se tienen todos los palindromos identificados, pero sin espacios, por ejemplo se imprimiria “anitalavalatina”

por lo que se comparan las letras de la lista “palindromos” con la de la lista “letras_espacios”, si son iguales los elementos se añade a la lista”palindromo_final”, si no es igual y en las lista “letras_espacios” no corresponde a un espacio se le

Continue reading "Reto: Revisar Palindromos"

Reto: Palabras por tipo

--Originally published at Migue´s Blog

En este reto el usuario proporciona una frase, el programa cuenta cuantas veces se repite cada palabra en la frase, y después te pregunta si quieres que te muestre una palabra en especifico.

captura-de-pantalla-de-2016-10-27-00-22-55captura-de-pantalla-de-2016-10-27-00-26-04

captura-de-pantalla-de-2016-10-27-00-29-16

En esta sección se prepara la frase para que el programa no tenga problemas al analizarla, en la linea 4 se encuentra la lista con los elementos a eliminar,

en la linea 5 se encuentra la lista que va a contar cada tipo de palabra, en la 6 se introduce la frase, la 7 la muestra, la 8 cambia todas las letras de la frase a minusculas, la 9 realiza un ciclo que elimina cada elemento incluido en la lista de la linea 4 y en la 11 se separa cada palabra de la frase como un elemento independiente de los otros.

captura-de-pantalla-de-2016-10-27-00-29-36

Con el ciclo “for” de la linea 12 cada palabra que se separo en la linea 11 se agrega a la lista “contador”, para que de esta manera cada elemento pueda ser contado

Con el ciclo for de la linea 14 se cuenta cuantas veces se repite cada elemento en la lista “contador”

captura-de-pantalla-de-2016-10-27-00-29-51

En la linea 16 se no se repite el elemento se no hace nada, si se repite se imprime cuantas veces se repitio ese elemento,

En la linea 21 se pregunta si se quiere contar una palabra en especifico, y se vuelve a contrar la palabra solicitada para volverla a mostrar en pantalla.

 

 


Reto: Ordenar Numeros de forma aleatoria

--Originally published at Migue´s Blog

En este reto se tienen que ordenar una lista de números de una forma totalmente aleatoria, python ordena los numeros al azar, si estan en orden los imprime, si no los vuelve a reacomodar al azar, lo cual no es muy conveniente, debido a que puede tardar mucho, pueden darse muchas coombinaciones e incluso repetirse, asi como puede salir al primer intento puede que salga despues de millones de intentos.

captura-de-pantalla-de-2016-10-27-00-00-47

captura-de-pantalla-de-2016-10-27-00-04-39

captura-de-pantalla-de-2016-10-27-00-08-00Primero importamos random, el cual lo utilizaremos más adelante, es lo que utiliza python para ordenar los numeros de una manera aleatoria.

captura-de-pantalla-de-2016-10-27-00-08-15

Aquí se declaran las variables que utilizaremos, “a” se utiliza para salir del ciclo una vez que los numeros estan ordenados, “b” es la variable con la compararemos los numeros para verificar si estan ordenados, “c” es el contador del numero de intentos que le tomó a la computadora para poder ordenar los numeros, “d” también es utilizado para salir del ciclo final, “y” se utiliza como contador para introducir los numeros a la lista, “numeros” es la lista que el usuario introduce y “ordenados” es la lista de los números en orden que se mostrará

captura-de-pantalla-de-2016-10-27-00-08-56

Con este ciclo se introducen los numeros a la lista, su funcionamiento se explica en el post sobre como acomodar los números de una forma mas sencilla.

captura-de-pantalla-de-2016-10-27-00-09-18

Con este ciclo se comienzan a revolver los numeros hasta que quedan en orden,

Como “a” la declaramos con valor de “0” entrará al ciclo.

Cada vez que se entre el ciclo se le añadirá 1 al contador de intentos “c” se volverán a revolver los números y se verificará si están en orden, excepto la primera vez que se entra, no se revuelven, solamente se le suma 1 al contador y se verifican.

con el ciclo “for” de la linea 23 se verifica el

Continue reading "Reto: Ordenar Numeros de forma aleatoria"

Semana 10: Ordenar Numeros.

--Originally published at Migue´s Blog

Este es un código muy sencillo, que nos muestra como ordenar los numeros de una lista de una manera sencilla utilizando funciones que ya contiene python, este programa se encuentra relacionado con el reto de ordenar numeros de forma aleatoria y con el reto Bubble Sort

captura-de-pantalla-de-2016-10-26-23-48-56captura-de-pantalla-de-2016-10-26-23-48-38

captura-de-pantalla-de-2016-10-26-23-52-15En esta parte se declaran las varibles, la variable “y” será el contador que cierre el ciclo en el cual se introducen los números, y la variable “numeros” es la lista en la que se van a almacenar los números introducidos para posteriormente ser ordenados

captura-de-pantalla-de-2016-10-26-23-52-34

En este ciclo se introducen los numeros a la lista, se introduce un numero por repetición, y se repite hasta que el contador alcance a “x”, el cual es la cantidad de numeros que queremos introducir a la lista

captura-de-pantalla-de-2016-10-26-23-52-59

Con “numeros.sort()” python ordena los numeros de menor a mayor de forma automática, por los que ya unicamente nos falta mostrar la lista de los números en la pantalla


Reto: Cuenta Palabras

--Originally published at Migue´s Blog

Este reto es muy simple y sencillo, lo que hace es pedirle al usuario una frase, para que posteriormente el programa cuente cuantos carácteres tiene esta frase

captura-de-pantalla-de-2016-10-26-23-38-43

captura-de-pantalla-de-2016-10-26-23-38-19

captura-de-pantalla-de-2016-10-26-23-41-37

En la linea 3 se muestra en pantalla que es lo que hace este programa

Y en la linea 4 se le pide al usuario que ingrese la frase la cual se guardara en la variable “y” como una cadena

captura-de-pantalla-de-2016-10-26-23-41-53la variable “letras” es el contador, el cual va a almacenar el número de caracteres de la frase

captura-de-pantalla-de-2016-10-26-23-42-04

Este ciclo se repite 1 vez por cada caracter almaccenado en “y”, y en cada repetición se le suma 1 al contador.

Por el último se muestra en pantalla el contador

 


Reto: Contar letras

--Originally published at Migue´s Blog

Este reto consiste en contar cuantas veces se repite cada letra en una oración.

Mi código es el siguiente

captura-de-pantalla-de-2016-10-26-23-23-47captura-de-pantalla-de-2016-10-26-23-25-10

captura-de-pantalla-de-2016-10-26-23-28-47

En estas lineas primero se le pide al usuario que introduzca una oración para guardarlo como una string en la variable oracion, y después se cambian todas las letras de la oración a minusculas para que el programa no tenga conflictos al distinguir entre mayusculas y minusculas.

captura-de-pantalla-de-2016-10-26-23-29-05

Este ciclo for se repite por cada letra en la oración, y en cada repeticion añade esa letra a la lista “x1”, de esta forma todas las letras de la oración se tienen por separado en una oración para poder ser contadas

captura-de-pantalla-de-2016-10-26-23-29-31

Este ciclo se repite por cada letra del abecedario, cada vez que se repite cuenta cuantas veces se repite esa letra en la lista “x1”

captura-de-pantalla-de-2016-10-26-23-29-43

Y por último se muestran los resultados en pantalla, las dos lineas de print hacen lo mismo, solo que la primera se muestra cuando solo se repite 1 vez y la segunda cuando se repite más veces, para que quede congruente la palabra con el número:

1 vez

2 veces

 


RETO: Bubble sort

--Originally published at Migue´s Blog

El reto consiste en ordenar una seríe de números mediante la ordenación burbuja, la cual consiste en ir comparando cada elemento de una serie con el elemento siguiente, si estan en un lugar incorrecto, este proceso se repite varias veces hasta que el elemento mayor es desplazado al final y por consiguiente el elemento menor es desplazado al inicio.

Para cumplir con el reto realice el siguiente código

captura-de-pantalla-de-2016-10-26-23-05-02

captura-de-pantalla-de-2016-10-26-23-06-46captura-de-pantalla-de-2016-10-26-23-08-22En las lineas 3 y 4 se declaran las variables, para que luego no ocurran problemas debido a que se utilizan variables sin un valor asignado,

La variable “y”  corresponde al contador, al cual se le va a sumar 1 cada vez que se repita el ciclo, para que cuando “y” alcance a “x”, el cual es el numero de datos que queremos introducir ya no entre al ciclo.

Numeros es la lista en la que se van a almacenar los números para después compararlos entre ellos.

captura-de-pantalla-de-2016-10-26-23-09-01

Este es el ciclo en el cual se introducen los numeros, primero se pregunta cuantos numeros se quieren introducir, para que este sea el número de veces que se repite el ciclo, y por cada repetición el usuario introduce otro número.

captura-de-pantalla-de-2016-10-26-23-09-21

En esta última parte es en donde se comparan los elementos el número de vecs que sea necesario hasta que queden acomodados en orden.

Primero con el ciclo “for” hacemos que ese ciclo se repita dependiendo del número de elementos de la lista, así nos aseguramos que se repite suficientes veces para que cada número quede en su lugar.

“n” es el lugar que ocupa el elemento de la lista, se utiliza para poder comparar un elemento con el siguiente, n=elemento, n+1=elemento a comparar.

Con el condicional “if x>(n+1)” hacemos que solo entre al ciclo si todavía quedan elementos por comparar, porque de lo

Continue reading "RETO: Bubble sort"

Promedio: Funciones

--Originally published at Migue´s Blog

Ahora mediante este programa que cálcula el promedio de tus calificaciones explicare como se definen funciones para posteriormente ser llamadas.

Este programa tiene como propósito que tu al ingresar las siglas de tu carrera te devuelva tus materías, pero como solo conozco las materias de mi carrerra, ITE, únicamente lo hice con esas materias pero en un futuro se puede modificar.

captura-de-pantalla-de-2016-09-14-21-32-54

Las primeras lineas son comentarios, los cuales se escriben mediante el uso del simbolo #, los comentarios son lineas de texto que el programa no lee y sirven para ayudarnos a entender como funciona el programa, en mi caso para acordarme que significaba cada variable utilizada.

captura-de-pantalla-de-2016-09-15-00-45-12

Después se definen las funciones, se escribe def, seguido del nombre de la función y entre paréntesis las variables que la función utilizará, despues de esto se escribe el bloque de instrucciones que se realizarán cada que se llamará esa función.

En mi programa la primer función cálcula la equivalencia de la calificación de un parcial respecto al finar, la segunda cálcula el promedio del parcial.

Y la tercera cálcula el promedio total.

captura-de-pantalla-de-2016-09-15-00-48-26

Después al introducir tu carrera dependiendo del valor ascii, el cual lo explique en mi post sobre diccionario, las variables adquiriran un nombre, en este caso las materias dependiendo de la carrera.

captura-de-pantalla-de-2016-09-15-00-52-52

Despúes comienzan a cálcular los promedios, para esto se le pide al usuario que ingrese el porcentaje de cada parcial y su calificación obtenida, para después llamar a las funciones que realizarán las operaciones necesarias con esos datos proporcionados.

Las funciones utilizan dos variables, las cuales cambian de valor en cada materia y parcial cuando el usuario las introduce y de esta manera una sola función es capaz de funcionar para cálcular cualquier promedio de cualquier materia.

Este proceso se repite para cada materia.

captura-de-pantalla-de-2016-09-14-21-33-22 captura-de-pantalla-de-2016-09-14-21-33-50 captura-de-pantalla-de-2016-09-14-21-34-47

Al final después de

captura-de-pantalla-de-2016-09-14-21-32-05
captura-de-pantalla-de-2016-09-14-21-32-32
Continue reading "Promedio: Funciones"

Zen of phyton

--Originally published at Migue´s Blog

Esta es una pequeña entrada sobre un curioso “easter egg” en phyton.

Si en tu código de phyton escribes “import this”

captura-de-pantalla-de-2016-09-14-21-41-13

La pantalla te mostrará un pequeño poema en el que nos da unas recomendaciones sobre como programar mejor.

captura-de-pantalla-de-2016-09-14-21-42-13

Este poema básicamente te dice que mientras más compacto esté tu programa es mejor, porque así habrá menos posibilidad de error, y en caso de cometer una equivocación es más fácil identificarla.

Pero también nos dice que el código debe de ser entendible, por lo que debemos de utilizar las palabras suficientes para que no quede ambiguo.

Y especialmente que todos los errores sin importantes, debemos de corregirlos, aunque parezcan insignificantes, y parezca que no afectan en nada al programa si los dejamos así al final si terminarán afectando en algo y pueden alterar nuestro resultado final.

La parte que mas me gustó se encuentra en las últimas lineas, en las que dice que debemos de preferir lo sencillo a lo dificíl, dice que si es díficil de explicar es una mal idea, pero si es fácil de explicar podría ser una buena idea.