Ajuda em um exercicio

101 views
Skip to first unread message

Rafael Yasuda

unread,
Aug 29, 2022, 7:17:36 PM8/29/22
to python...@googlegroups.com
Olá amigos, tenho esse exercicio:
  1. Escreva um algoritmo que leia o nome, o sexo e a idade de N pessoas. No final apresente o total de homens e mulheres, a idade do mais velho e do mais novo.

Já fiz as entradas e saídas gostaria de fazer as condições pedidas, alguem poderia me ajudar, sou inciante?

homens_tot=0

mulheres_tot=0


While True:

       nome=str(input(‘nome:  ‘))

       idade= int(input(‘Idade:  ’))

                   While sexo not in ‘MF’:

              sexo= str(input(‘Sexo: [M/F]’  )). strip().upper() [0]

// homem_tot?

//mulher_tot?

//mais velho?

//mais novo?

    

       resp = ‘   ‘

       while resp not in ‘SN’:

             resp = str (input( ‘Quer continuar?  [S/N]   ‘)).strip().upper()[0]

       if resp == ‘N’:

          break

print( ‘acabou’)


Professor Paiva

unread,
Aug 29, 2022, 7:54:42 PM8/29/22
to python...@googlegroups.com
Amigo,

Acho que este código resolve o seu problema:

homens_tot=0
mulheres_tot=0
novo = 99
nome_novo = ""
velho = -99
nome_velho = ""

While True:
       nome=str(input(‘nome:  ‘))
       idade= int(input(‘Idade:  ’))
       While sexo not in ‘MF’:
           sexo= str(input(‘Sexo: [M/F]’  )). strip().upper() [0]
       if sexo = "M":
          homens_tot = homens_tot + 1
       else:
          mulheres_tot = mulheres_tot + 1
       if idade > velho:
          velho = idade
          nome_velho = nome
       if idade < novo:
          novo = idade
          nome_novo = nome

       resp = ‘   ‘
       while resp not in ‘SN’:
             resp = str (input( ‘Quer continuar?  [S/N]   ‘)).strip().upper()[0]
       if resp == ‘N’:
          break

// Resultados
print ("Total de pessoas é: ", homens_tot + mulheres_tot)
print ("Total de Homens: ", homens_tot)
print ("Total de Mulheres: ", mulheres_tot)
print ("O mais velho é ",nome_velho, " com ",velho, " anos")
print ("O mais novo é ",nome_novo, " com ",novo, " anos")

print( ‘Acabou’)

Se puder, inscreva-se no nosso canal do Youtube: https://www.youtube.com/c/ProfessorPaiva

Paiva

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CAPEw1RAUZ49zyhQEmRZ8sJF4EGJ_O4WxwKHmCrZReNnho6pX-A%40mail.gmail.com.

Eric Lopes

unread,
Aug 29, 2022, 11:56:06 PM8/29/22
to python...@googlegroups.com
Você precisa armazenar as entradas em algum lugar, Python tem essa estrutura de dados chamada lista, voce pode armazenar dados nela

por exemplo, digamos que vc tenha uma tupla contendo idade, nome e sexo
t = (21, 'Maria', 'F')

e uma lista:
lista = []

você pode adicionar ela na lista com
lista.append(t)

Depois disso, você vai ter uma lista com tuplas para todas as entradas, só falta ordenar, achar o total, etc. Pra isso, da uma olhada na funcao sorted:

você consegue continuar daqui?

Fernando Mendes

unread,
Aug 30, 2022, 6:18:28 AM8/30/22
to python...@googlegroups.com
Para os contadores basta
If sexo == M:
   Homemtot += 1

If sexo == F:
   Mulhertot += 1

Para o max e min da idade, da pra fazer de muuuuitas maneiras, vou colocar o que me veio na cabeça primeiro:

Fora do laço crie mais duas variáveis de maior e menor idade, crie uma condição para a primeira vez que o laço é executado e atribua a primeira entrada para as duas variáveis max e min, após isso basta comparar se as idades são maiores ou menores e no fim do laço a magia acontece, qualquer dúvida é so falar 

Fernando Mendes

unread,
Aug 30, 2022, 6:28:05 AM8/30/22
to python...@googlegroups.com
Para os contadores serve também:
If sexo == M:
    Homemtot += 1
Else:
   Mulhertot += 1

Cauã Alexander

unread,
Aug 30, 2022, 6:28:31 AM8/30/22
to python...@googlegroups.com
Fala Rafael, preciso saber de uma coisa! 
O seu professor pediu ou já ensino listas, tuplas ou dicionários? 

Em seg, 29 de ago de 2022 20:17, Rafael Yasuda <rafaelya...@gmail.com> escreveu:

Eric Lopes

unread,
Aug 30, 2022, 10:48:10 AM8/30/22
to python...@googlegroups.com
Bem observado Cauã, pelo enunciado parece que não, realmente deixei passar essa quando escrevi a resposta.

Rafael um forma mais simples que vc praticamente escreveu em outras linhas no seu código é usando variáveis, vc vai precisar de 4 no total:

homens_tot=0

mulheres_tot=0

mais_velho=0

mais_novo=0

Dentro do seu while, só tem que utilizar mais um 'if' para cada uma das alternativas, vou dar o exemplo para calcular o mais novo:

# verifica se a variável mais_novo não foi inicializada ainda ou se a idade atual é menor. Se sim, atualiza a variável com a idade atual
if mais_novo == 0 or idade < mais_novo:
    mais_novo = idade

Agora só precisa substituir

//mais novo?

Pelo trecho de código.

E fazer algo semelhante com

// homem_tot? (se o sexo atual for igual 'M' soma 1 em homem_tot)

//mulher_tot? (se o sexo atual for igual 'F' soma 1 em mulher_tot)

//mais velho? (se idade atual for maior que mais_velho atualiza mais_velho com a idade atual)


Você consegue completar daqui? Se tiver algum problema, mande o seu novo código e dúvidas.


Reply all
Reply to author
Forward
0 new messages