Jump to content

Como criar um novo dicionário a cada nome informado pelo usuário?


Mateus Moura

Recommended Posts

Gostaria que o programa criasse um novo dicionário a cada nome informado e guardasse os dados até que o usuário informasse um nome vazio ("").

d = {}
d['nome'] = input("Nome: ")
d['A1'] = float(input("Informe A1: "))
d['A2'] = float(input("Informe A2: "))
d['B1'] = float(input("Informe B1: "))
d['B2'] = float(input("Informe B2: "))

Então o programa repete até que o usuário informe o nome vazio (""):

while d['nome'] != "":
  d['nome'] = input("Nome do aluno: ")
  d['A1'] = float(input("Informe A1: "))
  d['A2'] = float(input("Informe A2: "))
  d['B1'] = float(input("Informe B1: "))
  d['B2'] = float(input("Informe B2: "))

Porém, dessa forma os dados são substituídos. E IMPORTANTE gostaria que os dados fossem armazenados em um OUTRO dicionário.

Exemplo: d={João, 1, 2, 3, 4}            e={Maria, 3, 4, 5, 6}    .....

Link to comment
Share on other sites

Olá @Mateus Moura, há algumas formas diferentes de armazenares os dados para resolver o teu problema, e irá depender um pouco do que estás a tentar fazer, mas uma alternativa simples que podes usar é criar um dicionário de dicionários tipo isto:

{'João': {'A1': 1.0, 'A2': 3.0, 'B1': 2.0, 'B2': 4.0}, 'Maria': {'A1': 4.0, 'A2': 3.0, 'B1': 5.0, 'B2': 4.0}}

Refazeres o teu código de forma a conseguires o output acima já te deve ajudar um pouco, mas uma coisa que podes fazer também é separar a atribuição da variável nome da criação do teu dicionário e usares essa variável para controlar o teu ciclo:

nome = input("Nome do aluno: ")
while nome != "":
  d[nome] = {}
  # ...
  nome = input("Nome do aluno: ")

Vê lá se consegues agora e avisa se precisares de mais ajuda.

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.