Enviar um café pro programador

Mostrando postagens com marcador Dicionários. Mostrar todas as postagens
Mostrando postagens com marcador Dicionários. Mostrar todas as postagens

Exercícios de Sequências - Listas, Tuplas e Dicionários

Chegado o fim da nossa seção de Sequências em Python, vamos propor alguns exercícios.

Leia também:
Obter certificado do curso (para trabalhar como programador Python)
Obter apostila Python Progressivo (download do PDF)


Lista de Exercícios de Python


  1. Faça um Programa que leia um vetor de 5 números inteiros e mostre-os.
  2. Faça um Programa que leia um vetor de 10 números reais e mostre-os na ordem inversa.
  3. Faça um Programa que leia 4 notas, mostre as notas e a média na tela.
  4. Faça um Programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes.
  5. Faça um Programa que leia 20 números inteiros e armazene-os num vetor. Armazene os números pares no vetor PAR e os números IMPARES no vetor impar. Imprima os três vetores.
  6. Faça um Programa que peça as quatro notas de 10 alunos, calcule e armazene num vetor a média de cada aluno, imprima o número de alunos com média maior ou igual a 7.0.
  7. Faça um Programa que leia um vetor de 5 números inteiros, mostre a soma, a multiplicação e os números.
  8. Faça um Programa que peça a idade e a altura de 5 pessoas, armazene cada informação no seu respectivo vetor. Imprima a idade e a altura na ordem inversa a ordem lida.
  9. Faça um Programa que leia um vetor A com 10 números inteiros, calcule e mostre a soma dos quadrados dos elementos do vetor.
  10. Faça um Programa que leia dois vetores com 10 elementos cada. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.

  11. Altere o programa anterior, intercalando 3 vetores de 10 elementos cada.
  12. Foram anotadas as idades e alturas de 30 alunos. Faça um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior à média de altura desses alunos.
  13. Faça um programa que receba a temperatura média de cada mês do ano e armazene-as em uma lista. Após isto, calcule a média anual das temperaturas e mostre todas as temperaturas acima da média anual, e em que mês elas ocorreram (mostrar o mês por extenso: 1 – Janeiro, 2 – Fevereiro, . . . ).
  14. Utilizando listas faça um programa que faça 5 perguntas para uma pessoa sobre um crime. As perguntas são:
    "Telefonou para a vítima?"
    "Esteve no local do crime?"
    "Mora perto da vítima?"
    "Devia para a vítima?"
    "Já trabalhou com a vítima?"
    O programa deve no final emitir uma classificação sobre a participação da pessoa no crime. Se a pessoa responder positivamente a 2 questões ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cúmplice" e 5 como "Assassino". Caso contrário, ele será classificado como "Inocente".
  15. Faça um programa que leia um número indeterminado de valores, correspondentes a notas, encerrando a entrada de dados quando for informado um valor igual a -1 (que não deve ser armazenado). Após esta entrada de dados, faça:
    Mostre a quantidade de valores que foram lidos;
    Exiba todos os valores na ordem em que foram informados, um ao lado do outro;
    Exiba todos os valores na ordem inversa à que foram informados, um abaixo do outro;
    Calcule e mostre a soma dos valores;
    Calcule e mostre a média dos valores;
    Calcule e mostre a quantidade de valores acima da média calculada;
    Calcule e mostre a quantidade de valores abaixo de sete;
    Encerre o programa com uma mensagem;

  16. Utilize uma lista para resolver o problema a seguir. Uma empresa paga seus vendedores com base em comissões. O vendedor recebe $200 por semana mais 9 por cento de suas vendas brutas daquela semana. Por exemplo, um vendedor que teve vendas brutas de $3000 em uma semana recebe $200 mais 9 por cento de $3000, ou seja, um total de $470. Escreva um programa (usando um array de contadores) que determine quantos vendedores receberam salários nos seguintes intervalos de valores:
    $200 - $299
    $300 - $399
    $400 - $499
    $500 - $599
    $600 - $699
    $700 - $799
    $800 - $899
    $900 - $999
    $1000 em diante
    Desafio: Crie ma fórmula para chegar na posição da lista a partir do salário, sem fazer vários ifs aninhados.
  17. Em uma competição de salto em distância cada atleta tem direito a cinco saltos. O resultado do atleta será determinado pela média dos cinco valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe o nome, os saltos e a média dos saltos. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:
    Atleta: Rodrigo Curvêllo
    Primeiro Salto: 6.5 m
    Segundo Salto: 6.1 m
    Terceiro Salto: 6.2 m
    Quarto Salto: 5.4 m
    Quinto Salto: 5.3 m

    Resultado final:
    Atleta: Rodrigo Curvêllo
    Saltos: 6.5 - 6.1 - 6.2 - 5.4 - 5.3
    Média dos saltos: 5.9 m
  18. Uma grande emissora de televisão quer fazer uma enquete entre os seus telespectadores para saber qual o melhor jogador após cada jogo. Para isto, faz-se necessário o desenvolvimento de um programa, que será utilizado pelas telefonistas, para a computação dos votos. Sua equipe foi contratada para desenvolver este programa, utilizando a linguagem de programação C++. Para computar cada voto, a telefonista digitará um número, entre 1 e 23, correspondente ao número da camisa do jogador. Um número de jogador igual zero, indica que a votação foi encerrada. Se um número inválido for digitado, o programa deve ignorá-lo, mostrando uma breve mensagem de aviso, e voltando a pedir outro número. Após o final da votação, o programa deverá exibir:
    O total de votos computados;
    Os númeos e respectivos votos de todos os jogadores que receberam votos;
    O percentual de votos de cada um destes jogadores;
    O número do jogador escolhido como o melhor jogador da partida, juntamente com o número de votos e o percentual de votos dados a ele.
    Observe que os votos inválidos e o zero final não devem ser computados como votos. O resultado aparece ordenado pelo número do jogador. O programa deve fazer uso de arrays. O programa deverá executar o cálculo do percentual de cada jogador através de uma função. Esta função receberá dois parâmetros: o número de votos de um jogador e o total de votos. A função calculará o percentual e retornará o valor calculado. Abaixo segue uma tela de exemplo. O disposição das informações deve ser o mais próxima possível ao exemplo. Os dados são fictícios e podem mudar a cada execução do programa. Ao final, o programa deve ainda gravar os dados referentes ao resultado da votação em um arquivo texto no disco, obedecendo a mesma disposição apresentada na tela.
    Enquete: Quem foi o melhor jogador?

    Número do jogador (0=fim): 9
    Número do jogador (0=fim): 10
    Número do jogador (0=fim): 9
    Número do jogador (0=fim): 10
    Número do jogador (0=fim): 11
    Número do jogador (0=fim): 10
    Número do jogador (0=fim): 50
    Informe um valor entre 1 e 23 ou 0 para sair!
    Número do jogador (0=fim): 9
    Número do jogador (0=fim): 9
    Número do jogador (0=fim): 0

    Resultado da votação:
    Foram computados 8 votos.
    Jogador Votos           %
    9               4               50,0%
    10              3               37,5%
    11              1               12,5%
    O melhor jogador foi o número 9, com 4 votos, correspondendo a 50% do total de votos.
  19. Uma empresa de pesquisas precisa tabular os resultados da seguinte enquete feita a um grande quantidade de organizações:
    "Qual o melhor Sistema Operacional para uso em servidores?"

    As possíveis respostas são:
    1- Windows Server
    2- Unix
    3- Linux
    4- Netware
    5- Mac OS
    6- Outro
    Você foi contratado para desenvolver um programa que leia o resultado da enquete e informe ao final o resultado da mesma. O programa deverá ler os valores até ser informado o valor 0, que encerra a entrada dos dados. Não deverão ser aceitos valores além dos válidos para o programa (0 a 6). Os valores referentes a cada uma das opções devem ser armazenados num vetor. Após os dados terem sido completamente informados, o programa deverá calcular a percentual de cada um dos concorrentes e informar o vencedor da enquete. O formato da saída foi dado pela empresa, e é o seguinte:

    Sistema Operacional     Votos   %
    -------------------     -----   ---
    Windows Server           1500   17%
    Unix                     3500   40%
    Linux                    3000   34%
    Netware                   500    5%
    Mac OS                    150    2%
    Outro                     150    2%
    -------------------     -----
    Total                    8800

    O Sistema Operacional mais votado foi o Unix, com 3500 votos, correspondendo a 40% dos votos.
  20. As Organizações Tabajara resolveram dar um abono aos seus colaboradores em reconhecimento ao bom resultado alcançado durante o ano que passou. Para isto contratou você para desenvolver a aplicação que servirá como uma projeção de quanto será gasto com o pagamento deste abono.
    Após reuniões envolvendo a diretoria executiva, a diretoria financeira e os representantes do sindicato laboral, chegou-se a seguinte forma de cálculo:
    a.Cada funcionário receberá o equivalente a 20% do seu salário bruto de dezembro; a.O piso do abono será de 100 reais, isto é, aqueles funcionários cujo salário for muito baixo, recebem este valor mínimo; Neste momento, não se deve ter nenhuma preocupação com colaboradores com tempo menor de casa, descontos, impostos ou outras particularidades. Seu programa deverá permitir a digitação do salário de um número indefinido (desconhecido) de salários. Um valor de salário igual a 0 (zero) encerra a digitação. Após a entrada de todos os dados o programa deverá calcular o valor do abono concedido a cada colaborador, de acordo com a regra definida acima. Ao final, o programa deverá apresentar:
    O salário de cada funcionário, juntamente com o valor do abono;
    O número total de funcionário processados;
    O valor total a ser gasto com o pagamento do abono;
    O número de funcionário que receberá o valor mínimo de 100 reais;
    O maior valor pago como abono; A tela abaixo é um exemplo de execução do programa, apenas para fins ilustrativos. Os valores podem mudar a cada execução do programa.
    Projeção de Gastos com Abono
    ============================

    Salário: 1000
    Salário: 300
    Salário: 500
    Salário: 100
    Salário: 4500
    Salário: 0

    Salário    - Abono   
    R$ 1000.00 - R$  200.00
    R$  300.00 - R$  100.00
    R$  500.00 - R$  100.00
    R$  100.00 - R$  100.00
    R$ 4500.00 - R$  900.00

    Foram processados 5 colaboradores
    Total gasto com abonos: R$ 1400.00
    Valor mínimo pago a 3 colaboradores
    Maior valor de abono pago: R$ 900.00
  21. Faça um programa que carregue uma lista com os modelos de cinco carros (exemplo de modelos: FUSCA, GOL, VECTRA etc). Carregue uma outra lista com o consumo desses carros, isto é, quantos quilômetros cada um desses carros faz com um litro de combustível. Calcule e mostre:
    O modelo do carro mais econômico;
    Quantos litros de combustível cada um dos carros cadastrados consome para percorrer uma distância de 1000 quilômetros e quanto isto custará, considerando um que a gasolina custe R$ 2,25 o litro. Abaixo segue uma tela de exemplo. O disposição das informações deve ser o mais próxima possível ao exemplo. Os dados são fictícios e podem mudar a cada execução do programa.
    Comparativo de Consumo de Combustível

    Veículo 1
    Nome: fusca
    Km por litro: 7
    Veículo 2
    Nome: gol
    Km por litro: 10
    Veículo 3
    Nome: uno
    Km por litro: 12.5
    Veículo 4
    Nome: Vectra
    Km por litro: 9
    Veículo 5
    Nome: Peugeout
    Km por litro: 14.5

    Relatório Final
     1 - fusca           -    7.0 -  142.9 litros - R$ 321.43
     2 - gol             -   10.0 -  100.0 litros - R$ 225.00
     3 - uno             -   12.5 -   80.0 litros - R$ 180.00
     4 - vectra          -    9.0 -  111.1 litros - R$ 250.00
     5 - peugeout        -   14.5 -   69.0 litros - R$ 155.17
    O menor consumo é do peugeout.
  22. Sua organização acaba de contratar um estagiário para trabalhar no Suporte de Informática, com a intenção de fazer um levantamento nas sucatas encontradas nesta área. A primeira tarefa dele é testar todos os cerca de 200 mouses que se encontram lá, testando e anotando o estado de cada um deles, para verificar o que se pode aproveitar deles.
    Foi requisitado que você desenvolva um programa para registrar este levantamento. O programa deverá receber um número indeterminado de entradas, cada uma contendo: um número de identificação do mouse o tipo de defeito:
    necessita da esfera;
    necessita de limpeza; a.necessita troca do cabo ou conector; a.quebrado ou inutilizado Uma identificação igual a zero encerra o programa. Ao final o programa deverá emitir o seguinte relatório:
    Quantidade de mouses: 100

    Situação                        Quantidade              Percentual
    1- necessita da esfera                  40                     40%
    2- necessita de limpeza                 30                     30%
    3- necessita troca do cabo ou conector  15                     15%
    4- quebrado ou inutilizado              15                     15%
  23. A ACME Inc., uma empresa de 500 funcionários, está tendo problemas de espaço em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espaço ocupado pelos usuários, e identificar os usuários com maior espaço ocupado. Através de um programa, baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado "usuarios.txt":
    alexandre       456123789
    anderson        1245698456
    antonio         123456456
    carlos          91257581
    cesar           987458
    rosemary        789456125
    Neste arquivo, o nome do usuário possui 15 caracteres. A partir deste arquivo, você deve criar um programa que gere um relatório, chamado "relatório.txt", no seguinte formato:

    ACME Inc.               Uso do espaço em disco pelos usuários
    ------------------------------------------------------------------------
    Nr.  Usuário        Espaço utilizado     % do uso

    1    alexandre       434,99 MB             16,85%
    2    anderson       1187,99 MB             46,02%
    3    antonio         117,73 MB              4,56%
    4    carlos           87,03 MB              3,37%
    5    cesar             0,94 MB              0,04%
    6    rosemary        752,88 MB             29,16%

    Espaço total ocupado: 2581,57 MB
    Espaço médio ocupado: 430,26 MB
    O arquivo de entrada deve ser lido uma única vez, e os dados armazenados em memória, caso sejam necessários, de forma a agilizar a execução do programa. A conversão da espaço ocupado em disco, de bytes para megabytes deverá ser feita através de uma função separada, que será chamada pelo programa principal. O cálculo do percentual de uso também deverá ser feito através de uma função, que será chamada pelo programa principal.
  24. Faça um programa que simule um lançamento de dados. Lance o dado 100 vezes e armazene os resultados em um vetor . Depois, mostre quantas vezes cada valor foi conseguido. Dica: use um vetor de contadores(1-6) e uma função para gerar numeros aleatórios, simulando os lançamentos dos dados.

