Vamos começar a programar em Python? (Parte I)

58 Comentários

Actualmente são muitas as linguagens de programação ao dispor dos programadores e curiosos pela “arte” de programar. O desenvolvimento de aplicações está hoje em dia direcionado para a Web e para os dispositivos móveis mas há ainda muito a fazer no que diz respeito à integração de sistemas.

Depois da aquisição do Raspberry PI, uma das linguagens de programação que tenho estudado nos últimos tempos é o Python. Como sempre, aproveito e vou partilhando com todos os nossos leitores o que  tenho aprendido nos últimos tempos.

python_03

Características do Python

A linguagem de programação Python é uma linguagem de alto nível (VHLL – Very High Level Language), interpretada e interactiva, que foi criada  criada pelo holandês Guido Van Rossum. Esta é uma linguagem orientada a objectos, modular, com uma sintaxe muito intuitiva e muito simples de aprender. Tal como o Perl, o código fonte do Python está disponível sob a licença GNU General Public License (GPL).

Na Internet podemos encontrar muita documentação sobre esta fantástica linguagem de programação que é usada pelos principais players tecnológicos, nos mais diversos serviço. Nestes artigos, iremos tentar trazer até aos nossos leitores exemplos de aplicação simples e como sempre contar com a ajuda dos mais experts.

Primeiro programa em Python

Tal como diz a história, se vamos iniciar numa linguagem de programação, a primeira aplicação a criar é o Hello Worl. Caso não seja esta a vossa primeira aplicação, então dizem os sábio que nunca serão bons programadores nessa linguagem. Para os nossos tutoriais, vamos recorrer a máquinas com Linux e com o Python instalado, mas os utilizadores do Windows e Mac OS X, também podem acompanhar uma vez que o Python também corre nesses sistemas.

Exemplo 1: Hello World

Para entrar no compilador escrevemos python e em seguida usamos o código

