Linguagens de Programação :: Python

Discussão sobre o Advent of Code 2023 - Dia 6: Modelando problema com matemática

Série Advent of Code

O problema do dia 6 do Advent of Code desse ano pode ser resolvido usando matemática. Então resolvi testando o SymPy e ver o quanto ele facilita nas análises e contas. O resultado encontra-se no seguinte notebook (que também pode ser visualizado aqui).

Continue lendo...

Discussão sobre o Advent of Code 2022 - Dia 10: Divisão de responsabilidades em geradores

Série Advent of Code

No décimo dia do Advent of Code de 2022 tem um problema interessante para discutir sobre divisão de responsabilidades de funções geradoras.

Continue lendo...

Discussão sobre o Advent of Code 2022 - Dia 8: Valor da constante de um algoritmo linear

Série Advent of Code

No oitavo dia do Advent of Code de 2022 tem um problema interessante para discutir sobre o termo constante na complexidade de um algoritmo.

Continue lendo...

Discussão sobre o Advent of Code 2022 - Dia 6: Otimizando o algoritmo e utilização de estruturas de dados

Série Advent of Code

O sexto dia do Advent of Code deste ano tem um problema interessante para discutir sobre otimização do algoritmo e utilização de estruturas de dados.

Continue lendo...

Discussão sobre o Advent of Code 2022 - Dia 3: Complexidade de operações em estruturas de dados

Série Advent of Code

Terceiro dia do Advent of Code deste ano, o problema desse dia é bastante interessante para discutir sobre a complexidade de operações em estruturas de dados.

Continue lendo...

Discussão sobre o Advent of Code 2022 - Dia 2: Sequência de condições

Série Advent of Code

Segundo dia do Advent of Code deste ano, na questão de optimização do algoritmo, ele tem bastante semelhança com o dia 1 sobre tratar a entrada, mas tem uma questão que acredito que vale uma observação no seu processamento.

Continue lendo...

Discussão sobre o Advent of Code 2022 - Dia 1: Processando lista de valores

Série Advent of Code

Começou o Advent of Code deste ano, que embora tenha uma competição de quem resolve primeiro os problemas propostos, também é uma oportunidade para se desafiar e treinar o entendimento e a resolução de problemas. Porém aqui não quero discutir como resolver os problemas, mas sim pensar sobre os algoritmos usados para resolvê-los.

Continue lendo...

Questões para estudo de algoritmos

Recentemente li o texto do Maycon Alves, "3 algoritmos para você sua lógica", onde são apresentados 3 problemas para treinar a lógica e escrita de algoritmos: cálculo de fatorial, identificar se um número é primo, e calcular os valores da sequência de Fibonacci. São problemas interessantes, e após resolvê-los, pode-se fazer outras perguntas que levam a um entendimento mais profundo desses algoritmos. Eu recomendo que leiam o texto do Maycon primeiro e tentem implementar uma solução para esses problemas propostos, e com isso feito, vamos discutir um pouco sobre eles.

Continue lendo...

Orientação a objetos de outra forma: Property

Série Orientação a objetos de outra forma

Seguindo com a série, chegou a hora de discutir sobre encapsulamento, ou seja, ocultar detalhes de implementação de uma classe do resto do código. Em algumas linguagens de programação isso é feito utilizando protected ou private, e às vezes o acesso aos atributos é feito através de funções getters e setters. Nesse texto vamos ver como o Python lida com essas questões.

Continue lendo...

Orientação a objetos de outra forma: ABC

Série Orientação a objetos de outra forma

Na discussão sobre herança e mixins foram criadas várias classes, como Autenticavel e AutenticavelComRegistro que adicionam funcionalidades a outras classes e implementavam tudo o que precisavam para seu funcionamento. Entretanto podem existir casos em que não seja possível implementar todas as funções na própria classe, deixando com que as classes que a estende implemente essas funções. Uma forma de fazer isso é través das ABC (abstract base classes, ou classes base abstratas).

Continue lendo...