Como Usar um Dicionário em Python

Neste artigo, vamos resolver uma questão, comentar e mostrar seu código. Basicamente, vamos mostrar para você como usar um dicionário em Python, de tão 'completo' que é esse exercício.

Leia também:
  1. Apostila de Python em PDF
  2. Certificado do Curso de Python (para quem deseja trabalhar, ganhar dinheiro e viver de programação)

Exercício de Python


Uma escola te contratou para fazer um software em Python.
Eles querem que você crie um script que exiba o seguinte menu:

0. Sair
1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)
2. Inserir aluno e nota
3. Alterar a nota de um aluno
4. Consultar nota de um aluno específico
5. Apagar um aluno da lista
6. Dar a média da turma

Onde a professora que vai fornecer o nome e nota dos alunos. Quantos ela quiser. Quantas vezes quiser.
Implemente esse script usando um dicionário.

Conhecimentos para resolver essa questão:
O que é ? Para que serve? Como e quando se usa ?
Como exibir items, valores e chaves de um dicionário
Como usar os métodos get() e setdefault()
Adicionar, Alterar e Remover items de um dicionário



Solução comentada

Primeiro, criamos um dicionário de nome alunos e depois chamamos a função que exibe o menu.

  • menu()

Bem, vamos lá.

Primeiro, temos que criar a lógica que vai ficar exibindo esse menu o tempo inteiro.
Ele é exibido enquanto o valor da variável continuar for diferente de 0.
Se for, encerra o menu() e acaba o laço e encerra o programa.

