SlideShare uma empresa Scribd logo
Minicurso
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.
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).
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.
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
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.
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.
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.
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.
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
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).
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).
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.
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.
Exemplo de comentários funcionais: #!/usr/bin/env python # -*- coding: latin1 -*- # Uma linha de código que mostra o resultado de 7 vezes 3 print 7 * 3 Exemplos de linhas quebradas: # Uma linha quebrada por contra-barra a = 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 tela print a, b, c
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 = 78 654 / 3 = 218 378 / 3 = 126 798 / 3 = 266
Alice, welcome to the Wonder-pythonist -land!
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.
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
1. Com seu Eclipse rodando, clique na opção “Find and Install” de &quot;Software Updates&quot; do menu Help”. Será exibida uma janela. Selecione a opção “Search for new features  to install&quot;, e clique em Next. 2. Nesta janela clique na opção “New remote site&quot;. 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 &quot;Yes&quot;.
4. Com seu Eclipse reiniciado, clique na opção &quot;Preferences&quot; da aba &quot;Window&quot;. 5. Na janela que será apresentada, selecione a aba &quot;Pydev&quot; e selecione a opção &quot;Interpreter - Python&quot;. Clicando no botão &quot;New&quot;, 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.
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 &quot;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!’
Algo precisa acontecer!
>>> 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
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
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 &quot;<stdin>&quot;, 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
 
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.
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
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!”\n linha3 =  “Entre nessa voce tambem” print  linha1 + linha2 + linha3
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:
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.
 
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.
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
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…
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!
Completem este código:
 
Exemplo de e xponenciaçã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
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.
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:
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.
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

Mais conteúdo relacionado

Mais procurados (20)

PDF
Arquitetura e sgbd de um banco de dados
diogocbj
 
PPTX
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
alexculpado
 
PDF
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
André Constantino da Silva
 
PDF
Redes - Enderecamento IP
Luiz Arthur
 
PPTX
3° unidade (placa mãe)
André Lopes
 
PPTX
CSS Grid Layout na prática
Laryssa Magalhães
 
PDF
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Marcelo Silva
 
PDF
Python - Introdução
fabiocerqueira
 
PDF
Aula 1 - Introdução a Engenharia de Software
Leinylson Fontinele
 
PDF
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Leinylson Fontinele
 
PDF
Estrutura de dados
Daniel Fernandes Costa
 
PDF
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Leinylson Fontinele
 
PPT
Git e GitHub - Conceitos Básicos
Henrique Silvestre Souza
 
PDF
Introdução a Linguagem de Programação C
Gercélia Ramos
 
PPTX
Tipos de dados em MySQL
Daniel Brandão
 
PDF
Introduction to RDFa
Ivan Herman
 
PDF
Exemplo de Plano de testes
Leandro Rodrigues
 
PDF
Gestão de Projetos de TI em Empresas
Camilo Almendra
 
PPTX
Introdução a programação para a Internet
Leonardo Soares
 
PDF
Introdução ao HTML e CSS
Sérgio Souza Costa
 
Arquitetura e sgbd de um banco de dados
diogocbj
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
alexculpado
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
André Constantino da Silva
 
Redes - Enderecamento IP
Luiz Arthur
 
3° unidade (placa mãe)
André Lopes
 
CSS Grid Layout na prática
Laryssa Magalhães
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Marcelo Silva
 
Python - Introdução
fabiocerqueira
 
Aula 1 - Introdução a Engenharia de Software
Leinylson Fontinele
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Leinylson Fontinele
 
Estrutura de dados
Daniel Fernandes Costa
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Leinylson Fontinele
 
Git e GitHub - Conceitos Básicos
Henrique Silvestre Souza
 
Introdução a Linguagem de Programação C
Gercélia Ramos
 
Tipos de dados em MySQL
Daniel Brandão
 
Introduction to RDFa
Ivan Herman
 
Exemplo de Plano de testes
Leandro Rodrigues
 
Gestão de Projetos de TI em Empresas
Camilo Almendra
 
Introdução a programação para a Internet
Leonardo Soares
 
Introdução ao HTML e CSS
Sérgio Souza Costa
 

Semelhante a Introdução à linguagem python (20)

PDF
Tutorial Python ed. #2
Fabio Spanhol
 
PDF
Python Training #1 - ed4
Fabio Spanhol
 
PDF
Python tutorial-ed3
Fabio Spanhol
 
ODP
Python para desenvolvedores - material apoio (parte I)
Marcelo Barros de Almeida
 
PDF
Tutorial Python - 1
Fabio Spanhol
 
PDF
python_para_desenvolvedores.pdf
ProfIvanSaboia
 
PDF
Livro para desenvolvedores de Python
Alberto Jorge Sardo Monteiro
 
PDF
Python Módulo Básico - Introdução a linguagem Python
antonio sérgio nogueira
 
ODP
Mini Curso Python
armandoroque
 
PDF
Apresentação python fábio jr alves
Grupython Ufla
 
