Buscar

INTRODUÇÃO A PROGRAMAÇÃO (26)

Prévia do material em texto

Fundamentos de programação 
em Python 
Dino Magri 
Introdução a Linguagem Python 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Agenda 
 
•  História 
•  Por que Python? 
•  Instalação 
•  Mão na massa 
2 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
•  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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
•  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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
•  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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
•  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 
Tecnológicas para WEB 
Por que Python? 
8 
http://www.python.org/about/quotes/ 
http://en.wikipedia.org/wiki/Python_(programming_language)#Use 
 
 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É multi-plataforma 
10 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É multi-plataforma, MESMO 
11 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É multi-paradigma 
 
•  Programação Estruturada 
•  Programação Orientada a Objetos 
•  Programação Funcional 
12 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É 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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É multi-paradigma - Programação Estruturada 
 
palavra = 'inconstitucional’ 
 
for letra in palavra: 
 incluir(letra) 
 
for letra in sorted(set(palavra)): 
 print letra, contar(letra) 
14 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É 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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É 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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
É 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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? – Referência: http://goo.gl/jRNcTA 
 
 
 
18 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Por que Python? 
 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Instalação 
 
Windows 
 
 
24 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Instalação 
 
2. Instalação setuptools 
a)  Extrair osetuptools-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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
Mão na Massa! 
26 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
# -*- 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 
MBA em Desenvolvimento de Inovações 
Tecnológicas para WEB 
 
Obrigado! 
 
 
Dúvidas e Comentários 
 
•  Email: contato@dinomagri.com 
 
29

Continue navegando