Se for outro valor diferente, vai cair em vários testes condicionais para saber que função correta deve ser chamada.


  • exibir()

Nessa função, vamos simplesmente exibir o dicionário, de maneira bonita e padronizada, os nomes e notas dos alunos.

Para isso, usamos uma variável temporária de nome nome, que vai receber cada uma das chaves (keys), do dicionário de alunos.

Então, imprime o nome e a nota de cada aluno.


  • inserir()

Antes de inserir, usamos o método get() para saber se já existe uma key com aquele nome que estamos querendo inserir.

Se tiver o aluno, o método retorna algum valor, cai no IF e avisamos que não pode inserir.
Se não estiver o aluno, cai no ELSE e criamos um novo item no nosso dicionário.


  • alterar()

Antes de alterar um determinado item, temos que nos certificar que ele existe no dicionário.
Para isso, usamos o operador in.

Se ele existir na lista de keys, faz a alteração.
Se não não faz nada, só exibe uma mensagem avisando isso.


  • consultar()

Idem a lógica anterior.

Se existir o item, exibe.
Senão, avisa.


  • apagar()

Idem.

Primeiro, verificamos se o item existe, consultando sua chave.
Se tiver, usamos o método pop() para retirar o item da lista.


  • media()

Pegamos uma variável e inicializamos com valor 0.
Depois, somamos todos os valores nessa variável e dividimos pelo tamanho do dicionário, através da função len().




