Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Conclusão do desafio 03 - @JamesStewart-314 #1108

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

JamesStewart-314
Copy link
Contributor

No description provided.

Copy link
Contributor

@helioloureiro helioloureiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bem complexo o algoritmo. Só não entendi bem o porquê de pedir números acima de 51.

Fora a complexidade, com lambda e typing hints, só olhando o código, parece que está certo.

@JamesStewart-314
Copy link
Contributor Author

JamesStewart-314 commented Oct 22, 2024

@helioloureiro Solicito de antemão minhas singelas desculpas pelo código “intrincado”. 😅

Julguei que seria disruptivo elaborar um algoritmo visualmente atrativo, todavia, essa decisão costuma comprometer a legibilidade do mesmo na parcela majoritária dos casos e, infelizmente, o meu se enquadrou nesta categoria. Caso seja necessário, posso remover as formatações em ANSI code para manter o minimalismo, basta solicitar!

Referente aos limites superiores e inferiores do código, todos os valores de entrada contidos no domínio $x \in [\space 0,\space 2^{64}-1 \space]$ são válidos, extremos inclusive. Caso esteja referindo-se ao trecho


print("|||", f"{"Please, insert two numbers greater or equal to":^51}", \ 
       "|||\n||| each other to find palindromic numbers between them |||")

o “51” ali presente não constitui uma informação da string exibida, tampouco um limite da faixa de valores. O segmento “{<string_arbitrária>}:^51” sinaliza uma maneira idiomática de centralizar o conteúdo da string entre chaves em um espaço de 51 caracteres vazios.

O programa aceita valores inteiros entre 0 e 51 sem maiores restrições, como exemplificado na imagem abaixo:

IMG-20241022-WA0001(1).jpg

@helioloureiro
Copy link
Contributor

Nada contra o código ser complexo. Não significa que seja ruim. É que pra olhar pelo telefone fica mais... não tão simples. Mas é limitação minha aqui.

@JamesStewart-314
Copy link
Contributor Author

JamesStewart-314 commented Oct 22, 2024

Compactuo da mesma opinião. Analisar códigos pelo computador já é uma tarefa demasiadamente complexa, fazê-la pelo celular então é uma façanha e tanto. 😅

@magnussolidus magnussolidus added the python Pull requests that update Python code label Oct 22, 2024
Copy link
Contributor

@helioloureiro helioloureiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eu precisei olhar o enunciado de novo. A implementação não está certa.

Você tem de aceitar inteiros positivos. Então não existe o limite de começar no 51.

Se entrar com 20, tem de gerar: 1, 2, 3, 4, 5, 6, 7, 8, 9 ,11.

@JamesStewart-314
Copy link
Contributor Author

JamesStewart-314 commented Oct 24, 2024

Você tem de aceitar inteiros positivos. Então não existe o limite de começar no 51.

@helioloureiro Eu não estou compreendendo. Em lugar algum do programa estabeleci um limite envolvendo o número 51. Conforme na imagem demonstrada em meu comentário anteriormente, meu programa não define nenhum limite envolvendo este valor. Poderia destacar o trecho no código onde defini este limite ou mostrar o funcionamento incorreto do algoritmo, por favor??

@helioloureiro
Copy link
Contributor

@JamesStewart-314 mil desculpas. A culpa é toda minha. Agora eu abri como deveria ter feito antes and o código está bom. Eu acchava que daria problema a forma que faz mexe com o tty dando um clear no final, mas parece que passou no teste. Então está bom pra ser adicionado.

Copy link
Contributor

@helioloureiro helioloureiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aprovado.

Copy link
Contributor

@helioloureiro helioloureiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aprovado.

@JamesStewart-314
Copy link
Contributor Author

JamesStewart-314 commented Oct 24, 2024

@JamesStewart-314 mil desculpas. A culpa é toda minha. Agora eu abri como deveria ter feito antes and o código está bom. Eu acchava que daria problema a forma que faz mexe com o tty dando um clear no final, mas parece que passou no teste. Então está bom pra ser adicionado.

Está tudo bem! Eu que agradeço plenamente pela disposição e complacência que reservou ao lidar com meu PR!!! Muitíssimo Obrigado ;)

@rocketguedes
Copy link
Contributor

rocketguedes commented Oct 24, 2024

Nossa! extremamente complexo e difícil de ler, tenho um conhecimento médio em Pyhton e para mim é quase inelegível. Se desviou muito do objetivo, boa parte do código foca em dar uma boa experiencia mas não é isso que entrega.

  1. Pela visão de um usuário eu não gostaria que o terminal fosse limpo antes e depois, os números que eu gostaria de descobrir foram limpos do terminal sem o desejo do usuário. Falha no objetivo principal que é mostrar os palíndromos.
  2. O pressione para sair e o delay são inconvenientes, a primeira vez que executei achei que tinha travado.
  3. Por que limitar os parâmetros de algumas funções a posições e não poder usar keywords?
  4. Se era para ter um countdown visível no terminal, não foi visível para mim no Linux.
  5. Sinto fortes influencias de C na escrita, o que dificulta muito a leitura do código.
  6. Uso de f string na docstring superior, uso de back slash para preservar aspas simples dentro de aspas duplas, incontáveis formas de dificultar a leitura e manutenção.
  7. Entre outras coisas.

@JamesStewart-314
Copy link
Contributor Author

