Está en la página 1de 38
® python AprendaProgramar Aprenda a programar por Luciano Ramaiho © original deste documento esta em ‘2 http:/Muring,com,brimaterialappy/index.him| Para obter uma verséo completa em pa que pode ser lida fora da conexao com a Iniomet, acesse acu Para contribuir ou reportar eros, por gentileza ullize 0 repositério: Whilosigithub.com/oturinglappy . Use link "Issue: reporar eros ou fazer sugestes de melhora, para Este tutorial foi publicado originalmente na revista MAGNET: \ http:/wmwmagnet.com.brlelassiclaprendaprog! Este link aparentemente nao estd mais no ar, mas foi preservado aqui por razées histéricas. 1 ‘A obra “Aprenda a Programar" de Luciano Ramalho fol licenciada com uma Licenga Creative Commons - A\ribuigao - Uso Nao ‘Comercial - Partha nos Mesmos Termos 3.0 Brasil Para solicitar permissées adicionais, escreva para o autor via e-mail: luciano?ramalho org (substituindo 0 ? pelo simbolo apropriado). Capitulo 0 Porque aprender a programar? ‘A.razo fundamental, que nos motivou a produzir este tutorial, 6 uma s6: programar 6 divertido. E claro que nem todo mundo vai ‘concordar com isso, assim como muita gente nao acha graga nenhuma em jogar xadrez ou explorar cavernas. Ao contrério do xadrez e da espeleciogia, a programacao também é uma habilidade que tem forte demanda no mercado de trabalho. Mas a dura realidade é que somente com centenas ou milhares de horas de experiéncia programando ¢ que voce estard apto a incluir essa disciplina em seu curriculo e se dar bem em uma entrevista de emprego, Portanto nosso objetivo aqui é bem mais, modesto do que transformar voo® em um pragramador profissianal. O que estamos te oferecendo 6 uma introdugao suave a esse t6pico fascinante. Ao final, esperamos que vocé descubra se tem a vocagao ¢ a motivagdo necessérias para criar softwares, como hobby ou profissao. ‘Antes de comegar, apenas um aviso: 0 prazer de construir um programa pode causar dependéncia psicoldgica, Nao é apenas por dinheiro que programadores do mundo inteiro varam noites escrevendo cédigo. Material necessario Para acompanhar esse tutorial voc8 precisara de um computador qualquer onde tenha instalado um interpretador da linguagem Python. Em quase todas as versdes modemas de Linux e Mac OS X o interpretador Python ja vem instalado (experimente abrir um console e digtar ‘python"). Na pagina © htteyiwww,pvthon,ora/download! vacé encontra links para balxar 0 interpretador adequado para o seu computador, No caso do Windows, o instalador msi da versao atual do Python tem cerca de 11 MB. Porqué Python ‘Toda programagao de computadores 6 feita através de uma ou mais linguagens de programagao, portanto nao 6 possivel aprender 42 pragramar sem aprender ao menos uma linquagem de programagao. Nossa meta nao & mostrar como se programa em uma linguagem especttica, mas sim como se programa de uma forma geral. Ou soja, a linguagem para nés sera um veiculo, e nao 0 destino, Mesmo assim, pensamos bastante antes de escolher uma linguagem para este tutorial, ¢ optamos por Python, Centenas de linguagens ja foram eriadas desde que 0 computador eletrSnico fol inventado nos anos 40. Algumas jé so linguas mortas, Outras, como C++ © Java, S40 pecas fundamentais no desenvalvimento da economia digital. No entanto, a complexidade dessas duas linguagens nos motivou a descartétas, e focalizar o universo das chamadas linguagens de “scripting”, que so mais simples e se prestam a um estio de programacao exploratéria, mais sintonizado com um tutorial como esse, {sts linguagens de scripting mais populares atualmente sao IPHP, JavaScript e VBScript. Todas so utiizadas na construgao de web-sites dindmicos, mas praicamente ndo t8m aplcagao fora desse dominio, e por iss0 foram descartadas. E que, embora Soja nosso objetivo abordar também esse tpico, achamos que é complexo demas para comecar, especialmente devido & difculdade de se diagnositcarerros de programagao em paginas dinamicas. Escolhemos Python porque ¢ uma linguagem muito versatil, sada néo s6 no desenvolvimento Web mas em muitos outros tipos de aplicacao. Python roda nos servidores de mega-sites como Google © YouTube, nos clusters de computtagao grafica da Industrial Light & Magic, em laboratérios da NASA e da farmacéutica AstraZeneca, e em games como Civilization IV e EVE-Online, O nome “Python” é uma homenagem ao grupo humoristico inglés Monty Python, adorado por geeks de todo o mundo, mas pela pequena mostra de usuarios citados, ndo 6 uma linguagem de brinquedo. Apesar de sua sintaxe simples e clara, Python oferece os seguintes recursos disponiveis também em linguagens mais complicadas ‘como Java @ C++ programagao orientada a objetos (incluindo heranga miltipla, conceito apenas parcialmente presente em Java) ‘excogdes, um moderne mecanismo para o tratamento de erros ‘médulos, uma forma inteligente de acessar e organizar cbdigo a ser reutlizado coleta de lixo automdtica, sistema que elimina os erros causados pelo acimulo de dados initeis na meméria do ‘computador (caracteristica presente também em Java, mas no em C++) + recursos avangados de manipulagao de textos, lstas e outras estruturas de dados + possibiidade de executar 0 mesmo programa sem madificagSes em varias plataformas de hardware e sistemas ‘operacionais (dificil de se conseguir em C++) Em resumo, Python nos oferece uma sintaxe to simples quanto PHP ou VBScript, mas 6 mais versal do que elas. E permite ‘explorar varios recursos de Java e C++ de uma forma mais acessivel, Por esses motivos acreditamos que seja a melhor escolha para quem quer comegar a programar hoje. Capitulo 1 Abrindo e fechando o interpretador ‘A melhor forma de aprender a programar 6 usando um interpretador em modo interativo. Dessa forma vocé pode digitar comandos linha por linha e observar a cada passo como o computador interpreta e executa esses comandos. Para fazer isso em Python, ha duas maneiras: 1 -executar 0 interpretador em modo texto (chamado “Python (command line)" no Windows, ou simplesmente python no Linux) 2- usar 0 IDLE, que é um ambiente baseado em janelas, ‘Se vocé usa Windows, escolha o IDLE para comegar a acompanhar esse tutorial. © IDLE também esté disponivel para a plataforma Linux (algumas distribuigées colocam o IDLE em um pacote separado do pacote do Python). ‘Seja qual for o interpretador que voo8 escolheu, ao executé-lo voc8 verd uma mensagem com informagées de copyright mais ou 2.5.1 (1251:54863, Oct § 2007, 13:50:07) 320070929 (prerelease) (Ubuntu 4.1 santu2) J ax? Type "help", ight", "credits" or "licen: nore information. (0 simbolo ">>>" exibido pelo interpretador & o que os americanos chamam de "prompt", que alguns traduzem por "aviso", mas nbs vamos chamar de "deixa” (em teatto, o termo "prompt" é a deixa que indica ao ator a hora de dizer ou fazer alga; em compulacao, © prompt informa o usuario que © sistema esta pronto para receber um novo comando). Para sair do interpretador voc8 pode fechar a janela do IDLE, ou teclar [CTRL]+[0] (no IDLE ou no interpretador em UNIX) ou [CTRL]+[2] ¢ entao [ENTER] (no interpretador DOS), Uma calculadora melhor ‘Vamos entdo aproveitar a deixa e escrever algo. Experimente ascraver uma expressao aritmética bem simples, como 242: 35> 202 a A resposta 6 reconfortante: para Python, 2+2 6 igual a 4. Vocé pode experimentar outras expressées mais complexas, mas 6 bom ‘saber que 05 quatro operadores basicos em Python (e em quase todas as linguagens modemas) so esses: + +adiga0 += subtragao + * muttipicagao + /divisao Em Python, assim como na linguagem C, os numeros inteiros t8m um tratamento especial, Isso fica evidente quando fazemos uma diviséo: >>> 1/2, Em vez de 3,5, 0 resultado fol 3. Isso acontece sempre que todos os ntimeros de uma expresso sao inteiros. Neste caso, Python imagina que 8¢ deseja um resultado inteiro também (esse comportamento estranho as vezes é conveniente em programagao). Se voce quiser operar com nlmeros decimais, deve usar 0 ponto e ndo a virgula como separador decimal: >>> 7.0/2 12.0 12 Note que basta digitar um ponto apés 0 numero. 0 computador ndo consegue lidar com nimeros do conjunto dos reais, mas ‘apenas com uma aproximagéo chamada “numero de ponto-lutuante” (porque o ponto decimal pode aperecer em qualquer posigao do numero). Ao lidar com ponte-futuante, as vezes vemos resultados estranhos: > 2.442 4. 1999999999999998 © resultado ndo deveria sor 4.87 Deveria, mas antes de ficar revoltado note que a diferenga foi muito pequena. Acontece que o sistema de “ponto-flutuante” padrao IFEE-754 usado em quase todos os computadores atuais tem uma preciso Imitada, e Python no esconde este fato de vocé, programador. O problema nao esté na conta, mas na propria representagao interna do valor 2.4: boo 2.4 2.3995999999999999 Para exibir valores de ponto-flutuante para um usuario sem assusté-lo, use o comando print: >>> print 2.4 * 2 a8 \Vocé pode digitar espagos entre os niimeros © operadores para fazer uma exoressao longa ficar mais legivel. Veja esse exemplo: pope 2 43 Note que o interpretador Python é mais esperto que uma calculadora comum. Ele sabe que a multiplicagao deve ser efetuada antes da adigéo. Se vocé teclar a mesma expresso em uma calculadora qualquer obterd o resultado 9, que é incorreto. Em Python, se vocé realmente deseja efetuar a soma antes da multiplicagao, precisa usar parénteses: ‘Ao contrario do que vocé aprendeu na escola, aqui os simbolos [J e {) nao servem para agrupar expressdes dentro de outras ‘expressbes, Apenas parénteses so usados: poo (9 - (1420) / 3.0 >t 9- 1427/30 3.33535333333) DICA: Se vocé escrever algo que o Interpretador no reconhece, verd na tela uma mensagem de erro, Nao ctie o mau habito de ignorar essas mensagens, mesmo que elas parecam dificels de entender num primeiro momento. A dnica vantagem de cometer ‘eros 6 aprender com eles, @ Se a preguica o impedir de ler as mensagens, seu aprendizado sera bem mais lento, Veja aqui como decifrar as mensagens de erro do Python Como ler uma mensagem de erro

También podría gustarte