1.1. Introdução¶
"Sessenta anos atrás eu sabia tudo. Agora sei que nada sei. A educação é a descoberta progressiva da nossa ignorância."
É possível que, se você está começando a ler esse livro, se pergunte: para que eu preciso aprender a pensar com Python?
Certamente você já sabe “pensar” e “resolver” problemas, aliás muito bem já que você escolheu seguir esse livro. No entanto, provavelmente você deve ter pouca ou nenhuma experiência com computação e, em particular, com programação de computadores. Se esse é o seu caso e você deseja aprender um pouco de programação e computação, esse livro foi escrito pensando em você. Mas se você já sabe programar em alguma linguagem e quer aprender Python, provavelmente há formas melhores, como a própria documentação do Python.
Portanto, esse não é um livro para aprender Python. Nosso objetivo é mais fundamental, nós almejamos que, ao final do curso, você seja capaz de resolver problemas computacionais simples, independente da linguagem usada para programar suas soluções. Para isso, ao longo do curso, vamos realizar vários exercícios para refinar algumas das suas habilidades cognitivas até que você se sinta confortável na resolução desses problemas.
Nesse livro vamos chamar essas habilidades de “pensamentos”. Tipicamente, as melhores soluções são resultado de um profundo conhecimento do problema e larga experiência com as ferramentas usadas para construir as soluções, além, é claro, de um pouco de criatividade. Veremos que, em muitos casos, nossas soluções são incorretas por falta de conhecimento do problema e/ou uso incorreto das ferramentas.
Sabemos que, para quem nunca programou, perceber certos detalhes é muito difícil e muitas vezes isso nós impede de entender um problema, ou enxergar uma solução, ou ainda ver um problema na nossa tentativa de solução. Por isso, desde já, pedimos sua atenção e paciência para que possamos retreinar sua habilidade de leitura de textos para leitura de programas. Um dos primeiros fundamentos que vamos treinar é procurar entender o que está escrito, como leitores “pensando” se o que está escrito resolve o problema, para que, em seguida, possamos passar ao papel de escritores ou criadores de soluções.
Esse livro também surgiu da possibilidade de criar um material interativo, onde o texto fica intercalado com exercícios e questões que você pode resolver dentro do próprio navegador. Vamos dar um exemplo com o seguinte exercício de ordenação de palavras.
Considere as palavras "casa"
, "CASA"
, "cASa"
e "CasA"
.
Essas quatro palavras são exatamente as mesmas, correto?
ERRADO!
Cada uma delas tem uma combinação de letras maiúsculas e minúsculas e são consideradas diferentes pela linguagem Python.
Considere agora o problema de colocar essas palavras em ordem alfabética crescente.
Para isso, considere que as letras maiúsculas vem antes (tem precedência) das letras minúsculas.
"casa"
,"CASA"
,"cASa"
,"CasA"
-
'C'
tem precedência sobre'c'
"casa"
, cASa,"Casa"
,"CASA"
-
'C'
tem precedência sobre'c'
minúscula "CASA"
,"Casa"
,"casa"
,"casa"
-
parabéns, correto!
"CASA"
,"casa"
,"Casa"
,"casa"
-
'C'
tem precedência sobre'c'
cap01-011: Ordene as palavras "casa"
, "CASA"
, "cASa"
e "CasA"
em ordem crescente, considerando que
letras maiúsculas tem precedência sobre minúsculas. Dizer que maiúsculeas têm precedência sobre minúsculas significa que "A"
deve aparece antes de "a"
e que uma palavra como "aBa"
deve aparecer antes de uma palavra como "aba"
.
Spoiler Alert!
Além de questões de múltipla escolha, o livro está repleto de outros tipos de atividades interativas. Você poderá inclusive escrever e executar trechos de código em Python, de forma interativa, sem sair desse livro.
Ao final de cada capítulo existe também uma seção com exercícios de laboratório. O objetivo dos laboratórios é que você aprenda a usar o Python de forma plena, fora das limitações impostas pelo navegador. Os laboratórios exploram outras ferramentas que facilitam o desenvolvimento de programas mais complexos.