1
resposta

Dicionário no phyton.

Boa tarde, estou me desafiando, estou fazendo um exercício por fora e estou com uma dificuldade sobre dicionário no phyton.

O exercício tem como objetivo acumular o nome dos alunos, suas respectivas notas e preciso saber se ele foi reprovado ou aprovado, porem, para isso preciso das notas separadas para fazer a media e retornar "aprovado ou reprovado". O exercício obriga a usar dicionário.

Não estou conseguindo acessar os itens especifico dentro de uma lista que está dentro de um dicionário. Como posso fazer essa manipulação?

#Dicionario:
dado = {"Nome: ": [], "Nota 1: ": [], "Nota 2: " : [], "Nota 3: ": [],"Nota 4: ": []}

#Laço principal:
while True:
    #Primeiro menu:
    opcao = input("Deseja cadastar? (S/N)")
    if opcao.upper() in "N":        #Finalizando o programa
        break

    else:
    #Segundo menu:
        nome = input("Qual o seu nome? ")
        print(" ")
        n1 = float(input("Qual a sua primeira nota? "))
        print(" ")
        n2 = float(input("Qual a sua segunda nota? "))
        print(" ")
        n3 = float(input("Qual a sua terceira nota? "))
        print(" ")
        n4 = float(input("Qual a sua quarta nota? "))
        print(" ")

    #Adicionando os dados no dicionario
        dado["Nome: "].append(nome)
        dado["Nota 1: "].append(n1)
        dado["Nota 2: "].append(n2)
        dado["Nota 3: "].append(n3)
        dado["Nota 4: "].append(n4)

#Calculo media:
calculo = (n1 + n2 + n3 + n4)/4

#Função para verificação se foi aprovado ou não:
def calculoResultado (calculo):
    if calculo >= 7:
        return "Aprovado"
    else:
        return  "Reprovado"

#Apresentação dos resultados:
print("Notas dos alunos")
print("-"*50)
print("Alunos: ", dado["Nome: "])
print("Notas 1:", dado["Nota 1: "])
print("Notas 2:", dado["Nota 2: "])
print("Notas 3:", dado["Nota 3: "])
print("Notas 4:", dado["Nota 4: "])
print(" "*8,calculoResultado(calculo))
print("-"*50)
1 resposta

Olá João se a "Nota 1" for apenas um valor com 10 por exemplo, não é necessário utilzar uma lista para armazena-la, o dicinario já com as notas ficaria assim:

dado = {"Nome: ": 10,  "Nota 1: ": 10, "Nota 2: " : 10, "Nota 3: ": 10, "Nota 4: ": 10}

para adicionar as notas ao dicionario seria assim:

dado = {}

dado["Nota 1"] = 10
dado["Nota 2"] = 10
dado["Nota 3"] = 10
dado["Nota 4"] = 10

e o print das notas assim:


print(dado["Nota 1"])
print(dado["Nota 2"])
print(dado["Nota 3"])
print(dado["Nota 4"])

Na maneira que você implementou utilizando lista o acesso é feito da seguinte maneira:

print(dado["Nota 1"][0])

O [0] indica que você quer acessar o valor na primeira posição da lista sem o [0], dado["Nota 1"] retorna a lista de notas.