Comparison of lowest value in list

Asked

Viewed 62 times

0

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

When I compare my Values list to find the lowest value, it always returns 0, what happens sera? Follow Cód below.

Obs: disregard var tel_major 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)

2 answers

0

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

Edit

You can also pick up the biggest and smallest value simply by using

menor_valor = min(Valores)
maior_valor = max(Valores)

0

`Doctors = [0] * 20 Hiro = [0] * 10 Massao = [0] * 10 Telephones = [0] * 20 Times = [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))`

OK! You are right, always returns zero pq I declared my list Values = [0] * 20, so it will no longer return zero only if I fill the whole list, in tests only put 5 values at most. I need to use that form of comparison with if and Else because after solving this obstacle of return equal to 0, I need to inform the phone of the largest and smallest number (list values). Hence I have difficulty doing this using min and max. The entire code goes below.

Browser other questions tagged

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