print "Hello World!";
[root@pplware ~]# python
Python 2.4.3 (#1, Jan 21 2009, 01:10:13)
[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hello World!";
Hello World!

python_01

Exemplo 2: Vamos brincar com números

Com o python é também fácil trabalhar com números. Imaginem por exemplo que pretende quem o python se transforma numa calculadora. Para isso basta que digitem normalmente o calculo que pretendem, terminando com Enter. Exemplos:

1+1

6-4

3**2

100%10

python_02

E por hoje é tudo. Esta é apenas o nosso primeiro tutorial sobre Python e tentaremos trazer novos tutoriais semanais. Para isso contamos com todos os que queiram colaborar neste rubrica, partilhando o seu know how sobre esta linguagem. Podem enviar os vossos tutoriais para ppinto AT pplware.com. Num proximo artigo iremos aprender algumas operações básicas…estejam atentos.

Que acharam da ideia de iniciar esta rubrica?

Comentários

58

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de João
    João

    Boa tarde!

    Penso que é uma excelente iniciativa ensinar esta linguagem que é tão simples de aprender e tão poderosa para fazer pequenos scripts… Com um pouco mais de conhecimento, passar para uma framework como o Django para desenvolvimento web é muito fácil…

    Como reparo, gostava apenas de dizer:
    – Penso que era ideal apresentarem o python 2.7 ou 3 em vez de estarem a programar no 2.4
    – Utilizarem exemplos onde mostrem toda a simplicidade do python. Isto é:
    print “Hello World!”;
    não precisa do “;” A linguagem python tenta ser o menos verbosa possível sem parenteses, chavetas e pontos e virgulas 😉

    1. Avatar de Tiago Dias
      Tiago Dias

      Epá nem tinha reparado nessa “gralha”! @Pedro Pinto, começar ensinar Python desta maneira é totalmente antipedagógico 😛

  2. Avatar de diogoj95
    diogoj95

    Acho uma ideia excelente!
    Ainda há poucos dias pensei em aprender sozinho, mas ao contrário do que acontece com muitas outras linguagens de programação, tais como C, C++, VB, etc., achei que as “aulas” de Python que se encontra na internet são um pouco confusas. Creio que vou agora descobir se por estas terem sido pensadas de forma confusa ou se é a própria linguagem que é confusa. 😛

    1. Avatar de ZiLOG
      ZiLOG

      Para quem está habituado ao C, vai achar esta linguagem algo confusa. Pelo menos comigo aconteceu.

  3. Avatar de Tomé Soares
    Tomé Soares

    É sem dúvida o começo. É a linguagem “universal” de programação simples que dá para quase tudo. Fico a aguardar pelas próximas partes.

  4. Avatar de naoliveira

    Parece que é desta que vou pegar no python… 🙂

  5. Avatar de Joaquim Pinheiro
    Joaquim Pinheiro

    Estou desejoso de ver os próximos artigos.

    É desta que vou conhecer o Python 🙂

  6. Avatar de someone
    someone

    Boas, acho que em vez da v2.4, a v2.7 ou ainda melhor a v3 seria o melhor para quem vai agora iniciar-se nestas aventuras.

    Eu não gosto muito desta coisa de linguagens interpretadas, mas a verdade é que vou tendo que ceder…

    O Python é um desses casos, hoje em dia tudo e mais alguma coisa usa python, não sou nenhum expert mas como o python é muito acessível dá pro gasto 😉

    1. Avatar de Tiago Dias
      Tiago Dias

      Penso que actualmente a versão 3 ainda não é suficientemente concensual (posso estar enganado). Existem algumas bibliotecas que não suportam v3.x, sendo o OpenCV uma delas.

      1. Avatar de someone
        someone

        Concordo a 100%, por isso disse:
        “a v2.7 ou ainda melhor a v3 seria o melhor para quem vai agora iniciar-se nestas aventuras.”

        Para quem vai aprender por exemplo até será bom preparar logo para a v3.

        Para quem está muito activo e usa muitas libs, então a v2.7 é a recomendada.

        Na verdade actualmente a coisa já não é tão grave como foi, tanto para quem usar v2.7 ou a v3.

        Muitas novidades da V3 também acabaram por ser portadas para a v2.7 😉

  7. Avatar de Paulo Jorge
    Paulo Jorge

    É sempre uma excelente iniciativa partilhar conhecimentos com a comunidade por isso força! Neste caso Python é uma linguagem pela qual tenho muito carinho, pois trabalho com ela quase diariamente principalmente voltado para a web, com a framework Web2py (<3) – Cherrypy e Django também gosto mas não uso tanto – e também criação de apps desktop e videojogos indie no tempo livre (biblioteca Pyglet <3, também estou-me a aventurar e a gostar do engine Pando 3D). Esta linguagem é um canivete suíço que dá quase para tudo (desde motores de busca do google, software da nasa até MMORPGs já vi de tudo a ser feito com ela) por isso para os curiosos não é tempo deitado fora.

    Um excelente ponto de aprendizagem de Python (e não só) e o projeto Udacity (resumo do projeto: universidade gratuita e aberta a todo o mundo), onde têm gratuitamente uma curso de introdução à Ciência da Computação todo em Python, ensinando a linguagem passo a passo através de exemplos práticos (neste caso criação de um motor de busca para páginas da net). Os tutores dos vídeos são um Prof. da Univ. da Virgínia e em alguns vídeos o criador do google car, por isso estão bem servidos 🙂 Foi lá que aprendi Python para um projeto do mestrado e safou-me.

    1. Avatar de Fábio Dias

      @Paulo, só por curiosidade, qual é o IDE que usas (se é que usas algum) no caso de usares a framework web2py?

      1. Avatar de Paulo Jorge
        Paulo Jorge

        Sinceramente, para a web (quer seja web2py ou PHP) apenas tenho usado editores como Notpad++ ou Sublime Text 2 (adoro o 2º, muito bom) para tudo, pois encaixa melhor nos meus projetos e forma de trabalhar. Em tempos já tentei o Eclipse e o Netbeans mas fiquei-me sempre pela metade, editores de texto com plugins dedicados a certas coisas que gosto (há plugins com auto-complete de python para esses dois por exemplo – embora não perfeitos). Os meus projetos também não são colossais, o maior é um Portal de Notícias regional e outro o site de um Centro de I&D, dá para controlar bem pois não é uma coisa massiva. Uso IDE’s mais pesados apenas com o Panda3D (Netbeans), em videojogos, pois ajuda a organizar-me uma vez que é algo que faço só de longe a longe no tempo livre e acabo por me esquecer do rumo das coisas ao fim de algum tempo.

      2. Avatar de Paulo Jorge
        Paulo Jorge

        PS: este post tem muita info sobre IDE’s e web2py – http://stackoverflow.com/questions/4075758/a-good-development-environment-setup-for-web2py
        Nunca usei mas sei que há muitas pessoas que gostam também do Wing IDE, e aqui fala como integrar com web2py: http://www.wingware.com/doc/howtos/web2py
        Algo interessante (nunca usei) é também a possibilidade de usar o visual studio para programar em Python (http://www.hanselman.com/blog/OneOfMicrosoftsBestKeptSecretsPythonToolsForVisualStudioPTVS.aspx), mas não sei sobre a integração com web2py ou outras frameworks web.

  8. Avatar de Jesus
    Jesus

    @PedroPinto para programar no iPad dá jeito uma app destas http://omz-software.com/pythonista/ ainda mais que agora está com desconto.
    Cumps.

    1. Avatar de Pedro Pinto

      Excelente..é por isso que eu amo o Pplware…a nossa comunidade é fantástica!

    2. Avatar de Tiago Dias
      Tiago Dias

      Já tinha estudado um pouco essa app mas não cheguei a comprar. Penso que uma grande limitação são as bibliotecas. Com o Pythonista está-se confinado às bibliotecas que vêm com a instalação. Um dos trunfos do python é a versalidade de bibliotecas que se encontram para tudo e mais alguma coisa.
      Para aprender, brincar e fazer umas apps para correr no iOS, é uma boa solução.

  9. Avatar de Miguel
    Miguel

    O Python é um óptimo exemplo de “fazer muito, escrevendo pouco código”, principalmente se a performance for pouco relevante para a tarefa em causa. Exemplo: lidar com ficheiros csv.
    Sou apenas um iniciado, mas sei que há uma diferença enorme entre aqueles que escrevem programas que simplesmente funcionam e pessoas avançadas que escrevem código de qualidade e com boa performance em python.

    1. Avatar de Tiago Dias
      Tiago Dias

      Só um aparte @Miguel, apesar do python ser uma linguagem interpretada é possível ober resultados em termos de performance muito, mas muito satisfatórios. Inclusivamente, há uns meses li um artigo sobre uma comparação entre python e C em que, no desempenho de uma determinada tarefa (não me lembro agora qual) o python levou a melhor.
      Python foi escrito em C e portanto, para quem conhecer a sua implementação e tiver noção dos processos que ocorrem na máquina durante a execução do código, e tiver necessidade de implementar em pouco tempo uma solução, Python é uma excelente escolha.

      1. Avatar de Fantasia
        Fantasia

        OK, então bota-lhe assembly! 🙂

        1. Avatar de Miguel Goyanes
          Miguel Goyanes

          Por acaso gostei bastante do que aprendi de Assembly

          1. Avatar de Fantasia
            Fantasia

            Então agora aplica e faz um joguito em assembly, ou uma coisa que não seja percorrer vectores e fazer ums cálculos… 😉
            É interessante conhecer, mas programar é chato como tudo!

      2. Avatar de Miguel
        Miguel

        Tiago, o Python levar a melhor sobre o C acho muito dificil. Como tu próprio disseste, os interpretadores são implementados em C.

        De qualquer modo, eu não quis dizer que não se consegue boa performance em Python. O Youtube funciona com base em Python. Como disse no fim, o pretendi transmitir é que, na minha perspectiva, desenvolver código com boa performance em Python é bastante mais dificil do que noutras linguagens mas é possível. Os iniciados como eu até fazem código que funcionam mas possivelmente com performances muito abaixo do que seria possível.

  10. Avatar de Francisco
    Francisco

    Estou a fazer o meu projecto de final de curso em python, realmente nunca vi linguagem tão simples e elegante como esta.
    A separação de blocos com simples identações, fim de instrução sem ponto e virgula.
    Só tem o problema que também é um beneficio ao mesmo tempo.
    Tipagem dinâmica, faz com que não seja fácil o IDE saber quais os atributos ou métodos para fazer o autocomplete, por outro lado não obriga a declarar. Também gosto muito de java mas é muito mais verboso comparado com python.

  11. Avatar de Manuel
    Manuel

    É agora que vou aprender a programar!

    Prometo seguir atentamente os tutoriais aqui colocados.

    Abraço,
    Manuel

  12. Avatar de Tiago Dias
    Tiago Dias

    Não querendo roubar o protagonismo à iniciativa, um local bom para aprender as bases de forma rápida é no tutorialspoint. Aliás, neste site pode-se encontrar material didático das mais diversas linguagens e para os mais diversos níveis de dificuldade.
    Para o tutorial de python segue o link:
    http://www.tutorialspoint.com/python/

    1. Avatar de Pedro Pinto

      Nao Rouba nada, é um complemento ao que iremos fazer aqui. Boa fonte

      1. Avatar de Fábio Dias

        Complementando a informação do meu ex-colega Tiago, têm um bom livro sobre a licenca “GNU Free Documentation License” e com vários formatos: http://www.diveintopython.net/ (ou para Python v3.x http://getpython3.com/diveintopython3/)

        Também têm o clássico “How to Think Like a Computer Scientist” (que há em várias linguagens, entre elas Python).

        Opinião pessoal:
        – Ambos os livros são “gratuitos” e de muito boa qualidade.

        – Tempo investido em Python é tempo bem gasto, pois não só melhora as skills na linguagem como cria um nivel de abstracção que, ao mudar de linguagem, é muito util.

        – Vou tentar seguir estes posts e se calhar aprender qualquer coisa 😉

        1. Avatar de Tiago Dias
          Tiago Dias

          Essa foto está desactualizada @Fábio. Vê lá se tratas disso 🙂

          1. Avatar de Fábio Dias

            True, true. Nem sabia que o pplware tinha destas coisas. Well done 🙂

  13. Avatar de simao lemos
    simao lemos

    a meu ver a melhor maneira era ensinar python juntamente com html, nao somente python

    assim o pessoal conhecia outras formas de programar sem ser o asp e o php que sao os mais habituais

  14. Avatar de Nuno
    Nuno

    É uma boa iniciativa como apresentação e introdução à linguagem Python, a linguagem é bastante acessível e poderosa!

    Fica aqui este recurso para quem estiver interessado em algo mais avançado: https://www.edx.org/course/mit/6-00x/introduction-computer-science/586 … falta dizer que este curso foi criado pelo MIT e no final se houver aproveitamento é nos atribuido um certificado.

  15. Avatar de Hugo Matos Rodrigues
    Hugo Matos Rodrigues

    Excelente ideia 😉 já andava à tempos para retomar ao python e acho que vai ser muito bom para todos que querem aprender uma nova LP.

  16. Avatar de Denis Encarnação
    Denis Encarnação

    Uma boa linguagem de programação.
    É tão intuitivo que não é necessário preocuparmos com o python mas sim no problema que deparamos.

  17. Avatar de Renato Sousa

    Bem eu comecei a aprender a programar em Python para usar no meu hobby, animação 3D, no Blender.
    Comecei por aqui: http://www.codeacademy.com/ e depois fiz este curso no coursera:
    https://www.coursera.org/course/interactivepython

    já terminou o curso que começou em Abril mas vai haver nova série em Outubro. Aconselho vivamente estes dois sites para quem quer começar no Python. Começam pelas bases e termina-se em coisas já avançadas.

    Entretanto esta semana descobri que um dos softwares que vou usar profissionalmente, para criação de malhas computacionais para simulação, dá para fazer scripts em Python… ouro sobre azul para parametrizar as tarefas chatas e repetitivas.

  18. Avatar de Carlos
    Carlos

    Para os utilizadores do OSX basta irem ao Terminal e escreverem python e ele abre-se

    Cumps,
    Carlos

  19. Avatar de Ricardo
    Ricardo

    Grande ideia 😉
    Parabéns;)
    MAs já agora esta programação dá para programar o raspberry e usar sensores led´s etc?

    Cumps

  20. Avatar de Danilo Araujo Luiz
    Danilo Araujo Luiz

    Sou brasileiro e acho o Peopleware um dos melhores sites de tecnologia. Gosto muito das iniciativas de colunas de tutoriais. Tem a série Raspberry Pi que é muito boa, tem a série Android que me foi muito útil também, tem diversas séries de tutoriais que ajudam bastante quem se interessa pelo assunto. Gosto também da imparcialidade de vocês que falam de Linux, Mac e Windows sem priorizar nenhum. Vocês podiam lançar um podcast, seria uma boa. Grande abraço equipe do PeopleWare!

  21. Avatar de RJ45
    RJ45

    Excelente ideia. Python é uma linguagem de programação muito fácil de aprender e com uma ampla gama de bibliotecas. Para quem desejar, ao mesmo tempo, entrar no mundo 3D sugiro vpyhton “www.vpython.org” uma biblioteca extraordinária.

  22. Avatar de Bruno Moreira
    Bruno Moreira

    Excelente ideia. Eu comecei a aprender esta linguagem sozinho, só com a ajudar de tutoriais na Internet e estou a achar fácil. 🙂 Já faço uns programinhas simples mas que me dão jeito para o meu trabalho 🙂

    Abraço e continuação de bom trabalho

  23. Avatar de Daniel
    Daniel

    e uma excelente ideia ate porque vai ajudar muitos dos utilizadores que usam o raspberry pi como eu
    como novo utilizador nao e nada facil começar a interagir neste mundo
    cumprimentos

  24. Avatar de honey
    honey

    eu vejo muitos problemas de segurança numa linguagem assim

    1. Avatar de Paulo Jorge
      Paulo Jorge

      Qualquer linguagem de programação com as entranhas abertas na web é perigosa, mas isso é igual para todas, o PHP que é tão usado é igual, se for mal polido pode deitar abaixo um servidor inteiro, para tudo é preciso tomar precauções e cuidado, começando por filtrar os dados que entram de código e tags maliciosas, se houver esse cuidado nada de mal pode acontecer. A framework web2py fá-lo bem por exemplo, e tem sido adotada por entidades institucionais pela sua segurança: http://www.web2py.com/book/default/chapter/01#Security
      Este projeto dedica-se melhorar a segunrança das apps python por exemplo http://www.pythonsecurity.org/

      Um exemplo interessante: O reddit tem mais visitas e visibilidade do que muitos de nós comuns mortais das internets sonharemos ter, e deve sofrer muitos ataques, mas é todo ele construído em Python (inicialmente framework web.py e recentemente Pylos penso eu) :p https://blog.brainsik.net/2009/why-reddit-uses-python

      Se eles não se queixam da segurança do Python é bom sinal…

      Aliás li algures o criador dizer que a transparência da linguagem ajuda a evitar bugs dos pesados e a polir a segurança, mas isso é um extra secundário.

      Resumo: o que quero dizer é que o assunto da segurança está mais nas mãos do programador do que na linguagem de programação, a questão é igual a qualquer outra linguagem, há sites com segurança de caca feitos em PHP tal como há outros com segurança de aço feitos na mesma linguagem.

  25. Avatar de Nosferatu Arucard
    Nosferatu Arucard

    Alguns tablets Android (como o meu ASUS Infinity) trazem um interpretador Python por causa de algu software da marca usar esta linguagem de programaçao, no entanto se instalar o Terminal Emulator tenho acesso ao Python. Depois o uso e´ muito similar ao Linux no modo de Linha de Comandos.
    Agora para quem queira usar bibliotecas do Python em Android, o melhor e´ usar aplicaçoes como o QPython que incluem modulos adicionais.

  26. Avatar de Pedro Miranda
    Pedro Miranda

    Para quando um tutorial de ruby? Isso é que era giro 😀

  27. Avatar de PedroCerqueira
    PedroCerqueira

    Boas, Só vi hoje este tópico e comecei a fazer o tutorial. Porquê não?! 🙂 Bom trabalho Pplware!

    Btw, no Windows não reconhecia o comando python muito provavelmente porque não estava instalado. Instalei a versão 3.3.2 e no print dava erro de sintaxe! Resolve-se metendo entre parêntesis 🙂

    print(“Hello World!”)

    Boa rubrica!

    1. Avatar de Rui Oliveira
      Rui Oliveira

      Existem sérias diferenças entre python 2 (o que estamos a usar nos tuturiais e python3).
      Uma delas é o a função print que passou a ter parenteses e comandos adicionais.

      1. Avatar de PedroCerqueira
        PedroCerqueira

        Sim! Só vi agora a versão 😉 o facto de se usar a versão 2 em detrimento da versão 3 é por algum motivo em especial?

  28. Avatar de Bruno Martins
    Bruno Martins

    Ótima iniciativa e vou ler todas as “partes”. Só uma dica para iniciativas futuras, comecem por explicar como instalar o Python.

  29. Avatar de artur
    artur

    Qual o compilador a usar?

    1. Avatar de Deolinda das Dores
      Deolinda das Dores

      1>=20cm

  30. Avatar de Deolinda das Dores
    Deolinda das Dores

    Pyton é linguagem de panisgas!!!