introdução à linguagem python

44
Minicurso

Upload: luiz-vieira

Post on 28-Jun-2015

2.639 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Introdução à linguagem python

Minicurso

Page 2: Introdução à linguagem python

• Python foi concebido no final de 1989 por Guido van Rossum. Um dos focos primordiais de Python era aumentar a produtividade do programador.

• Em 1991, Guido publicou o código (nomeado versão 0.9.0) no grupo de discussão alt.sources. Nessa versão já estavam presentes classes com herança, tratamento de exceções, funções e os tipos de dado nativos list, dict, str

• A terceira versão da linguagem foi lançada em dezembro de 2008, chamada Python 3.0 ou Python 3000. Como noticiado desde antes de seu lançamento, houve quebra de compatibilidade com a família 2.x para corrigir falhas que foram descobertas neste padrão, e para limpar os excessos das versões anteriores.

Page 3: Introdução à linguagem python

• O Python foi concebido a partir de outra linguagem existente na época, chamada ABC. Hoje, a linguagem é bem aceita na industria por empresas de alta tecnologia, tais como:

• Google (aplicações Web).• Yahoo (aplicações Web).• Microsoft (IronPython: Python

para .NET).• Nokia (disponível para as linhas

recentes de celulares e PDAs).• Disney (animações 3D).

Page 4: Introdução à linguagem python

• O nome Python foi tirado por Guido van Rossum do programa da TV britânica Monty Python Flying Circus, e existem várias referências na documentação da linguagem ao programa.

• As metas do projeto foram resumidas por Tim Peters em um texto chamado Zen of Python, que está disponível no próprio Python através do comando:

import this

• O texto enfatiza a postura pragmática do Benevolent Dictator for Life (BDFL), como Guido é conhecido na comunidade Python.

Page 5: Introdução à linguagem python

• os conceitos fundamentais da linguagem são simples de entender;

• a sintaxe da linguagem é clara e fácil de aprender;• os tipos pré-definidos incluídos em Python são poderosos, e

ainda assim simples de usar;• a linguagem possui um interpretador de comandos interativo

que permite aprender e testar rapidamente trechos de código;• Python é expressivo, com abstrações de alto nível. Na grande

maioria dos casos, um programa em Python será muito mais curto que seu correspondente escrito em outra linguagem;

• existe suporte para uma diversidade grande de bibliotecas externas;

• Python permite que o programa execute inalterado em múltiplas plataformas;

• Python é pouco punitivo: em geral, 'tudo pode'e há poucas restrições arbitrárias;

• Python é livre! >>> import this

Page 6: Introdução à linguagem python

• O Python possui uma sintaxe clara e concisa, que favorece a legibilidade do código fonte, tornando a linguagem mais produtiva.

• A linguagem inclui diversas estruturas de alto nível (listas, tuplas, dicionários, data / hora, complexos e outras) e uma vasta coleção de módulos prontos para uso, além de frameworks de terceiros que podem ser adicionados.

• Multiparadigma, a linguagem suporta programação modular e funcional, além da orientação a objetos. Mesmo os tipos básicos no Python são objetos.

• A linguagem é interpretada através de bytecode pela máquina virtual Python, tornando o código portável. Com isso é possível compilar aplicações em uma plataforma e rodar em outras ou executar direto do código fonte.

Page 7: Introdução à linguagem python

• Python é um software de código aberto (com licença compatível com a General Public License (GPL), porém menos restritiva, permitindo que o Python seja incorporados em produtos proprietários) e a especificação da linguagem é mantida pela Python Software Foundation (PSF).

• Python é muito utilizado como linguagem script em vários softwares, permitindo automatizar tarefas e adicionar novas funcionalidades, entre eles: BrOffice.org, PostgreSQL, Blender e GIMP.

• Também é possível integrar o Python a outras linguagens, como a Linguagem C. Em termos gerais, o Python apresenta muitas similaridades com outras linguagens dinâmicas, como Perl e Ruby.

Page 8: Introdução à linguagem python