Código Python



def menu():
    continuar=1

    while continuar:
        continuar = int(
            input("0. Sair\n"+
                  "1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)\n"+
                  "2. Inserir aluno e nota\n"+
                  "3. Alterar a nota de um aluno\n"+
                  "4. Consultar nota de um aluno específico\n"+
                  "5. Apagar um aluno da lista\n"+
                  "6. Dar a média da turma\n"))
        if continuar==1:
            exibir()
        elif continuar == 2:
            inserir()
        elif continuar == 3:
            alterar()
        elif continuar == 4:
            consultar()
        elif continuar == 5:
            apagar()
        elif continuar == 6:
            media()
        elif continuar == 0:
            print("Encerrando programa")
        else:
            print("Opção inválida")
        
def exibir():
    for nome in alunos.keys():
        print("Nome: ", nome, " - Nota: ", alunos[nome])
        
def inserir():
    nome = input("Digite o nome do aluno: ")
    nota = float(input("Nota dele: "))

    if alunos.get(nome):
        print("Ja existe o aluno ",nome)
    else:
        alunos[nome] = nota
    
def alterar():
    nome = input("Aluno a mudar a nota: ")
    nota = float(input("Nova nota     : "))

    if nome in alunos.keys():
        alunos[nome] = nota
    else:
        print("Não existe esse aluno")
        
