Comparison of lowest value in list

1

My problem seems to be simple but it's bugging my head, lol, there it goes:

When I compare my Values list to find the smallest value, it always returns 0, what happens to it? Follow the code below.

obs: disregard var tel_maior and minor.

menor_valor = 0    
maior_valor = 0
tel_maior = 0    
tel_menor = 0
if opcao == 3:
  for i in range(20):
    if i == 0:
      maior_valor = menor_valor = Valores[i]
    else:
      if Valores[i] > maior_valor:
         maior_valor = Valores[i]
        #tel_maior = Telefones[i]          
      if Valores[i] < menor_valor:
         menor_valor = Valores[i]
        #tel_menor = Telefones[i]
  print('A consulta com menor custo foi',menor_valor, ' com o telefone ',tel_menor, )
  print('O telefone do paciente com maior valor',maior_valor," com o telefone ",tel_maior)
    
asked by anonymous 12.10.2018 / 04:46

2 answers

0

'Doctors = [0] * 20 Hiro = [0] * 10 Massao = [0] * 10 Phones = [0] * 20 Schedules = [0] * 20 Values = [0] * 20 proxlivre = 0 soma1 = 0 soma2 = 0 option = 0 while option = 5:     print ("Values", Values)

print('Menu')
print('Opção 1 - Agenda horario')
print('Opção 2 - Contagem de Atendimento')
print('Opção 3 - Atendimento mais caro e mais barato')
print('Opção 4 - Lista de agendamentos')
print('Opção 5 - Sair')
print('Digite opção desejada')
opcao = int(input())
if opcao == 5:
    exit()
elif opcao == 6 or opcao == 7 or opcao == 8 or opcao == 9:
    print('opção inválida')

if opcao == 1:

    repete = True
    while (repete):
        novo_tel = int(input("Digite telfone do paciente"))
        med = int(input("Digite 1 - Hiro ou 2 - Massao "))
        print("Digite horario do atendimento")
        nova_hora = int(input())
        achei = False
        for j in range(20):
            if nova_hora == Horarios[j] and med == Medicos[j]:
                print("horario duplicado")
                achei = True
                repete = True
                break
        if not achei:
            repete = False
    Horarios[proxlivre] = nova_hora
    Medicos[proxlivre] = med
    Telefones[proxlivre] = novo_tel
    if med == 1:
        Hiro[proxlivre] = nova_hora
    elif med == 2:
        Massao[proxlivre] = nova_hora
    print('informe o valor da consulta')
    if med == 1:
        preço1 = float(input())
        Valores[proxlivre] = preço1
        soma1 = soma1 + preço1
    if med == 2:
        preço2 = float(input())
        Valores[proxlivre] = preço2
        soma2 = soma2 + preço2
    proxlivre += 1
conta_Hiro = 0
conta_Massao = 0
if opcao == 2:
    for i in range(20):
        if Medicos[i] == 1:
            conta_Hiro += 1
        elif Medicos[i] == 2:
            conta_Massao += 1

    print('o numero de consultas para o médico Hiro é {}'.format(conta_Hiro))
    print('o numero de consultas para o médico Massao é {}'.format(conta_Massao))


menor_valor = 0
maior_valor = 0
tel_maior = 0
tel_menor = 0
if opcao == 3:
    for i in range(20):
        if Valores[i] > maior_valor:
            maior_valor = Valores[i]
            tel_maior = Telefones[i]

        if i == 0:
            menor_valor = Valores[i]
        else:
            if menor_valor > Valores[i]:
               menor_valor = Valores[i]
               tel_menor = Telefones[i]

    print('A consulta com menor custo foi', menor_valor, ' com o telefone ', tel_menor)
    print('O telefone do paciente com maior valor', maior_valor, " com o telefone ", tel_maior)

if opcao == 4:
    for i in range(20):
        if Medicos[i] == 1:
            soma_hiro = soma1
        elif Medicos[i] == 2:
            soma_massao = soma2
    print(
        'O valor das consultas do Médico Hiro é de R$ {} e do Médico Massao é R$ {}'.format(soma_hiro, soma_massao))'

Okay! You're right, it always returns zero because I declare my Values = [0] * 20 list, so it will stop returning zero only if I fill the whole list, in the tests I only put 5 values at most. I need to use that form of comparison with if and else because after resolving this barrier of return equal to 0, I need to inform the phone of the largest and smallest number (list values). Hence it is difficult to do this using min and max. The whole code goes below.

    
12.10.2018 / 18:54
0

There is nothing wrong with the code, maybe the error is on your list? See the code that is running with this gigantic link :

Edit

You can also grab the highest and lowest values simply by using

menor_valor = min(Valores)
maior_valor = max(Valores)
    
12.10.2018 / 05:20