
5 Desafios com números para iniciantes em Python
Aprender a programar exige prática e treino. Uma das formas para se praticar programação é realizando desafios, para se entender quando e como se utilizar cada funcionalidade da linguagem e “encaixar as peças” lógicas.
Pessoas que aprenderam elementos básicos da programação e acabam não usando no seu dia-a-dia esquecem com facilidade, pois a programação exige prática.
Então, novamente, os desafios são bons para relembrar e manter o “conhecimento ativo”.
Uma das primeiras etapas que iniciantes geralmente começam é com números (tipos numéricos, operações numéricas etc), então montei 5 desafios em Python e compartilho no texto de hoje.
Bora lá?!
Sumário
1 — Valor da multa
Desafio:
O desafio consiste em criar um programa em Python para calcular a multa a ser paga por um usuário de biblioteca que devolveu um livro com atraso.
Para isso, o programa deve solicitar ao usuário o número de dias que o livro foi devolvido após a data de vencimento e calcular a multa com base na seguinte tabela:
Até 3 dias de atraso: multa de R$ 0,50 por dia de atraso
De 4 a 7 dias de atraso: multa de R$ 1,00 por dia de atraso
Mais de 7 dias de atraso: multa de R$ 2,00 por dia de atraso
Ao final, o programa deve exibir a mensagem “O valor da sua multa é R$ X”, em que X é o valor da multa calculada.
Dica: Verifique laços (for), entrada de valores (input), formatação de valores (f-string).
2 — Empréstimos semana
Desafio:
O desafio consiste em escrever um programa que receba o número de livros emprestados por dia de uma biblioteca ao longo de uma semana (7 dias) e calcule:
- O número total de livros emprestados na semana
- A média diária de empréstimos
- O dia com o maior número de empréstimos
Ao final, exiba os resultados para o usuário.
Dica: Verifique laços (for), operações aritméticas e condicionais (if).
3 — Porcentagem de leitura
Desafio:
Crie um programa que solicite ao usuário que digite o número total de páginas de um livro e o número de páginas que foram lidas, e em seguida, calcule e imprima a porcentagem do livro que foi lida até o momento.
Caso o usuário insira um número errado de páginas lidas (maior do que o número de páginas do livro), o programa deve continuar pedindo o número de páginas lidas até que o usuário indique que terminou de ler o livro, ou seja, tenha lido todas as páginas.
Para realizar essa divisão com precisão exata, utilize o módulo Decimal da biblioteca padrão do Python.
Dica: Verifique condições de repetição (while).
4 — Ordenação de artigos
Desafio:
Dada a lista de artigos:
artigos = [
{'titulo': 'Applications of Artificial Intelligence in Academic Libraries',
'autores': ['Vijayakumar, S.','Sheshadri,K.N.'],
'data_publicacao': '16/05/2019',
'consultas': 569},
{'titulo': 'Data science in data librarianship: Core competencies of a data librarian',
'autores': ['Semeler, A. R.','Pinto, A. L.','Rozados, H. B. F.'],
'data_publicacao': '26/11/2019',
'consultas': 1004},
{'titulo': 'Data scientist: the sexiest job of the 21st century',
'autores': ['Davenport,T.H.','Patil, D J'],
'data_publicacao': '01/10/2012',
'consultas': 10231},
{'titulo': 'Bibliometria: evolução histórica e questões atuais',
'autores': ['Araújo,C.A.A.'],
'data_publicacao': '10/12/2006',
'consultas': 650}
]
Crie uma função para ordenar a lista de artigos por data de publicação, do mais antigo ao mais recente.
Dica: Verifique as funções sort(), len() e o módulo datetime.
5 — Número de registro Hexadecimal
Desafio:
Crie um programa que pergunte ao usuário se ele deseja converter o número de registro de um material para hexadecimal ou se ele deseja converter o número hexadecimal em número de registro (um número inteiro).
Em seguida, converta esse número em sua respectiva conversão e imprima na tela.
Caso queira saber mais sobre sistema de numeração hexadecimal, confira esses textos:
Dica: Verifique as funções hex(), enumerated() e reversed().
Considerações finais
Para verificar os resultados, você pode conferir esse repositório:
Agora, me diga:
Aprendeu ou exercitou alguma coisa que não lembrava?
Deixe nos comentários e vamos compartilhar conhecimento.
Se você tem algum outro desafio, faça um pull request no repositório e compartilhe.
Se você chegou até aqui e curtiu, dê palmas, compartilhe e se inscreva para me acompanhar.
Ainda há muito a se explorar…