• Python utiliza tipagem dinâmica, o que significa que o tipo de uma variável é inferido pelo interpretador em tempo de execução (isto é conhecido como Duck Typing). No momento em que uma variável é criada através de atribuição, o interpretador define um tipo para a variável, com as operações que podem ser aplicadas.

• O Python tem tipagem forte, ou seja, ele verifica se as operações são válidas e não faz coerções automáticas entre tipos incompatíveis. Para realizar a operação entre tipos não compatíveis, é necessário converter explicitamente o tipo da variável ou variáveis antes da operação.

Page 9: Introdução à linguagem python

• O interpretador Python pode ser usado de forma interativa, na qual as linhas de código são digitadas em um prompt (linha de comando) semelhante ao shell do sistema operacional.

• Para evocar o modo interativo basta rodar o Python (se ele estiver no path):

python

• Ele estará pronto para receber comandos surgir o prompt “>>>” na tela.

• O modo interativo é uma característica diferencial da linguagem, pois é possível testar e modificar o código de um programa antes da inclusão do código nos programas, por exemplo.

Page 10: Introdução à linguagem python

• Exemplo do Python sendo usado de forma interativa (com o shell PyCrust):

• Os arquivos fonte normalmente são identificados pela extensão “.py” e podem ser executados diretamente pelo interpretador:

python apl.py

Page 11: Introdução à linguagem python

• Integrated Development Environments (IDEs) são pacotes de software integram várias ferramentas de desenvolvimento em um ambiente integrado, com o objetivo de aumentar a produtividade do desenvolvedor.

