From c7e5835a2ace46561503b804de845eb21bdd7dce Mon Sep 17 00:00:00 2001 From: talita048 Date: Fri, 18 Oct 2024 13:33:55 -0300 Subject: [PATCH 1/6] Primeiro envio do Desafio 03 por Talita (talita048 no GitHub) e (@talita_s_costa no Telegram) --- desafio-03/talita048/python/README.md | 35 ++++++++++++++++++++++++ desafio-03/talita048/python/desafio03.py | 19 +++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 desafio-03/talita048/python/README.md create mode 100644 desafio-03/talita048/python/desafio03.py diff --git a/desafio-03/talita048/python/README.md b/desafio-03/talita048/python/README.md new file mode 100644 index 000000000..7795f0746 --- /dev/null +++ b/desafio-03/talita048/python/README.md @@ -0,0 +1,35 @@ +# Detector de Números Palíndromos + +Bem-vindo(a) ao **Detector de Números Palíndromos**! Este programa foi criado para encontrar todos os números palíndromos dentro de um intervalo especificado pelo usuário. + +## O que é um número palíndromo? + +Um número palíndromo é aquele que permanece igual quando lido de trás para frente, por exemplo, 121 e 1331. + +## Requisitos +* [Python 3](https://www.python.org/downloads/) ou mais recente instalado. + +## Como usar + +1. **Clone o repositório op-desafio**: + ``` + git clone https://github.com//op-desafios + ``` + +Ou veja mais instruções [nesse Readme](https://github.com/osprogramadores/op-desafios/#readme) + +2. **Navegue até o diretório do projeto**: + ``` + cd op-desafios + ``` + +3. **Execute o programa**: + ``` + python3 desafio-03/talita048/python/desafio03.py + ``` + +4. **Siga as instruções do programa** + + +## Contato +Sinta-se à vontade para entrar em contato comigo através do [Telegram.](https://t.me/talita_s_costa) diff --git a/desafio-03/talita048/python/desafio03.py b/desafio-03/talita048/python/desafio03.py new file mode 100644 index 000000000..60ced56fc --- /dev/null +++ b/desafio-03/talita048/python/desafio03.py @@ -0,0 +1,19 @@ +print("\nBem-vindo(a) ao detector de números palíndromos!") +print("Um número palíndromo é aquele que permanece igual quando lido de trás para frente.") +print("Insira dois números e vou te informar todos os palíndromos que existem entre eles :D") + +limite_a = int(input("Digite o primeiro número: ")) +limite_b = int(input("Digite o segundo número: ")) + +lista_pal = [] + +while limite_a < limite_b+1 : + reverso = int(str(limite_a)[::-1]) + if limite_a == reverso : + lista_pal.append(limite_a) + limite_a += 1 + +print("Números palíndromos encontrados:") +for palindromo in lista_pal: + print(palindromo) + From fcd2daf35ef2de7df559ab427a3811a7b83137f2 Mon Sep 17 00:00:00 2001 From: Talita Ribeiro <90120664+talita048@users.noreply.github.com> Date: Fri, 18 Oct 2024 18:26:41 -0300 Subject: [PATCH 2/6] =?UTF-8?q?Remo=C3=A7=C3=A3o=20de=20linhas=20em=20bran?= =?UTF-8?q?co=20no=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desafio-03/talita048/python/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desafio-03/talita048/python/README.md b/desafio-03/talita048/python/README.md index 7795f0746..fe06e3a42 100644 --- a/desafio-03/talita048/python/README.md +++ b/desafio-03/talita048/python/README.md @@ -14,12 +14,12 @@ Um número palíndromo é aquele que permanece igual quando lido de trás para f 1. **Clone o repositório op-desafio**: ``` git clone https://github.com//op-desafios - ``` + ``` Ou veja mais instruções [nesse Readme](https://github.com/osprogramadores/op-desafios/#readme) 2. **Navegue até o diretório do projeto**: - ``` + ``` cd op-desafios ``` From 54ec3aa42f1fcdeb05668fdc2b642cfa70e321d7 Mon Sep 17 00:00:00 2001 From: Talita Ribeiro <90120664+talita048@users.noreply.github.com> Date: Fri, 18 Oct 2024 18:34:22 -0300 Subject: [PATCH 3/6] =?UTF-8?q?Remo=C3=A7=C3=A3o=20de=20linhas=20em=20bran?= =?UTF-8?q?co=20no=20desafio03.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desafio-03/talita048/python/desafio03.py | 1 - 1 file changed, 1 deletion(-) diff --git a/desafio-03/talita048/python/desafio03.py b/desafio-03/talita048/python/desafio03.py index 60ced56fc..c7e4220e1 100644 --- a/desafio-03/talita048/python/desafio03.py +++ b/desafio-03/talita048/python/desafio03.py @@ -16,4 +16,3 @@ print("Números palíndromos encontrados:") for palindromo in lista_pal: print(palindromo) - From 8a316e000b33cbae10de8e931432e59557f25c60 Mon Sep 17 00:00:00 2001 From: Talita Ribeiro <90120664+talita048@users.noreply.github.com> Date: Sun, 20 Oct 2024 17:59:39 -0300 Subject: [PATCH 4/6] =?UTF-8?q?Adicionando=20checagem=20dos=20n=C3=BAmeros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adicionadas funções que conferem se as entradas do usuário são números válidos e se o primeiro número é menor que o segundo. --- desafio-03/talita048/python/desafio03.py | 33 +++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/desafio-03/talita048/python/desafio03.py b/desafio-03/talita048/python/desafio03.py index c7e4220e1..ef0b25780 100644 --- a/desafio-03/talita048/python/desafio03.py +++ b/desafio-03/talita048/python/desafio03.py @@ -1,13 +1,40 @@ +def eh_numero(val): + if val.isdigit(): + return True + else: + return False + +def eh_positivo(val): + if int(val) >= 0: + return True + else: + return False + +def check_numero(mensagem): + while True: + num = input(mensagem) + if not eh_numero(num): + print("Por favor, insira um número válido.") + elif not eh_positivo(num): + print("Por favor, insira um número positivo.") + else: + return int(num) + print("\nBem-vindo(a) ao detector de números palíndromos!") print("Um número palíndromo é aquele que permanece igual quando lido de trás para frente.") print("Insira dois números e vou te informar todos os palíndromos que existem entre eles :D") -limite_a = int(input("Digite o primeiro número: ")) -limite_b = int(input("Digite o segundo número: ")) +while True: + limite_a = check_numero("Digite o primeiro número: ") + limite_b = check_numero("Digite o segundo número: ") + if limite_a >= limite_b: + print("O primeiro número deve ser menor que o segundo. Tente novamente.") + else: + break lista_pal = [] -while limite_a < limite_b+1 : +while limite_a <= limite_b : reverso = int(str(limite_a)[::-1]) if limite_a == reverso : lista_pal.append(limite_a) From e0ed1c535f5dc90153a6f95777b1530e875e0571 Mon Sep 17 00:00:00 2001 From: Talita Ribeiro <90120664+talita048@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:25:36 -0300 Subject: [PATCH 5/6] =?UTF-8?q?Simplifica=C3=A7=C3=A3o=20das=20fun=C3=A7?= =?UTF-8?q?=C3=B5es=20iniciais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desafio-03/talita048/python/desafio03.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/desafio-03/talita048/python/desafio03.py b/desafio-03/talita048/python/desafio03.py index ef0b25780..5654e67dd 100644 --- a/desafio-03/talita048/python/desafio03.py +++ b/desafio-03/talita048/python/desafio03.py @@ -1,14 +1,8 @@ def eh_numero(val): - if val.isdigit(): - return True - else: - return False + return val.isdigit() def eh_positivo(val): - if int(val) >= 0: - return True - else: - return False + return int(val) >= 0 def check_numero(mensagem): while True: From 2deb45264fb5c6a6ab7d0d69b391e05f7a625cb5 Mon Sep 17 00:00:00 2001 From: Talita Ribeiro <90120664+talita048@users.noreply.github.com> Date: Sun, 20 Oct 2024 22:18:27 -0300 Subject: [PATCH 6/6] Melhoria no tratamento de erros de input MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Caso o segundo número seja menor que o primeiro, o usuário só precisará corrigir o segundo número. --- desafio-03/talita048/python/desafio03.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desafio-03/talita048/python/desafio03.py b/desafio-03/talita048/python/desafio03.py index 5654e67dd..af61776d2 100644 --- a/desafio-03/talita048/python/desafio03.py +++ b/desafio-03/talita048/python/desafio03.py @@ -18,11 +18,11 @@ def check_numero(mensagem): print("Um número palíndromo é aquele que permanece igual quando lido de trás para frente.") print("Insira dois números e vou te informar todos os palíndromos que existem entre eles :D") +limite_a = check_numero("\nDigite o primeiro número: ") while True: - limite_a = check_numero("Digite o primeiro número: ") limite_b = check_numero("Digite o segundo número: ") if limite_a >= limite_b: - print("O primeiro número deve ser menor que o segundo. Tente novamente.") + print("O segundo número deve ser maior que o primeiro!") else: break