Python para iniciantes

Preview:

DESCRIPTION

Slide da palestra sobre Python. Programando em Python, 27 de Agosto às 19h (na Fuctura) Por Richardson Lima, administrador de redes do grupo de pesquisas avançadas em redes de computadores, realidade virtual e multimídia na Universidade Federal de Pernambuco e desenvolvedor da comunidade Debian (sobre o curso)

Citation preview

Por Richardson Lima richardsonlima@foxylinux.com 1

Richardson Limasecurityfusion@gmail.com

richardsonlima@foxylinux.comhttp://richardsonlima.foxylinux.com

Por Richardson Lima richardsonlima@foxylinux.com 2

Atenção

• O prazer de construir um programa em Python pode causar dependência

psicológica.

• Brincadeirinhaaaa !!!

Por Richardson Lima richardsonlima@foxylinux.com 3

Esboço • O que é Python?

• Por que usar Python?

• Python, em comparação com outras linguagens.

Por Richardson Lima richardsonlima@foxylinux.com 4

O que é Python?

Por Richardson Lima richardsonlima@foxylinux.com 5

Porquê Python

• Seu nome é uma homenagem ao grupo humorístico inglês Monty Python,adorado por geeks de todo o mundo.

Por Richardson Lima richardsonlima@foxylinux.com 6

O que é Python ?

- Prototipagem rápida de linguagem OO

- Não é apenas uma linguagem de scripting- Não apenas um outro Perl

- Extensível (incremento de novos módulos)C / C ++ / Fortran / qualquer coisa =)

Java (através Jython)- Possível incorporar em aplicações

Por Richardson Lima richardsonlima@foxylinux.com 7

Propriedades de alto nível- Extremamente portátil.

- Unix, Windows, Mac, BeOS, Win / CE, DOS, OS / 2, Amiga, VMS, Cray, ...

- Compilado para código interpretador byte code.- Compilação é implícita e automática.

- Gerenciamento automático de memória.

Por Richardson Lima richardsonlima@foxylinux.com 8

O que é Python

- Livre (open source)Direitos autorais, mas não uso restrito

- Apoio da comunidade de usuários- Design elegante, fácil de aprender

Lê como "pseudo-código"Adequada como primeira linguagem

Por Richardson Lima richardsonlima@foxylinux.com 9

Interfaces para o ...- COM, DCOM, ODBC- Bases de dados comerciais- Java (Jython)- Muitas bibliotecas GUI

• Plataforma independente - Tk, wxWindows, GTK

• Plataforma específica - MFC, MacOS, X11/Motif

Por Richardson Lima richardsonlima@foxylinux.com 10

Propriedades da linguagem - Tudo é um objeto- Módulos, classes, funções- Manipulação de exceção - Digitação dinâmica, polimorfismoStatic scoping

- Operador de sobrecarga (overloading)- Indentação para bloquear estrutura

Por Richardson Lima richardsonlima@foxylinux.com 11

Tipos de dados de alto nível - Números: int, long, float, complex- Strings: imutável- Listas e dicionários: contentores- Outros tipos de e.x. dados binários, expressões regulares, introspecção

Por Richardson Lima richardsonlima@foxylinux.com 12

Por que usar Python?

Por Richardson Lima richardsonlima@foxylinux.com 13

Produtividade!- Tempo de desenvolvimento reduzido,

> A codificação é mais rápida que C, C + +, Java.

- Manutenção de código > Código é extremamente legível

- Menor tempo de aprendizado> Linguagem é muito fácil de aprender

Por Richardson Lima richardsonlima@foxylinux.com 14

Em que pode utilizado?

- Prototipagem rápida- Web scripting (HTML, HTTP, ...)

- Programação ad hoc,aplicações científicas- Processamento de XML (XML-RPC and SOAP )

- Base de dados (Oracle, MySQL, PostgreSQL, ODBC, ...)

- Aplicações GUI

Por Richardson Lima richardsonlima@foxylinux.com 15

Quem está usando?

- LLNL, Fermilab- Grupo CMU no Alice (gráficos 3D)- ObjectDomain (extensão de ferramenta UML)- Infoseek (linguagem scripting)- Industrial Light & Magic (tudo)- Yahoo! (CGI no Yahoo! Mail)- Digital Creations (Zope)- RedHat (Ferramentas de instalação)

Por Richardson Lima richardsonlima@foxylinux.com 16

Criador

• Criada em 1989 pelo holandêsGuido van Rossum no Centrumvoor Wiskunde en Informatica (CWI), em Amsterdã,Holanda.

• O projeto de sistema operacional distribuído Amoeba precisava de uma linguagem de script. Nasce o Python.

Por Richardson Lima richardsonlima@foxylinux.com 17

Python no Brasil• Embratel: monitoramento das interfaces de backbone eclientes de internet, também existem scripts de uso interno.• CPqD: monitoramento de centrais telefônicas.• GPr Sistemas: Desenvolvimento de aplicações sob encomenda,

sistemas como monitoramento de transporte terrestre via satélite são as soluções já feitas.