• Entre as IDEs que suportam Python, encontram-se:• SPE (Stani's Python Editor).• Eric.• Open Komodo.• PyDev (plugin para a IDE Eclipse).

• Esses editores suportam diversas linguagens de programação, dentre elas o Python:• SciTE.• Notepad++.

Além do próprio Shell padrão do Python, existem os outros disponíveis:• PyCrust (gráfico).• Ipython (texto).

Page 12: Introdução à linguagem python

• Empacotadores são utilitários que empacotam o bytecode com o interpretador e outras dependências, em um ou mais executáveis e arquivos compactados, permitindo que o aplicativo rode em máquinas sem Python instalado.

• Entre empacotadores feitos para Python, estão disponíveis:

• Py2exe (apenas para Windows).• cx_Freeze (portável).

Page 13: Introdução à linguagem python

• Frameworks são coleções de componentes de software (bibliotecas, utilitários e outros) que foram projetados para serem utilizados por outros sistemas.

• Alguns frameworks disponíveis mais conhecidos:

• Web: Django, TurboGears e Zope.• Interface gráfica: wxPython, PyGTK e PyQT.• Processamento cientifico: NumPy.• Processamento de imagens: PIL.• 2D: Matplotlib.• 3D: Visual Python, PyOpenGL e Python Ogre.• Mapeamento objeto-relacional: SQLAlchemy

e SQLObject.

Page 14: Introdução à linguagem python

• Um programa feito em Python é constituído de linhas, que podem continuar nas linhas seguintes, pelo uso do caractere de barra invertida (\) ao final da linha ou parênteses, colchetes ou chaves, em expressões que utilizam tais caracteres.

• O caractere # marca o inicio de comentário. Qualquer texto depois do # será ignorado até o fim da linha , com exceção dos comentários funcionais.

• Comentários funcionais geralmente são usados para:

• alterar a codificação do arquivo fonte do programa acrescentando um comentário com o texto “#-*- coding: <encoding> -*#-” no inicio do arquivo.

• definir o interpretador que será utilizado para rodar o programa em sistemas UNIX, através de um comentário começando com “#!” no inicio do arquivo.

Page 15: Introdução à linguagem python

• Exemplo de comentários funcionais:

#!/usr/bin/env python# -*- coding: latin1 -*-# Uma linha de código que mostra o resultado de 7 vezes 3print 7 * 3

• Exemplos de linhas quebradas:

# Uma linha quebrada por contra-barraa = 7 * 3 + \ 5 / 2

# Uma lista (quebrada por vírgula)b = ['a', 'b', 'c‘,'d', 'e']

# Uma chamada de função (quebrada por vírgula)c = range(1,11)

# imprime todos na telaprint a, b, c

Page 16: Introdução à linguagem python

• Em Python, os blocos de código são delimitados pelo uso de indentação. A indentação deve ser constante no bloco de código, porém é considerada uma boa prática manter a consistência no projeto todo e evitar a mistura tabulações e espaços.

• Exemplo:# Para i na lista 234, 654, 378, 798:for i in [234, 654, 378, 798]: # Se o resto dividindo por 3 for igual a zero:

if i % 3 == 0: # Imprime... print i, '/ 3 =', i / 3

• Saída:234 / 3 = 78654 / 3 = 218378 / 3 = 126798 / 3 = 266

Page 17: Introdução à linguagem python

Alice, welcome to the Wonder-pythonist -land!

Page 18: Introdução à linguagem python

Esta linguagem de programação esta disponível para várias plataformas, que seguem abaixo :

• Unix; • Sun Solaris;• FreeBSD;• OpenBSD;• IBM-AIX;• HP/UX;• IRIX;• MS-Windows (NT/2000/2003/CE);• Macintosh;• IBM-OS/2;• DOS;• PalmOS;• BeOS;• Amiga;• VMS/OpenVMS;• QNX;• VxWorks. Para obter o Python acesse o endereço eletrônico: http://www.python.org e procure por

downloads.

Page 19: Introdução à linguagem python

Para usuários das mais diversas distribuições de GNU/Linux que possuem o APT, como o Debian, basta apenas um:

$ apt-get install python Você também pode acessar o site http://www.python.org e baixar a versão mais

recente do Python. Quando este curso foi escrito, estávamos na versão 2.4.2. Não há problemas em baixar uma versão mais nova caso ela exista.

Entre na pasta onde foi baixado o arquivo, faça o logon como root e siga as instruções:• digite tar xzvf Python-2.4.2.tgz;• acesse o diretório e execute ./configure;• execute make.Neste momento, o Python já esta operacional, porém não está instalado em /usr/local

no system. Faça o seguinte:• para instalar execute: make install

Em máquinas Windows, após instalar o Python, para adicioná-lo ao path do sistema, digite o comando a seguir no prompt de comando:

set path=%path%;C:\python26

Page 20: Introdução à linguagem python

• 1. Com seu Eclipse rodando, clique na opção “Find and Install” de "Software Updates" do menu Help”. Será exibida uma janela. Selecione a opção “Search for new features to install", e clique em Next.

• 2. Nesta janela clique na opção “New remote site". Será apresentada uma janela na qual você deve inserir o endereço http://pydev.sourceforge.net/updates e clicar em Ok.

• 3. Após isto você terá a opção de instalação do Pydev. Selecione a caixa e clique no botão “Finish“.

• Ele começará a carregar a instalação e lhe será apresentada uma tela com a licença do plugin. Basta aceitar a licença e seguir em frente. Após isto o Eclipse começará a baixar os arquivos necessários e realizará a instalação em si.

• Após concluída, lhe será pedido para reiniciar o Eclipse para que as alterações surtam efeito. Pode confirmar com "Yes".

Page 21: Introdução à linguagem python

• 4. Com seu Eclipse reiniciado, clique na opção "Preferences" da aba "Window".

• 5. Na janela que será apresentada, selecione a aba "Pydev" e selecione a opção "Interpreter - Python". Clicando no botão "New", do canto superior direito, aponte para o caminho onde se encontra seu interpretador Python (no Linux normalmente será /usr/bin/python).

• Repare que agora você terá um interpretador Python instalado, bem como uma lista de PATHs para o Python em seu sistema. Novamente confirme clicando em Ok, encerrando aqui nossa configuração do Eclipse para programação com Python.

Page 22: Introdução à linguagem python

• Vamos começar criando um novo projeto seguindo o caminho: File > New > Pydev Project.

• Escolha um nome para seu projeto e confirme a criação do mesmo clicando em "Finish”.

• Uma vez que seu projeto foi criado, ele será listado na barra de projetos localizada no canto esquerdo do Eclipse. Clicando com o botão direito do mouse na pasta src de seu projeto, escolha a opção New > File.

• Com seu arquivo em branco, pode fazer seu teste do Python com qualquer código simples, como por exemplo:

print ‘Ola mundo!’

Page 23: Introdução à linguagem python

Algo precisa acontecer!

Page 24: Introdução à linguagem python

>>> 2+2 4 >>> # This is a comment ... 2+2 4 >>> 2+2 # and a comment on the same line as code 4 >>> (50-5*6)/4 5 >>> # Integer division returns the floor: ... 7/3 2 >>> 7/-3 -3

Page 25: Introdução à linguagem python

O sinal de “=“ é utilizado para atribuir valores à uma variável:• >>> larg = 20 • >>> alt = 5*9 • >>> larg * alt• 900

Além disso, é possível atribuir um mesmo valor à várias variáveis numa mesma linha:

• >>> x = y = z = 0 # Zero x, y e z • >>> x • 0 • >>> y • 0 • >>> z • 0

Page 26: Introdução à linguagem python

Antes de acessarmos uma variável, ela precisa ser definida, senão um erro ocorrerá:

• >>> # tente acessar uma variável não definida• ... n • Traceback (most recent call last): • File "<stdin>", line 1, in <module> • NameError: name 'n' is not defined

Operações com ponto flutuante:• >>> 3 * 3.75 / 1.5 • 7.5• >>> 7.0 / 2 • 3.5

Page 27: Introdução à linguagem python
Page 28: Introdução à linguagem python

• Uma variável é um espaço em memória utilizado para guardar alguma informação:

• Explicando o código: A primeira linha diz que o código deverá ser interpretado pelo Python, dessa forma podemos roda-lo como qualquer outro programa (sem chamar o interpretador na linha de comando). 

• Na segunda linha nós reservamos um espaço em memória e lhe damos o nome de texto, dentro deste espaço guardamos a informação “Oi, como vai voce?”, e a terceira linha utiliza uma função do Python chamada print, esta função imprime na saída padrão (em geral o monitor) o conteúdo de alguma variável.

Page 29: Introdução à linguagem python

• Agora vamos exibir um texto com 3 linhas sendo que cada linha estará em uma variável:

linha1 = “Aulas de Python com o prof. Luiz”linha2 = “Com dicas e exercícios!”linha3 = “Entre nessa voce tambem”print linha1 + linha2 + linha3

Page 30: Introdução à linguagem python

• Aqui foi usado o operador + (mais) para “concatenar” (juntar, uma no final da outra) os valores das variáveis. O problema é que foi tudo exibido na mesma linha. Para resolver essa questão vamos simplesmente adicionar um caractere especial no fim dos dois primeiros textos (variáveis linha1 e linha2), um caractere de final de linha, esse caractere é o \n, então o código ficará assim:

linha1 = “Aulas de Python com o prof. Luiz\n”linha2 = “Com dicas e exercícios!”\nlinha3 = “Entre nessa voce tambem”print linha1 + linha2 + linha3

Page 31: Introdução à linguagem python

• Outro exemplo de código com quebra de linha, porém com todo o texto numa mesma linha:

• Mais um exemplo de quebra de linha, mas agora usando aspas tríplices:

Page 32: Introdução à linguagem python

• Esse exercício é bem fácil, escreva um script Python que mostre a mensagem abaixo das três formas mostradas aqui: uma linha por variável, todas as linhas em uma variável e usando as aspas tríplices.

• Mensagem que deve ser exibida: Com grandes poderes vêm grandes responsabilidades. O bem de um e o bem de todos. Sou o que sou devido ao que todos somos.

Page 33: Introdução à linguagem python
Page 34: Introdução à linguagem python

• Comentários são pequenos textos, em geral de uma linha, que explicam alguma coisa no código, um exemplo:

• A linha 1 tem apenas um comentário, já na linha 3 tem uma função print() e também um comentário.

Page 35: Introdução à linguagem python

• Imagine que você quer documentar a sua função, sim ela é complexa e precisa de uma boa documentação, o que você faz? Abre um novo documento em um editor de textos como o Open Office Writer? Escreve em um caderno? Escreve em um saco de pão? Nãããooo, vamos utilizar um recurso do Python que são as Docstrings. Veja o exemplo ao lado.

• Quando um outro desenvolvedor for utilizar a sua função ele pode chamar o método __doc__ dela e ver esta documentação

Page 36: Introdução à linguagem python

• As variáveis podem conter números de uma forma muito fácil, basta usar o operador de atribuição (sinal de = ) para isso. As operações entre os números também é super simples, você pode usar os operadores + (adição), – (subtração), / (divisão) e * (multiplicação), veja abaixo:

• Até a linha 9 estava tudo tranquilo, não? Aí o Python disse que 10 dividido por 3 é igual a três! Como assim? O correto não seria 3.33? É isso mesmo, o correto seria ele mostrar as casas decimais, mas neste ponto o Python interpreta os números sempre como inteiros, o que nos leva aos…

Page 37: Introdução à linguagem python

• Existem tipos diferentes de números, existem os inteiros, os reais… E no exemplo anterior fornecemos dois números inteiros para o Python (3 e 10) e ele nos retornou o resultado inteiro da divisão que é o 3.

• Os integer (inteiros) são os que usamos no exemplo, eles têm um limite que varia de acordo com o sistema operacional. Outros dois tipos de números interessantes no Python são os números float (reais) e os long (longos)…

• Como dizemos que um número é integer,float ou long? Assim:

• Assim conseguimos resolver o probleminha da divisão no nosso exemplo!

Page 38: Introdução à linguagem python

• Completem este código:

Page 39: Introdução à linguagem python
Page 40: Introdução à linguagem python

• Exemplo de exponenciação:• 2³ = 8

• Mas como fazer isso no Python? Uma primeira forma seria esta:• a = 2 * 2 * 2

• Tudo bem, mas se eu quero fazer 2²³? Vou fazer isso:• a = 2 * 2 * 2 * 2 * 2 … em quanto estava mesmo?…

• No Python a exponenciação é feita assim:• a = 2 ** 23

Page 41: Introdução à linguagem python

• A radiciação é o contrário da exponenciação e também é conhecida nos círculos sociais como “raiz”. A raíz pode ser quadrada, cúbica ou de índice n. Aqui vamos usar uma função do Python que nos retorna a raiz quadrada de um número. Aqui também o nosso ponto de partida para as bibliotecas do Python:

• Resumindo, a função sqrt() da biblioteca math nos diz a raiz quadrada do número 9.

Page 42: Introdução à linguagem python

• De forma simplificada as bibliotecas são componentes que oferecem funções e classes para nossos programas.

• As Funções são rotinas pré estabelecidas que fazem alguma coisa específica e podem ou não retornar algum resultado.

• As funções podem ou não receber parâmetros. Os parâmetros são informações que passamos para as funções. Quando há mais de um parâmetro nós usamos vírgulas para separa-los. Veja um exemplo:

Page 43: Introdução à linguagem python

• Vamos voltar à biblioteca math. Essa biblioteca nos oferece algumas funções além da sqrt, vou mostrar uma listinha abaixo:

• math.sqrt(numero): Retorna a raíz quadrada do núme0ro.• math.cos(numero): Retorna o cosseno do número em

radiano.• math.sin(numero): Retorna o seno do número em radiano.• math.tan(numero): Retorna a tangente do número em

radiano.• math.radians(numero): Converte o angulo ‘numero’ de graus

para radiano.• math.pi: Não é bem uma função, está mais para uma variável

com o número pi (3.1415926535897931).• math.hypot(x, y): Retorna a hipotenusa dos números

(catetos) fornecidos.

Page 44: Introdução à linguagem python

• 1) Calcule e exiba na tela a área do círculo de raio 4cm.

• 2) Calcule e exiba na tela as raízes de 9, 16, 20, 25 e 42.

• 3) Calcule a hipotenusa de um triangulo cujos catetos são 9cm e 4cm. (sem usar a função math.hypot hehe)

• 4) Calcule o volume do cilindro de raio 6cm e altura 5cm.

• Obs: As fórmulas dos ex.1 e 4 são: Área do círculo: PI * Raio² Volume do cilindro: PI * Raio² * Altura