JamesStewart-314 commented Oct 25, 2024

Nossa! extremamente complexo e difícil de ler, tenho um conhecimento médio em Pyhton e para mim é quase inelegível. Se desviou muito do objetivo, boa parte do código foca em dar uma boa experiencia mas não é isso que entrega.

  1. Pela visão de um usuário eu não gostaria que o terminal fosse limpo antes e depois, os números que eu gostaria de descobrir foram limpos do terminal sem o desejo do usuário. Falha no objetivo principal que é mostrar os palíndromos.
  2. O pressione para sair e o delay são inconvenientes, a primeira vez que executei achei que tinha travado.
  3. Por que limitar os parâmetros de algumas funções a posições e não poder usar keywords?
  4. Se era para ter um countdown visível no terminal, não foi visível para mim no Linux.
  5. Sinto fortes influencias de C na escrita, o que dificulta muito a leitura do código.
  6. Uso de f string na docstring superior, uso de back slash para preservar aspas simples dentro de aspas duplas, incontáveis formas de dificultar a leitura e manutenção.
  7. Entre outras coisas.

Entendido. Revisei todos os tópicos solicitados.

• Remoção da limpeza do resultado após o término do programa, agora o resultado é persistido no terminal;
• O programa agora encerra imediatamente após exibir o resultado;
• Nenhum parâmetro posicional das funções está limitado;
• Countdown removido;
• Remoção das docstrings e aspas simples prexifadas com backslash.

@rocketguedes
Copy link
Contributor

Nossa! extremamente complexo e difícil de ler, tenho um conhecimento médio em Pyhton e para mim é quase inelegível. Se desviou muito do objetivo, boa parte do código foca em dar uma boa experiencia mas não é isso que entrega.

  1. Pela visão de um usuário eu não gostaria que o terminal fosse limpo antes e depois, os números que eu gostaria de descobrir foram limpos do terminal sem o desejo do usuário. Falha no objetivo principal que é mostrar os palíndromos.
  2. O pressione para sair e o delay são inconvenientes, a primeira vez que executei achei que tinha travado.
  3. Por que limitar os parâmetros de algumas funções a posições e não poder usar keywords?
  4. Se era para ter um countdown visível no terminal, não foi visível para mim no Linux.
  5. Sinto fortes influencias de C na escrita, o que dificulta muito a leitura do código.
  6. Uso de f string na docstring superior, uso de back slash para preservar aspas simples dentro de aspas duplas, incontáveis formas de dificultar a leitura e manutenção.
  7. Entre outras coisas.

Entendido! Revisei todos os tópicos solicitados:

• Removi a limpeza do resultado após o término do programa, agora o resultado é persistido no terminal; • O programa agora encerra após exibir o resultado; • Nenhum parâmetro posicional está limitado; • Countdown removido; • Remoção das docstrings e aspas simples prexifadas com backslash.

WOW! Mudou da água para o vinho, tanto em usabilidade como em leitura, agora sim, muito bom!
Dá só uma olhada na saída do comando: pylint solution.py lá tem algumas pequenas coisas que você pode ajustar.

No topo você pode trocar o uso o # para """ e.g.:

"""This is the example module.

This module does stuff.
"""

Ai o pylint para de "reclamar" :D.

@JamesStewart-314
Copy link
Contributor Author

Nossa! extremamente complexo e difícil de ler, tenho um conhecimento médio em Pyhton e para mim é quase inelegível. Se desviou muito do objetivo, boa parte do código foca em dar uma boa experiencia mas não é isso que entrega.

  1. Pela visão de um usuário eu não gostaria que o terminal fosse limpo antes e depois, os números que eu gostaria de descobrir foram limpos do terminal sem o desejo do usuário. Falha no objetivo principal que é mostrar os palíndromos.
  2. O pressione para sair e o delay são inconvenientes, a primeira vez que executei achei que tinha travado.
  3. Por que limitar os parâmetros de algumas funções a posições e não poder usar keywords?
  4. Se era para ter um countdown visível no terminal, não foi visível para mim no Linux.
  5. Sinto fortes influencias de C na escrita, o que dificulta muito a leitura do código.
  6. Uso de f string na docstring superior, uso de back slash para preservar aspas simples dentro de aspas duplas, incontáveis formas de dificultar a leitura e manutenção.
  7. Entre outras coisas.

Entendido! Revisei todos os tópicos solicitados:

• Removi a limpeza do resultado após o término do programa, agora o resultado é persistido no terminal; • O programa agora encerra após exibir o resultado; • Nenhum parâmetro posicional está limitado; • Countdown removido; • Remoção das docstrings e aspas simples prexifadas com backslash.

WOW! Mudou da água para o vinho, tanto em usabilidade como em leitura, agora sim, muito bom!
Dá só uma olhada na saída do comando: pylint solution.py lá tem algumas pequenas coisas que você pode ajustar.

No topo você pode trocar o uso o # para """ e.g.:

"""This is the example module.

This module does stuff.
"""

Ai o pylint para de "reclamar" :D.

Ao executar o pylint localmente em minha máquina, ele não acusou este e outros detalhes, apenas identificou a presença de Trailing Spaces, mas agradeço pela recomendação. Acabei de finalizar as mudanças sugeridas.

@mpinheir
Copy link
Member

Está bonita esta discussão. @rocketguedes dá mais uma revisada e me avisa quando ok para aprovar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants