carmi1909@ciencias.unam.mx

mer_5
 avatar
unknown
plain_text
4 years ago
3.3 kB
6
Indexable
"""
Created on Thu Nov 18 11:13:31 2021

@author: carmi
"""
def countRange(datos:list, minimo, maximo):
    """
    Contar el número de datos en una lista que se encuentran dentro de un determinado
    rango

    Parameters
    ----------
    datos : list
        Lista de datos.
    minimo : TYPE
        El valor mínimo del rango.
    maximo : TYPE
        El valor máximo del rango.

    Returns
    -------
    cuenta : Número de veces que aparece el elemto en la lista
        DESCRIPTION.

    """
    cuenta = 0
    for e in datos:
        if minimo <= e < maximo:
            cuenta = cuenta + 1
    
    return cuenta

def main_121():
    """
    Función principal que manda a llamar countRange

    Returns
    -------
    None.

    """
    lista = [1,2,3,4,5,6,7,8,9,10]
    
    print("Contando los elementos en [1...10] que están entre 5 y 7...")
    print("Resultado: %d Esperado: 2" % countRange(lista, 5, 7))

    print("Contando los elementos en [1...10] que están entre -5 y 77...")
    print("Resultado: %d Esperado: 10" % countRange(lista, -5, 77))
    
    print("Contando los elementos en [1...10] que están entre 12 y 17...")
    print("Resultado: %d Esperado: 0" % countRange(lista, 12, 17))
    
    print("Contando los elementos en [] que están entre 0 y 100...")
    print("Resultado: %d Esperado: 0" % countRange([], 0, 100))

    datos = [1,2,3,4,1,2,3,4]
    print("Contando los elementos en [1,2,3,4,1,2,3,4] que están entre 2 y 4...")
    print("Resultado: %d Esperado: 4" % countRange(datos, 2, 4))

def lista_token(cadena):
    """
    Separa una expresión matemática en una lista de tokens

    Parameters
    ----------
    cadena : str
        Expresión matemática.

    Returns
    -------
    Tokens: Expresión matemática separada en una lista de tokens

    """
    cadena = cadena.replace(" ","")
    tokens = []
    i = 0
    while i < len(cadena):
        if cadena[i] == "*" or cadena[i] == "/" or cadena[i] == "^" or \
            cadena[i] == "(" or cadena[i] == ")":
            tokens.append(cadena[i])
            i = i + 1
        elif cadena[i] == "+" or cadena[i] == "-":
            if i > 0 and ((cadena[i-1] >= "0" and cadena[i-1] <= "9") or cadena[i-1] == ")"):
                tokens.append(cadena[i])
                i = i + 1
            else:
                numero = cadena[i]
                i = i + 1
                
                while i < len(cadena) and cadena[i] >= "0" and cadena[i] <= "9":
                    numero = numero + cadena[i]
                    i = i + 1
                tokens.append(numero)
        elif cadena[i] >= "0" and cadena[i] <= "9":
            numero = ""
            while i < len(cadena) and cadena[i] >= "0" and cadena[i] <= "9":
                numero = numero + cadena[i]
                i = i + 1
            tokens.append(numero)
            
        else:
            return []
    return tokens

def main_122():
    """
    Función principal que manda a llamar lista_token

    Returns
    -------
    None.

    """
    exp = input("Ingrese una expresión matemática: ")
    tokens = lista_token(exp)
    print("Los tokens son:", tokens)
Editor is loading...