Marcado: mundo 3
- Este tópico contém 8 respostas, 5 vozes e foi atualizado pela última vez 7 meses atrás por Tutora Jessica.
-
AutorPosts
-
-
13 de abril de 2021 às 14:37 #65117Jonathas Oliveira ConceiçãoParticipante
Olá boa tarde! Analisando a resolução do professor, percebi que a mesma é mais elegante, porém num contexto de ser resolver o exercício de forma isolada. Por favor, me corrijam se eu estiver errado…
Pensando no programa mais pra frente, numa aplicação profissional, o cadastro será sim, feito, uma primeira vez… porém na prática as estatísticas e outras análises serão realizadas sobre uma lista composta JÁ PRONTA. Assim sendo, eu resolvi criar uma extrutura que monta a lista… e fora dessa estrutura, criei outras linhas de código para avaliar maior e menor peso. O Código ficou maior, mas consgue ser utilizado dentro de uma aplicação onde o objetivo é manipular listas já prontas e em utilização. Estou certo? Segue meu código abaixo:grupo = list()
pessoa = list()
while True:
pessoa.append(str(input(‘Nome: ‘)))
pessoa.append(float(input(‘Peso: ‘)))
grupo.append(pessoa[:])
pessoa.clear()
while True:
continua = str(input(‘Quer continuar? [S/N]’)).strip().upper()[0]
if continua in ‘SN’:
break
if continua in ‘N’:
break
print(30*’-=’)
print(f’Foram cadastradas {len(grupo)} pessoas’)maior_peso = menor_peso = 0
mais_pesada = list()
mais_leve = list()# Verificando qual foi o MAIOR e o MENOR pesos cadastrados
for i, p in enumerate(grupo):
if i == 0:
maior_peso = menor_peso = p[1]
else:
if p[1] > maior_peso:
maior_peso = p[1]
elif p[1] < menor_peso:
menor_peso = p[1]# Identificando as pessoas MAIS e MENOS pesadas
for i, p in enumerate(grupo):
if p[1] == maior_peso:
mais_pesada.append(p[0])
elif p[1] == menor_peso:
mais_leve.append(p[0])print(f’As pessoas mais pesadas, com {maior_peso}Kg, foram {mais_pesada}’)
print(f’As pessoas mais leves, com {menor_peso}Kg, foram {mais_leve}’) -
13 de abril de 2021 às 21:59 #65140IcaroFilhoModerador
fala irmão. Ótima pratica essa que esta fazendo de pegar os exercícios propostos e “por mais carga de dificuldades nele”
Continue com isso e verá que escreverá com mais fluidez…Vamos as consideração e me desculpe qualquer erro… ( a tutora vai me corrigir e ponderar caso tenha algum/muitos erros da minha parte =) )
Antes de tudo utilize a formatação
CODE
para postar seus códigos aqui no fórum. isto permite que a formatação venha sem alterações, ficando muito mais legível. E caso seja a ponto de procurar uma falha, fica melhor para te dar um feedback.
Outra coisa é que não há muito o que questionar, pois o principal de uma aplicação é atender aos requisitos.Eu estava escrevendo um monte de coisa, mas não iria adiantar muito pois você esta limitado pela nível matéria ainda. (dicionários, módulos, etc…)
Já que disse se tratar de um nível mais profissional, tente pegar o programa e aumentar o nível de validações para diminuir o erro no programa.
Ex. nome aceitar apenas letras (atualmente, se vc disser que o nome é 22 ele vai aceitar).
permita que o usuário digite ‘,’ (virgula) no peso ( a maioria das pessoas normalmente digita virgula ao invés do ponto)-
13 de abril de 2021 às 22:46 #65141Jonathas Oliveira ConceiçãoParticipante
Opa! Muito obrigado Ícaro!
Você sabe como validar uma entrada NULL com python? Pq se o usuário digitar enter sem ter escrito valor dá erro no programa, e eu queria impedir que isso ocorresse, exibindo uma mensagem que permitisse ao usuário tentar uma entrada válida, em vez de dar erro no programa. -
14 de abril de 2021 às 08:48 #65155IcaroFilhoModerador
Bom dia.
1- A formatação os princípios da programação. se abre uma chave necessita fechar.
quando postou seu código apenas abriu a chave da formatação'
, então ele não sabe onde termina e não formata.
eu faço de uma maneira mais pratica.
1- Eu copio o código, colo aqui.
2- Seleciono todo o código.
3- Com ele selecionado, aperto apenas um vez no CODE que ele já abre e fecha nas extremidades.
2- Quanto a sua duvida, tem algumas maneiras.
1- Tem por meio de validação que se aprende aqui. (mesmo método que se permite o uso de virgula para o seu peso sem ‘crashar’)
2 – Pode se tratar os erros pelas exceções (try…except)para te ajudar na tentativa, pense o seguinte.
Vc fez o programa, o usuário ira utilizar. A partir dai sua linha de pensamento será: ‘Se o usuário fizer isso acontecerá isso’, ‘E se ele fizer isso acontecerá isto’ ,… -
15 de abril de 2021 às 22:45 #65336Tutora MaylaMestre
Jonathas, seu código está bom. Como dito pelo aluno Icaro esta foi uma ótima iniciativa de tentar fazer algo além do exercício proposto.
Quanto à sua pergunta, o que acontece neste caso não é um valor nulo. Quando o usuário pressionar ENTER sem digitar um valor, a funçãoinput()
irá retornar uma string vazia, o que faz com que a conversão para float não funcione.
Tente seguir a sugestão dada pelo Icaro e pensar em como tratar estes casos e, se for necessário, revise o Exercício Python #057 – Validação de Dados onde foi feita validação de dados pela primeira vez.Espero ter ajudado, quaisquer outras dúvidas basta entrar em contato.
-
-
13 de abril de 2021 às 22:49 #65143Jonathas Oliveira ConceiçãoParticipante
SEGUE O ARQUIVO NA FORMATAÇÃO CODE. DEPOIS FAREI AS VALIDAÇÕES QUE ME SUGERIU. OBRIGADO!
grupo = list() pessoa = list() while True: pessoa.append(str(input('Nome: '))) pessoa.append(float(input('Peso: '))) grupo.append(pessoa[:]) pessoa.clear() while True: continua = str(input('Quer continuar? [S/N]')).strip().upper()[0] if continua in 'SN': break if continua in 'N': break print(30*'-=') print(f'Foram cadastradas {len(grupo)} pessoas') maior_peso = menor_peso = 0 mais_pesada = list() mais_leve = list() # Verificando qual foi o MAIOR e o MENOR pesos cadastrados for i, p in enumerate(grupo): if i == 0: maior_peso = menor_peso = p[1] else: if p[1] > maior_peso: maior_peso = p[1] elif p[1] < menor_peso: menor_peso = p[1] # Identificando as pessoas MAIS e MENOS pesadas for i, p in enumerate(grupo): if p[1] == maior_peso: mais_pesada.append(p[0]) elif p[1] == menor_peso: mais_leve.append(p[0]) print(f'As pessoas mais pesadas, com {maior_peso}Kg, foram {mais_pesada}') print(f'As pessoas mais leves, com {menor_peso}Kg, foram {mais_leve}')
-
13 de abril de 2021 às 22:50 #65144Jonathas Oliveira ConceiçãoParticipante
grupo = list() pessoa = list() while True: pessoa.append(str(input('Nome: '))) pessoa.append(float(input('Peso: '))) grupo.append(pessoa[:]) pessoa.clear() while True: continua = str(input('Quer continuar? [S/N]')).strip().upper()[0] if continua in 'SN': break if continua in 'N': break print(30*'-=') print(f'Foram cadastradas {len(grupo)} pessoas') maior_peso = menor_peso = 0 mais_pesada = list() mais_leve = list() # Verificando qual foi o MAIOR e o MENOR pesos cadastrados for i, p in enumerate(grupo): if i == 0: maior_peso = menor_peso = p[1] else: if p[1] > maior_peso: maior_peso = p[1] elif p[1] < menor_peso: menor_peso = p[1] # Identificando as pessoas MAIS e MENOS pesadas for i, p in enumerate(grupo): if p[1] == maior_peso: mais_pesada.append(p[0]) elif p[1] == menor_peso: mais_leve.append(p[0]) print(f'As pessoas mais pesadas, com {maior_peso}Kg, foram {mais_pesada}') print(f'As pessoas mais leves, com {menor_peso}Kg, foram {mais_leve}')
-
25 de abril de 2024 às 12:35 #135795Lucas TavaresParticipante
l1=list()
l2=list()
cont=0
maior=0
menor=0
while True:
nome=str(input(‘qual o seu nome?’)).strip()
l1.append(nome)
peso=int(input(‘qual o seu peso?’))
l1.append(peso)
per=str(input(‘quer continuar? [s or n]’)).strip().upper()[0]
l2.clear()
l2.append(l1[:])
cont+=1
if cont==1:
maior=peso
menor=peso
else:
if peso>maior:
maior=peso
if menor>peso:
menor=peso
l1.clear()
if per in ‘N’:
break
print(f’foram cadastradas {len(l2)}’)
print(f’o maior peso foi {maior} e o nome é ‘,end=”)
for c in l2:
if c[1] == maior:
print(f'[{c[0]}]’,end=’ ‘)
print()
print(f’o menor peso é {menor} e o nome é ‘,end=”)
for i in l2:
if i[1]==menor:
print(f'[{i[0]}]’, end=’ ‘)
print() -
25 de abril de 2024 às 14:58 #135804Tutora JessicaModerador
Ola Lucas, trouxe sua duvida para uma ja existente no forum, peço para que analise as explicações acima para tentar resolver o problema do seu código, caso não consiga, só retornar ao forum que vamos tentar lhe ajudar.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.