Receive user data from

Asked

Viewed 62 times

1

I made an algorithm to perform statistical calculations, I would like to put two options to the user:

First, do the calculations with already sampled data within the algorithm

Second, have the user enter their own data to do the calculations,

The first option is working, now the second option not, could see where my error is.

import statistics

def inputsmenu():



    print("Digite 1 para Dados do Sistema, Digite 2 para Dados do Usuario: \n")



    DADOS_USUARIO = int(input("Digite os Dados:\n"))
    menu(DADOS_USUARIO)



def menu(x):
    if (x == 1):
        DADOS_SISTEMAS = [10,20,30,40,50,60,5,87,100,65,84,24,44,5,0,68]
    else:
        DADOS_USUARIO=[]
    print("Qual calculo estatistico você deseja fazer? \n")
    print ("1 - Mediana")
    print ("2 - Moda")
    print ("3 - Min")
    print ("4 - Max")
    print ("5 - Media")
    print ("6 - Desvio padrão")
    print ("7 - Variancia")

    escolha = int(input())

    if escolha == 1:
        print("\nA mediana dos Dados foi: ", statistics.median(DADOS_SISTEMA))
        pass
    elif escolha == 2:
        print("A moda dos Dados foi: ", statistics.mode(DADOS_SISTEMAS))
        pass
    elif escolha == 3:
        print("O numero minimo dos Dados foi: ", min(DADOS_SISTEMAS))
        pass
    elif escolha == 4:
        print("O numero maximo dos Dados foi: ", max(DADOS_SISTEMAS))
        pass
    elif escolha == 5:
        print("A media dos Dados foi: ", statistics.mean(DADOS_SISTEMAS))
        pass
    elif escolha == 6:
        print("O Desvio padrao foi: ", statistics.stdev(DADOS_SISTEMAS))
        pass
    elif escolha == 7:
        print("A variancia foi: ", statistics.variance(DADOS_SISTEMAS))
        pass



if __name__ == '__main__':
    inputsmenu()

1 answer

1

TL;DR

Your mistake is that you didn’t implement the second option, I’ll leave an example below, a little different from yours, but it’s just you adapt. To be simpler I’m not making consistences of type see if the user typed as it should type, etc.

import statistics
tipo = input('Escolha (1) para sistema ou (2) para seus dados (usuário)')

if tipo=='2':
    dados = input('entre com os dados separados por virgulas: ').split(',')
else:
    dados = [10,20,30,40,50,60,5,87,100,65,84,24,44,5,0,68]

# Convertendo para inteiros    
idados = [int(d) for d in dados]    

# Funcoes estatísticas
functions = {'1': statistics.median, '2': statistics.mode, '3': min,  '4': max, '5': statistics.mean, 
             '6': statistics.stdev, '7': statistics.variance }

# A função que o usuário deverá escolher
calculo = input('1 - Mediana, 2 - Moda, 3 - Min, 4 - Max, 5 - Media, 6 - Desvio padrão, 7 - Variancia' )

print('Resultado: ', functions[calculo](idados))

See working on repl.it

Browser other questions tagged

You are not signed in. Login or sign up in order to post.