PDF
Python Training #1 ed.6
Fabio Spanhol
 
ODP
The zen of python 2010
Luiz Aldabalde
 
PDF
Python Mini Ccurso Consegi2011
Luiz Aldabalde
 
PDF
Python Training #1 - ed5
Fabio Spanhol
 
PDF
Curso python
Tiago
 
KEY
Python 01
Bruno Catão
 
PDF
Python Training #0.5 ed. 7
Fabio Spanhol
 
PDF
Python Training #1, ed. 6
Fabio Spanhol
 
PDF
Trabalho sobre a linguagem Python
Ricardo Zalla
 
Tutorial Python ed. #2
Fabio Spanhol
 
Python Training #1 - ed4
Fabio Spanhol
 
Python tutorial-ed3
Fabio Spanhol
 
Python para desenvolvedores - material apoio (parte I)
Marcelo Barros de Almeida
 
Tutorial Python - 1
Fabio Spanhol
 
python_para_desenvolvedores.pdf
ProfIvanSaboia
 
Livro para desenvolvedores de Python
Alberto Jorge Sardo Monteiro
 
Python Módulo Básico - Introdução a linguagem Python
antonio sérgio nogueira
 
Mini Curso Python
armandoroque
 
Apresentação python fábio jr alves
Grupython Ufla
 
Python Training #1 ed.6
Fabio Spanhol
 
The zen of python 2010
Luiz Aldabalde
 
Python Mini Ccurso Consegi2011
Luiz Aldabalde
 
Python Training #1 - ed5
Fabio Spanhol
 
Curso python
Tiago
 
Python 01
Bruno Catão
 
Python Training #0.5 ed. 7
Fabio Spanhol
 
Python Training #1, ed. 6
Fabio Spanhol
 
Trabalho sobre a linguagem Python
Ricardo Zalla
 
Anúncio

Mais de Luiz Vieira .´. CISSP, OSCE, GXPN, CEH (15)

PDF
Webgoat como ferramenta de aprendizado
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Segurança Física: Lockpicking
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Cool 3 assembly para linux
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Android forensics the hard work
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Segurança nos ciclos de desenvolvimento de softwares
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Auditoria em sistemas linux - LinuxCon Brazil 2011
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Forense Computacional com Software Livre
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Análise de malware com software livre
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Webcast Luiz Vieira criptografia on-the-fly com software livre
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
ODP
Trusted Computing e Software Livre FISL 11 - 2010
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
PDF
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Webgoat como ferramenta de aprendizado
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Segurança Física: Lockpicking
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Cool 3 assembly para linux
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Android forensics the hard work
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Segurança nos ciclos de desenvolvimento de softwares
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Auditoria em sistemas linux - LinuxCon Brazil 2011
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Forense Computacional com Software Livre
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Análise de malware com software livre
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Webcast Luiz Vieira criptografia on-the-fly com software livre
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Trusted Computing e Software Livre FISL 11 - 2010
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Anúncio

Introdução à linguagem python

  • 2. 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.
  • 3. 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).
  • 4. 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.
  • 5. 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
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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
  • 11. 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).
  • 12. 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).
  • 13. 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.
  • 14. 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.
  • 15. Exemplo de comentários funcionais: #!/usr/bin/env python # -*- coding: latin1 -*- # Uma linha de código que mostra o resultado de 7 vezes 3 print 7 * 3 Exemplos de linhas quebradas: # Uma linha quebrada por contra-barra a = 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 tela print a, b, c
  • 16. 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 = 78 654 / 3 = 218 378 / 3 = 126 798 / 3 = 266
  • 17. Alice, welcome to the Wonder-pythonist -land!
  • 18. 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.
  • 19. 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
  • 20. 1. Com seu Eclipse rodando, clique na opção “Find and Install” de &quot;Software Updates&quot; do menu Help”. Será exibida uma janela. Selecione a opção “Search for new features to install&quot;, e clique em Next. 2. Nesta janela clique na opção “New remote site&quot;. 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 &quot;Yes&quot;.
  • 21. 4. Com seu Eclipse reiniciado, clique na opção &quot;Preferences&quot; da aba &quot;Window&quot;. 5. Na janela que será apresentada, selecione a aba &quot;Pydev&quot; e selecione a opção &quot;Interpreter - Python&quot;. Clicando no botão &quot;New&quot;, 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.
  • 22. 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 &quot;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!’
  • 24. >>> 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
  • 25. 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
  • 26. 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 &quot;<stdin>&quot;, 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
  • 27.  
  • 28. 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.
  • 29. 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
  • 30. 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!”\n linha3 = “Entre nessa voce tambem” print linha1 + linha2 + linha3
  • 31. 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:
  • 32. 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.
  • 33.  
  • 34. 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.
  • 35. 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
  • 36. 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…
  • 37. 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!
  • 39.  
  • 40. Exemplo de e xponenciaçã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
  • 41. 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.
  • 42. 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:
  • 43. 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.
  • 44. 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