Ir ao conteúdo
  • Cadastre-se

Outro É bom saber fazer apenas métodos resumidos em Python?


Posts recomendados

Bom, eu estou aprendendo Python e gostaria de saber se é bom aprender a fazer algoritmos mais simples, ou é melhor trabalhar com os mais complexos?

 

Estou lendo um livro que ensina a programar em Python e parei no capítulo onde ensinam a ordenar listas. Eu sei que o Python existe justamente para ser uma linguagem mais simples e de fácil uso. Mas em uma das lições, ele pede para ordenar uma lista de scores e o algoritmo é desse jeito:

 

def bubble_sort(scores_bubbles):
    swapped = True

    while swapped:
        swapped = False
        for i in range(0, len(scores_bubbles)-1):
            if scores_bubbles[i] < scores_bubbles[i+1]:
                temp = scores_bubbles[i]
                scores_bubbles[i] = scores_bubbles[i+1]
                scores_bubbles[i+1] = temp
                swapped = True

scores_bubbles = [60, 50, 60, 58 ,54, 54, 58, 50, 52, 54, 48, 69,
                    34, 55, 51, 52, 44, 51, 69, 64, 66, 55, 52,
                    61, 46, 31, 57, 52, 44, 18, 41, 53, 55, 61, 51, 44]

bubble_sort(scores_bubbles)
print(scores_bubbles)

Mas eu procurei na internet e vi um algoritmo que faz a MESMA coisa que essa função e usa apenas TRÊS linhas!

Ambos vão mostrar os números da lista de forma decrescente:

 

scores_bubbles = [60, 50, 60, 58 ,54, 54, 58, 50, 52, 54, 48, 69,
                    34, 55, 51, 52, 44, 51, 69, 64, 66, 55, 52,
                    61, 46, 31, 57, 52, 44, 18, 41, 53, 55, 61, 51, 44]

best_bubbles = sorted(scores_bubbles , reverse=True)
print(best_bubbles)

Eu não quero me prender apenas ao Python, provavelmente irei para o Java ou programação web com Javascript, então gostaria de saber se na fase de aprendizado é bom saber apenas os códigos simples e não trabalhar nos mais complexos.

 

Obrigado desde já

Link para o comentário
Compartilhar em outros sites

Boa tarde @Cotocossauro

 

Acho importante aprender como funciona o algorítimo, pois você poderá aplica-lo e modifica-lo independe da situação, não é sempre que você poderá usar uma função "pronta", então é importante aprender como faze-la.

 

Mas no dia a dia, para facilitar e não ficar reinventando a roda, é importante saber esses métodos prontos. 

Link para o comentário
Compartilhar em outros sites

  • 5 semanas depois...

A diferença é que no primeiro código você descreveu como deve ser ordenada a lista de números, e chamou essa receita de bubble_sort. Depois aplicou essa receita de ordenação à lista, com bubble_sort(scores_bubbles).

 

No segundo código, em vez de você descrever como a lista deve ser ordenada, usou uma receita pronta, do próprio Python, chamada sorted.

 

Existem várias receitas de como ordenar as coisas, inclusive várias formas diferentes de ordenar números, algumas mais rápidas (mais eficientes) e outras mais demoradas (menos eficientes).

 

No seu primeiro código, você usou a estratégia bubble sort, que é uma das mais simples e menos eficientes. No segundo código, você provavelmente não sabe, mas está usando uma estratégia diferente, chamada Timsort. A vantagem é que você economiza tempo usando a receita que já vem com o Python. A desvantagem é que nem sempre ela é a melhor opção, e é importante que você mesmo saiba escrever as principais maneiras de ordenar, como fez como o bubble sort. Ou seja, no primeiro código você realmente praticou a lógica de programação em algoritmos de ordenação, no segundo, não, apenas usou o algoritmo pronto do Python.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!