Jump to content

Declarar multi-string em python


jonhhy

Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.