carmi1909@ciencias.unam.mx
ejercicios_resueltos_5unknown
plain_text
3 years ago
6.2 kB
6
Indexable
#%% Ejercicio 121- Contar los elementos """ Descripción: La biblioteca estándar de python incluye un método llamado count que determina cuántas veces está en la lista un valor específico. En este ejercicio, vas a crear una función nueva llamada countRange que determine y regrese el el número de elementos dentro de una lista que sean mayor o igual que un valor mínimo o menor que algún valor máximo. Tu función debe tomar tres parámetros: la lista, el valor mínimo y el valor máximo. Debe regresar un resultado entero mayor o igual a 0. Agrega un programa principal 'main' que demuestre tu función utilizando diferentes listas y valores mínimos y máximos. Asegurate de que tu progrma funcione correctamente para listas de números enteros y flotantes Solución: Definir una función que cuente los elementos dentro del rango aceptable: Iniciar contador Por cada elemento de la lista: Si mínimo <= elemento < máximo añadir uno al contador regresar contador Definir una función principal (main) junto con una lista Probar el caso donde algunos elementos están en el rango Probar el caso donde todos los elementos están en el rango Probar el caso donde no hay elementos en el rango Probar el caso donde la lista está vacía Probar el caso con valores duplicados Llamar la función principal """ from fc.tpw.mer_5 import main_121 main_121() """ Al definir la función me percaté que en vez de escribir if minimo <= e and e < maximo, se puede escribir simplemente if minimo <= e < maximo ya significan lo mismo y no cambia el programa """ #%% Ejercicio 122: Tokenizar una cadena """ Descricpción: Tokenizar es el proceso de convertir una cadena a una lista de subcadenas, conocidas como tokens. En muchas circunstancias, es más facíl de trabajar con una lista de tokens que con la cadena original porque la cadena original puede tener un irregula espaciado. En algunos casos también se requiere un trabajo sustancial para determinar dónde termina un token y comienza el siguiente En una expresión matemáticam, los tokens son elementos como los operadores, números y paréntesis. Algunos tokens, como *, /, ^, ( y ) son fáciles de identificar porque el token es un sólo caracter, y el caracter nunca es parte de otro token. Los símbolos + y - son un poco más desafiantes para manejar porque pueden representar el operador de adición o substraccion, o pueden ser parte de un token numérico Escribe una función que tome una cadena que contenga una expresión matemática como su único parámetro y la rompa en una rista de tokens. Cada token debe ser un paréntresis, un operador. o un numero con un + o - opcional (para simplificar solo trabajaremos con números enteros en este problema). Regresa la lista de tokens como el resultado de la función. Debes asumir que la cadena pasada a tu función diempre contiene una expresión matemática válida formada por paréntesis, oparadore y enteros. Sin embargo, tu funciíon debe manejar cantidades variables de espacios en blanco entre estos elementos Agrega una función principal 'main' que demuestre tu función tekenizadora leyendo una expresión del usuario e imprimiendo la lista de tokens. Asegurate que el programa principal no corra cuando el archivo que contenga tu solución sea importado a otro programa Solución: Definir la funcion lista_token que tome como parámetro una cadena Remplazar espacios de la cadena por "" Definir la lista de TOKENS como una lista vacía Iniciar contador Mientras contador < tamaño de cadena: Si (elemento de la cadena correspondiente al indice del contador) es *, /, ^, ( o ): agregar a TOKENS el elemento agregar uno al contador Si el elemento es + o -: Si elemento > 0 y (0 <= el elemento anterior <= 9 o el elemento anterior es ")"): agregar a TOKENS el elemento En otro caso(cuando + o - es parte de un número): numero = elemento agregar uno al contador mientras contador(+1) < tamaño de cadena y 0 <= (elemento de la cadena correspondiente al indice del contador) <= 9: numero = numero + elemento agregar uno al contador agregar a TOKENS el número Si el elemento es un número: Si 0 <= (elemento de la cadena correspondiente al indice del contador) <= 9: numero = "" mientras contador < tamaño de la cadena y 0 <= (elemento de la cadena correspondiente al indice del contador) <= 9: numero = numero + elemento agregar uno al contador agregar a TOKENS el número En otro caso regresar una lista vacía Regresar la lista TOKENS Definir una función principal (main): Pedir al usuario una expresion matemática tokens = lista_token(expresión del usuario) imprimir("Los tokens son: " tokens) Correr la función main únicamente si el archivo no ha sido importado """ from fc.tpw.mer_5 import main_122 if __name__ == "__main__": main_122() """ La parte mnás complicada de este ejercicio fue entender el programa como tal, me costó entender lo que hacía para identificar cuando la expresión matemática contenía un número, para solucionarlo escribí mi interpretación de los codigos en el método de solución del problema (los comentarios multilinea de al principio), gracias a esto entendí que los ciclos dentro del ciclo eran para identificar cuántos dígitos contenía el número en la expresión y así hasta que ya no fueran números repetir el ciclo principal """
Editor is loading...