jonhhy Posted July 25, 2022 at 02:34 PM Report Share #626559 Posted July 25, 2022 at 02:34 PM Boa tarde Comunidade P@P, já vos aconteceu este erro antes, como se resolve? AttributeError: 'dict' object has no attribute 'upper Desafio 056 Desenvolva um programa que leia o nome, idade e sexo de 4 pessoas. No final do programa, mostre: A média de idade do grupo. Qual é o nome do homem mais velho. names = {} ages = {} #sex = [] sex = {} maXman = sum = count = max = 0 maXmanI = -1 # saber o nome do homem mais velho..., implica saber o index do man S = 4 for c in range(0, S): names[c] = str(input(' Digit person name: ')) ages[c] = int(input('Digit person age: ')) sex[c] = str(input('Please, digit your sex: F or M?: ')) sum += ages[c] if sex.upper().strip() == 'F' and ages[c]<20: #if sex.strip() == 'F' and ages[c]<20: count += 1 if sex.upper() == 'M': if (max<ages[c]): max = ages[c] maXmanI = c mean = sum / S print('A média de idades é: {}, o homem mais velho é: {} e\n existem {} mulheres com menos de 20 anos!'.format(mean,names[maXmanI], count)) Quantas mulheres têm menos de 20 anos. Grato pela atenção, cumprimentos jonhhy Link to comment Share on other sites More sharing options...
jonhhy Posted July 26, 2022 at 10:39 AM Author Report Share #626570 Posted July 26, 2022 at 10:39 AM Bom dia a solução apresentada para este problema foi mais simples: # Answer by Gustavo Guanabara somaidade = 0 meidaidade = 0 maioridadehomem = totmulher20 = 0 nomevelho = '' for p in range(1, 5): print('------ {}ª PESSOA ------'.format(p)) nome = str(input('Nome: ')).strip() idade = int(input('Idade: ')) sexo = str(input('Sexo [M/F]: ')).strip() somaidade += idade if p == 1 and sexo in 'Mm': maioridadehomem = idade nomevelho = nome if sexo in 'Mm' and idade > maioridadehomem: maioridadehomem = idade nomevelho = nome if sexo in 'Ff' and idade < 20: #interessante, cadeia de string para definir.., evita a utilização de upper etc totmulher20 += 1 mediaidade = somaidade / 4 print('A média de idade do grupo é de {}.'.format(mediaidade)) print('O homem mais velho tem {} anos e se chama {}.'.format(maioridadehomem, nomevelho)) print('Ao todo são {} mulheres com menos de 20 anos'.format(totmulher20)) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now