Fundamentos de programação em Python Introdução a Linguagem Python Dino Magri
Agenda História Instalação Mão na massa 2
História Guido van Rossum Universidade de Amsterdã - 1982 2005-2012 Google 2013 Dropbox Iniciou a implementação em Dezembro de 1989 Python 2.0 em 2000 Python 3.0 em 2008 Versão 2.7.5 e 3.3.2 É Python! E não Phyton, Pyton, Phython,... Linguagem de Altíssimo Nível (VHLL) Ambiente interativo Licença de código aberto, compatível com a GPL 3
Simples, Legível, Clara e Elegante Escrever um simples nome, Seja bem vindo(a) Java public class Hello{ public static void main(string args[]) { java.util.scanner s = new java.util.scanner(system.in); System.out.print("Digite seu nome:"); String nome = s.nextline(); System.out.println("\n" + nome + ", Seja bem vindo(a) :)\n"); } } 4
Simples, Legível, Clara e Elegante Escrever um simples nome, Seja bem vindo(a) C #include <stdio.h> int main(){ char nome[200]; printf("digite seu nome: "); scanf("%s", nome); printf("\n %s, Seja bem vindo(a)\n", nome); return 0; } 5
Simples, Legível, Clara e Elegante Escrever um simples nome, Seja bem vindo(a) Python nome = raw_input('digite seu nome: ') print ("\n%s, Seja bem vindo(a) :)\n" % nome); Python oferece mais facilidade para entender. Vai direto ao ponto. Simples de usar. Foco no problema, sem perder tempo na sintaxe. 6
Baterias Incluídas Muitos recursos já estão prontos para serem utilizados, alguns deles: Banco de dados (Postgres, MySQL, SQLServer, sqlite, ODBC) Geração de gráficos (matplotlib) Protocolos de Rede (TCP, UDP, SimpleHTTPServer, urllib, ftplib, poplib, smtplib, telnetlib, entre outros) Web (Django, Web2py, Zope/Plone, Pylons, TurboGears) Criptografia Interface Gráfica (Tkinter, wxpython, PyGtk, PyQt, PyKDE, Pythonwin) Computação gráfica (PyOpenGL, PyGame, PyCUDA, PyGPU) Ciência (Numarray, Numpy, SciPy, BioPython, AstroPy) PyScience - http://pyscience-brasil.wikidot.com/ Processamento de Imagens (PIL, PythonMagick, Gimp-python, OpenCV) 7
MBA em Desenvolvimento de Inovações http://www.python.org/about/quotes/ http://en.wikipedia.org/wiki/python_(programming_language)#use 8
Conversa com outras linguagens Cython - http://cython.org/ - C/C++ Jython - http://www.jython.org/ - Java IronPython - http://ironpython.net/ -.NET PyPy - http://pypy.org/ - Python Python for Delphi - https://code.google.com/p/python4delphi/ - Delphi LunaticPython - http://labix.org/lunatic-python - Lua 9
É multi-plataforma 10
É multi-plataforma, MESMO 11
É multi-paradigma Programação Estruturada Programação Orientada a Objetos Programação Funcional 12
É multi-paradigma - Programação Estruturada dic = {} def incluir(item): quantidade = dic.get(item, 0) + 1 dic[item] = quantidade def contar(item): return dic[item] 13
É multi-paradigma - Programação Estruturada palavra = 'inconstitucional for letra in palavra: incluir(letra) for letra in sorted(set(palavra)): print letra, contar(letra) 14
É multi-paradigma - Programação Orientada a Objetos class Contador(object): def init (self): self.dic = {} def incluir(self, item): quantidade = self.dic.get(item, 0) + 1 self.dic[item] = quantidade def contar(self, item): return self.dic[item] 15
É multi-paradigma - Programação Orientada a Objetos cont = Contador() palavra = 'inconstitucional' for letra in palavra: cont.incluir(letra) for letra in sorted(set(palavra)): print letra, cont.contar(letra) 16
É multi-paradigma - Programação Funcional Fibonnaci 10 primeiro números print map(lambda x,f=lambda x,f:(x<=1) or (f(x-1,f)+f(x-2,f)): int(f(x,f)),range(10)) 17
Referência: http://goo.gl/jrncta 18
Comunidade e Documentação PT_BR Lista de Email: 2689 Dados do dia 15/09/2013 ás 9:30 PM https://groups.google.com/forum/#!aboutgroup/python-brasil 19
Comunidade e Documentação PT_BR Tutorial de Python - http://turing.com.br/pydoc/2.7/tutorial/index.html Aprenda Computação com Python - https://code.google.com/p/aprendacompy/ Python para desenvolvedores - http://ark4n.wordpress.com/python/ Introdução a programação com Python - http://www.nilo.pro.br/iprog/ Livros e outros Links - http://www.python.org.br/wiki/aprendamais 20
Instalação Linux & Mac Linux A maioria das distribuições Linux já possui o interpretador Python préinstalado. Mac Também já acompanham um interpretador Python pré-instalado que pode ser atualizado com a última versão no site oficial da linguagem Python 21
Instalação Windows 1. Acesse o site www.python.org/getit, baixe a versão atual e siga os passos (o famoso, next, next, next, finish J ) 2. Baixar o setuptools para instalar as baterias extras - https:// pypi.python.org/pypi/setuptools/1.1.5#windows 22
Instalação Windows 1. Configurar a variável de ambiente (path) para poder executar scripts pelo terminal 1. Acesse Painel de Controle -> Sistema e Segurança -> Sistema e clicar na opção Configurações avançadas do sistema do lado esquerdo. 2. Na aba Avançado, clicar no botão Variáveis de Ambiente 3. Selecionar a variável do sistema Path e clique no botão Editar 4. Adicionar o diretório de instalação do Python na caixa de texto, normalmente C:\Python27 23
Instalação Windows 24
Instalação 2. Instalação setuptools a) Extrair o setuptools-1.1.x.tar.gz b) Acessar a pasta via terminal (cmd ou powershell) e digitar a) python ez_setup-py c) Incluir no Path o C:\Python\2X\Scripts 25
Mão na Massa! 26
Mão na Massa! Antes de começar: 1. Abra o terminar (cmd ou powershell) e digite: easy_install web.py 2. Agora abra seu editor de texto preferido 27
# -*- coding: utf-8 -*- import web urls = ( '/', 'index' ) class index: def GET(self): return "Oi, mundo!" if name == " main ": app = web.application(urls, globals()) app.run() 28
Obrigado! Dúvidas e Comentários Email: contato@dinomagri.com 29