mercredi 24 février 2021

Hacer que un menú funcione en python

tengo este programa que da al usuario el calculo de complejidad algoritmica de tres opciones dadas en el menú, 10, 100 y 1000. Tengo el problema que cuando voy a dar el print no se como llamar la opcion del usuario y calcularlo. Hice el programa de otra forma dando un ciclo if a cada opción del menú pero me pareció muy largo y repetitivo. Entonces decidí por hacerlo con un class y varias funciones, y es ahí donde quede quieto sin saber que hacer Aprecio la ayuda en este pequeño proyecto. Gracias

import math

class complejidad_algoritmica(): def init(self, n): self.n = n

def constante(self):
    return 1

def lineal(self):
    return self.n

def logaritmica(self):
    return math.log10(self.n)

def log_lineal(self):   
    return self.n * math.log10(self.n)

def polinomial(self):
    return self.n ** 2

def exponencial(self):
    return 2 ** self.n

def run(): menu = """ para entender mejor el BIG O NOTATION

a. 10
b. 100
c. 1000

Elije una opción de esta lista: """

opcion = input(menu)

#n = [10, 100, 1000]
for i in opcion:
    complejidad = complejidad_algoritmica(opcion)

    if opcion == 'a' or opcion == 'b' or opcion == 'c':

        print(f'O(1) es {complejidad.constante()}')
        print(f'O(n) es igual {complejidad.lineal()}')
        
        print(f'O(log n) es {complejidad.logaritmica()}')
        print(f'O(n log n) es {complejidad.log_lineal()}')

        print(f'O(n**2) es igual a {complejidad.polinomial()}')
        print(f'O(2**n) es igual a {complejidad.exponencial()}')

    else:
        print('Elige una opción válida: a, b, c')

if name == 'main': run()

Aucun commentaire:

Enregistrer un commentaire