def consultar():
    nome = input("Digite o nome do aluno: ")

    if alunos.get(nome):
        print("Nota de ",nome, ": ", alunos[nome])
    else:
        print("Nao existe tal aluno")
    
def apagar():
    nome = input("Apagar que aluno: ")

    if alunos.get(nome):
        alunos.pop(nome)
    else:
        print("Não existe o aluno ",nome)
        
def media():
    soma = 0
    for count in alunos.values():
        soma += count
    print("Média dos alunos: %.2f" % (soma / len(alunos) ))

alunos = {}
menu()

Como Alterar uma Chave (key) de um Dicionário em Python

Agora, em nossa Apostila Python Progressivo, vamos aprender de maneira bem rápida e curta, como alterar a key de um dicionário.

Como Mudar a Key (Chave) de um Dicionário

No tutorial anterior, aprendemos a inserir, alterar e excluir um item.

Porém, alteramos o valor de uma determinada chave.
Por exemplo, no dicionário:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

Mudamos a nota de 'Maria' de 10 para 9 fazendo:
  • notas[Maria] = 9

Mas e se eu quiser mudar 'Maria' para 'Marya', pois eu digitei errado o nome dela?
Existem duas maneiras.


Maneira 1 de mudar a key

Primeiro, definimos uma nova key, com o valor da antiga.
Depois, apagamos a antiga:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

print(notas)

notas['Marya'] = notas['Maria']
del notas['Maria']

print(notas)

Teste o código anterior!

Maneira 2 de alterar a key

Podemos fazer isso também usando o método pop(), pois primeiro ele retorna a key que recebe, e automaticamente descarta ela depois:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

print(notas)
notas['Marya'] = notas.pop('Maria')
print(notas)

Bem mais simples, não?
Em ambos casos temos o seguinte resultado na tela:

Como mudar a chave de um dicionário

Ou seja, no fim das contas, não alteramos de fato a key, pois isso não é permitido.
Apenas copiamos o seu value anterior e colocamos ele em uma nova chave, com novo nome.

Como adicionar, Alterar e Retirar um Item num Dicionário em Python

Neste tutorial de nosso Curso de Python, vamos aprender como adicionar um novo item em um dicionário, alterar algum valor já existente e retirar algum item do dictionary.

Aprenda primeiro:

Adicionar item em um Dicionário


Vamos pegar o nosso bom e velho dicionário notas:
notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

Vamos supor que chegou um novo aluno, o Peart, que já chegou tirando nota 10 também.
No tutorial anterior (método get e setdefault - Como usar), aprendemos como inserir um valor através do método setdefault.

