Imagem digital de uma cobra, na cor azul, amarela, rosa e roxa, em cima de uma mesa com livros ao fundo.
Imagem gerada com Lexica.art

5 Desafios com números para iniciantes em Python

Francisco Foz
4 min readMay 2, 2023

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á?!

Gif de um desenho de uma cobra, na cor verde, se mexendo.

Sumário

1 — Valor da multa

2 — Emprestimos semana

3 — Porcentagem de leitura

4 — Ordenação de artigos

5 — Número de registro Hexadecimal

Considerações finais

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…

Francisco Foz
Francisco Foz

Written by Francisco Foz

Bibliotecário | Analista de dados | Disseminando informações para produzir conhecimento.

No responses yet

Write a response