Vamos começar a programar em Python? (Parte I)
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.
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! |
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
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?
Este artigo tem mais de um ano
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 😉
Yups, é isso 🙂
Epá nem tinha reparado nessa “gralha”! @Pedro Pinto, começar ensinar Python desta maneira é totalmente antipedagógico 😛
Eh eh eh
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. 😛
Para quem está habituado ao C, vai achar esta linguagem algo confusa. Pelo menos comigo aconteceu.
É 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.
Parece que é desta que vou pegar no python… 🙂
Estou desejoso de ver os próximos artigos.
É desta que vou conhecer o Python 🙂
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 😉
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.
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 😉
É 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.
@Paulo, só por curiosidade, qual é o IDE que usas (se é que usas algum) no caso de usares a framework web2py?
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.
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.
@PedroPinto para programar no iPad dá jeito uma app destas http://omz-software.com/pythonista/ ainda mais que agora está com desconto.
Cumps.
Excelente..é por isso que eu amo o Pplware…a nossa comunidade é fantástica!
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.
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.
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.
OK, então bota-lhe assembly! 🙂
Por acaso gostei bastante do que aprendi de Assembly
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!
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.
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.
É agora que vou aprender a programar!
Prometo seguir atentamente os tutoriais aqui colocados.
Abraço,
Manuel
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/
Nao Rouba nada, é um complemento ao que iremos fazer aqui. Boa fonte
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 😉
Essa foto está desactualizada @Fábio. Vê lá se tratas disso 🙂
True, true. Nem sabia que o pplware tinha destas coisas. Well done 🙂
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
É 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.
Um bom site sobre Python:
http://www.python.org.br/wiki/AprendaProgramar
Excelente ideia 😉 já andava à tempos para retomar ao python e acho que vai ser muito bom para todos que querem aprender uma nova LP.
Uma boa linguagem de programação.
É tão intuitivo que não é necessário preocuparmos com o python mas sim no problema que deparamos.
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.
Para os utilizadores do OSX basta irem ao Terminal e escreverem python e ele abre-se
Cumps,
Carlos
Grande ideia 😉
Parabéns;)
MAs já agora esta programação dá para programar o raspberry e usar sensores led´s etc?
Cumps
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!
Obrigado Danilo 🙂
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.
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
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
eu vejo muitos problemas de segurança numa linguagem assim
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.
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.
(y)
Para quando um tutorial de ruby? Isso é que era giro 😀
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!
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.
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?
Compilar para windows
http://www.baixaki.com.br/download/python-interpreter-compiler-for-windows.htm
Ótima iniciativa e vou ler todas as “partes”. Só uma dica para iniciativas futuras, comecem por explicar como instalar o Python.
Qual o compilador a usar?
1>=20cm
Pyton é linguagem de panisgas!!!