Você também pode inserir um item em um dicionário dict com chave key e valor value simplesmente fazendo a operação direta:

  • dict[ key ] = value


Por exemplo, vamos adicionar o aluno Peart:

notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

notas['Peart'] = 10
print(notas)

Simples, não é verdade?
Mas, cuidado, se esta chave já existir, ele vai substituir o valor anterior.

Por isso, é bom só fazer isso se não existir essa nova chave.
Podemos checar isso com o get.

O script abaixo pergunta um nome e uma nota.
Se este nome já existir, o método notas.get(nome) vai retornar algum valor do dicionário, e cai no IF dizendo que o nome já existe.

Se a chave não existir, retorna None por padrão, o método get(), então cai no ELSE, onde fazemos a atribuição e inserimos um novo item no dicionário, veja:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

nome = input("Digite o nome do aluno: ")
nota = float(input("Nota dele: "))

if notas.get(nome):
    print("Ja existe o aluno ",nome)
else:
    notas[nome] = nota
print(notas)




Como Alterar um Item: in

Agora, vamos aprender como mudar o valor de um determinado item.

A primeira coisa que devemos fazer é confirmar se realmente aquele item existe.
E podemos fazer isso com a instrução in.

Se fizermos key in notas.keys()
Ele vai avaliar se a chave key está na lista de valores de notas.keys()
Se sim, retorna True e cai no IF para podermos alterar o valor.

Se não tiver, retorna False e no ELSE dizemos que o aluno não existe, logo não dá pra alterar o valor dele.

Então, nosso script pra alterar alguma nota, ficaria assim:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

nome = input("Aluno a mudar a nota: ")
nota = float(input("Nova nota     : "))

if nome in notas.keys():
    notas[nome] = nota
else:
    print("Não existe esse aluno")
print(notas)




Como excluir um item: pop()

Para excluirmos um determinado item, basta usarmos o método pop() que vai receber a key de deletar o item cuja chave é aquela.

Por exemplo, para retirarmos o 'José' do dicionário:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

print(notas)
notas.pop('José')
print(notas)

O resultado é:

Como adicionar, alterar ou excluir um item de um dicionário em Python


Exercício de Dicionários em Python

Uma escola te contratou para fazer um software em Python.
Eles querem que você crie um script que exiba o seguinte menu:

0. Sair
1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)
2. Inserir aluno e nota
3. Alterar a nota de um aluno
4. Consultar nota de um aluno específico
5. Apagar um aluno da lista
6. Dar a média da turma

Onde a professora que vai fornecer o nome e nota dos alunos. Quantos ela quiser. Quantas vezes quiser.
Implemente esse script usando um dicionário.

Solução: Como usar dicionários em Python

Métodos get e setdefault em Dicionários - O que são e Como Usar

Neste tutorial de nosso Curso de Python de graça, vamos aprender a usar dois importantes métodos de dicionários, o get() e o setdefault().

Leia também:

Métodos dos Dicionários em Python

Uma das maiores vantagens do Python é já ter muita coisa 'embutida'.

Ou seja, já tem muita coisa pronta, feita, apenas usar o método, função, módulo ou biblioteca específica. Assim, você evita de ficar 'inventando a roda'.

Agora, vamos aprender a usar dois métodos, que são funções prontas para se trabalhar com dicionários.

Vamos usar o código do tutorial anterior:
Que é, basicamente, o dicionário:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

Nos próximos tutoriais também vamos aprender a usar novos métodos.


Como verificar se uma chave existe:
Método get()

Um dicionário não pode ter duas chaves iguais.
Já um valor pode se repetir várias vezes.

No dicionário anterior, podemos ter várias notas iguais, mas somente um João, uma Maria e um José, ok?

Experimente rodar o seguinte código:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}
print("Nota do Neil Peart: ", notas['Neil Peart'])
                                


Vai dar erro, pois não tem o aluno 'Neil Peart', vai aparecer uma mensagem de erro (KeyError).
Seu programa dá um crash, para de funcionar, se tentar acessar um item que não existem.

Geralmente, antes de trabalhar com um dicionário, especificamente quando queremos adicionar mais items, é necessário verificar se uma chave já existe.

Para isso, vamos usar o método get()
Esse método recebe dois parâmetros: get(key, value)
key - É a chave que você quer testar, pra saber se existe
value - Caso essa chave não existe, ele retorna esse valor ou None (caso não forneça nada, é opcional esse value)