• Outras que utilizam o Python para sistemas Web, como Varig , Serpro ,Interlegis , ...

• Os sistemas web de gestão de conteúdo usando o trio Python/Zope/Plone vem crescendo a cada dia, principalmente em grandes empresas e em órgãos do governo.

Por Richardson Lima richardsonlima@foxylinux.com 18

Python no mundo

• Apesar da associação cômica, Pythonvem sendo usada em projetos sérios por entidades como Google,Yahoo, NASA, InfoSeek, MCI Worldcom, IBM e Hiway, a maior empresa de hospedagem de web-sites do mundo.

Por Richardson Lima richardsonlima@foxylinux.com 19

Comunidade Mundial

• URL: http://python.org/• Mail: python-list@python.org, python-help@python.org• IRC: irc.freenode.org, canal #python

Por Richardson Lima richardsonlima@foxylinux.com 20

Comunidade Brasileira

• URL: http://www.pythonbrasil.com.br/• Mail: python-brasil@yahoogrupos.com.br• IRC: irc.freenode.org, canal #python-br

Por Richardson Lima richardsonlima@foxylinux.com 21

PythonCOMPARAÇÃO COM

OUTRAS LINGUAGENS

Por Richardson Lima richardsonlima@foxylinux.com 22

Python vs. Perl- Mais fácil de aprender- Boa para o uso ocasional- Código mais legível- Manutenção do código - Menos "mágicas ", efeitos colaterais- Mais "segurança", garantias- Melhor integração Java

Por Richardson Lima richardsonlima@foxylinux.com 23

Python vs. Tcl- Orientação a objeto- Sintaxe mais diferenciada

- Muito mais rápido (mesmo que Tcl 8.x)- Menos necessidade de extensões C

- Se usar extensões C não redefini a sintaxe> extensão, portanto, menos conflitos

- Melhor integração Java

- Python usa Tk como GUI std

Por Richardson Lima richardsonlima@foxylinux.com 24

Python vs. Java- Código 5-10 vezes mais conciso

- Digitação dinâmica - Desenvolvimento muito rápido

- Não tens que compilar- Menos tempo de digitação

- Sim, vai mais devagar !!!- Mas o desenvolvimento é muito mais rápido!

- Utilize Python com Java: Jython!

Por Richardson Lima richardsonlima@foxylinux.com 25

Python em web-applications

• Python é tambem a base do Zope, a mais sofisticada plataforma para construção de web-applications disponível hoje como open-source.

Por Richardson Lima richardsonlima@foxylinux.com 26

Recursos

• Apesar de sua sintaxe simples e clara, Python oferece recursos disponíveis também em linguagens mais complicadas como Java e C++.

Por Richardson Lima richardsonlima@foxylinux.com 27

Detalhes dos recursos

• Programação orientada a objetos

• Um moderno mecanismo para o tratamento de erros

• Possibilidade de executar o mesmo programa sem modificações em várias plataformas

• Recursos avançados de manipulação de textos, listas e outras estruturas de dados

• Módulos, uma forma inteligente de acessar e organizar código a ser reutilizado

Por Richardson Lima richardsonlima@foxylinux.com 28

Orientação a Objeto

• Já vi muita gente dizer que uma linguagem é orientada a objetos porque

você pode criar interfaces gráficas.

• Não tem nada a ver.

Por Richardson Lima richardsonlima@foxylinux.com 29

Detalhe

• Isso não significa, é claro, que não se pode criar aplicações com interfaces gráficas com Python ou com qualquer outra linguagem orientada ou não a objetos.

Por Richardson Lima richardsonlima@foxylinux.com 30

Python OO

• Python é uma linguagem orientada a objetos, e nela quase tudo é um objeto, números, strings,funções, classes, instancias, métodos, ...

Por Richardson Lima richardsonlima@foxylinux.com 31

Python Destrói !!!

• Python nos oferece uma sintaxe simples mas ao mesmo tempo suporta a maior parte das características importantes de linguagens modernas e amplamente utilizadas como Java, C++, Perl e VBScript.

Por Richardson Lima richardsonlima@foxylinux.com 32

Seu primeiro código Python

• >>> print “Oi, Mundo !"• Oi, Mundo !

• Em JAVA !!!• Class Oi Mundo {• public static void main (String[] args) {• System.out.println(“ Oi, Mundo”) ;• }• }

Por Richardson Lima richardsonlima@foxylinux.com 33

Brincando com Python !

• #!/usr/bin/env python• import os• if os.path.isdir("/tmp"):• print "/tmp é um diretório "• else:• print "/tmp não é um diretório "

Por Richardson Lima richardsonlima@foxylinux.com 34

The central philosophy of Python

• In [1]: import this

Por Richardson Lima richardsonlima@foxylinux.com 35

Contato

• Richardson Lima ( hachid )

• Email: richardsonlima@foxylinux.com• Website: http://richardsonlima.foxylinux.com

• aMSN: richardson@hachid.com

• Obtenha esta palestra em:http://www.foxylinux.com/python/PythonPalestra-RichardsonLima-branco.pdf