O script abaixo testa se 'Peart' é um aluno ou não na lista:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

if notas.get('Peart') == None:
    print("Nao existe aluno Peart")
else:
    print("Aluno existente")



Definir o valor de uma chave:
Método setdefault()

Note o que o método get() faz no dicionário quando a chave fornecida não existe: nada.

Apenas retorna para quem chamou o método o valor key de get(key, value), uma espécie de resposta.

Seria mais útil se caso não existisse essa key ele criasse um item com essa chave e atribuísse a ele o valor value, não acha?

Se é óbvio, pode ter certeza que tem no Python.
Fazemos isso com o método setdefault(key, value)

O script abaixo testa se tem o aluno 'Peart', se tiver ele cria um item com esta key e dá o valor 8 para ele. Em seguida, imprimimos o dicionário para você ver como esse aluno foi adicionado, vejam:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

notas.setdefault('Peart', 8)
print(notas)


Caso a chave já exista, o método setdefault não faz nada na chave existente, não altera nada nela, ok?

Lista em Python - O que é? Para que serve? Por que usar ?

Neste tutorial, vamos aprender o que é uma lista em Python, para que serve, como funcionam e onde mais iremos utilizar elas.

Se desejar ter esse material em PDF, acesse:

Vale muuito a pena! Além do conteúdo mais organizado e num mesmo local, possui mais conteúdo e questões resolvidas que aqui no site.

Listas em Python - O que são?


Sabe os números? Inteiros, float...? São um tipo de dado.
E as strings ? Também um tipo de dado.
E os booleanos, valores lógicos True e False? Tipo de dado.

Pois é, uma lista também é isso, um puro e simples tipo de dado.

Sendo mais específico, tecnicamente, uma lista é um objeto de coleção ordenada.
Mas não gosto muito dessas definições técnicas, mais confundem que ajudam.

Vamos para a prática.






Listas em Python - Para que serve?

Esqueça programação.
O que é uma lista?

Por exemplo, a lista de alunos de sua turma.
Lá tem o número em ordem crescente, e o nome das pessoas. Pronto, a lista é monte de informação, de maneira ordenada. Pode ser ordenada a partir do número, em ordem alfabética, por data de nascimento, por notas etc.

Agora imagine uma lista de funcionários de uma empresa.
Tem o nome deles, função, salário, tempo de empresa, pode ter outra lista com as datas para folga e férias, e por ai vai.

O fato é que é ambos exemplos são de coleção de dados ordenada, concorda?

Voltemos pro Python: aqui é a mesma coisa.
Uma lista é um punhado de informações (nenhuma, uma, duas ou milhões de dados), dispostos de maneira ordenada.

Assim como as listas do mundo real, as listas no Python nos permitem organizar melhor os dados, encontrar informações etc.

Por exemplo, uma lista de alunos em ordem alfabética, facilmente você vai achar o Francisco.
Pode ter 200 alunos na turma, mas você vai direto lá pela região da letra 'F' e facilmente encontra seu amigo Xiquinho.

Mesma coisa na programação, as listas vão nos permitir trabalhar com um montão de dados de uma vez, de uma maneira bem simples e poderosa.



Por que usar listas?

Os propósitos são muitos, mas basicamente é pela facilidade de se lidar com coisas ordenadas. Elas, automaticamente, tem uma numeração, uma ordem lógica. Lembre-se que as coisas em computação são grandes, trilhões de bits, informações, números, dados, etc etc etc.

As listas nos fornecem uma infraestrutura para lidar com bastante informação de uma maneira bem simplificada e poderosa.

Por exemplo, as listas tem comprimento móvel, você pode ficar adicionando novos itens (como um novo cadastro de um produto de um supermercado) ou retirar (quando a empresa demitir um funcionário).

Você pode 'misturar' diversos tipos de dados em uma lista (como números, strings etc), inclusive colocar uma lista dentro de outra.

Se você já estudou outras linguagens de programação, pode notar que as listas lembram os arrays (em Java) ou ponteiros (em C/C++), principalmente pelo fato delas conterem, na verdade, referências para outros objetos nela.

Se não estudou, calma.
Nesta seção, vamos com bastante calma, com muitos exemplos e muitos códigos para você fixar bem os conceitos de sequências, pois são muitíssimo importantes!

No próximo tutorial, vamos aprender como criar uma lista e acessar seus itens.