Introdução a
Python
FLISOL 2015 – Cariri/CE
Guilherme Esmeraldo
[email protected]
www.projetopinguim.com.br
Roteiro
Breve Histórico
Características
Por que Python?
Quem Usa?
Como Usar?
PLUS!
Breve Histórico
Linguagem Criada em 1990, Por Guido
van Rossun
Foco em usuários como físicos e
engenheiros
Python foi concebida com influência de
uma linguagem chamada ABC.
– BASIC, ALGOL 68, Modula-2, Modula-3, C/C++,
Haskell, Lisp e Perl.
Características
●
Multiplataforma:
– Linux/Unix, Windows, Symbian, MacOSX, Android, iOS, etc
●
Multiparadigma:
– Procedural, Orientado a Objetos e Funcional
Características
Linguagem Interpretada
Tipagem dinâmica
Controle de Bloco é feita por indentação
Oferece tipos de alto nível
E orientado a objetos
Biblioteca padrão muito rica
Fácil aprendizado
Por que Python?
Por que Python?
● Monty Python!
● Alta produtividade (estudos mostram 2-10x mais que C/C++ e Java)
● Legibilidade de código
● Fácil aprendizado
● Facilmente extensível (C/C++, Java)
● Open Source
● Madura, desde 1991
25/04/15
Quem Usa?
Google O'Reilly Oracle
Facebook IDGNow Ubuntu/Canonical
Youtube Linux Magazine
Red Hat
Instagram Veja Larousse
Raspberry PI
OAB/SP
Yahoo Light & Magic
Editora Moderna
Microsoft D-Link
Serpro
Nokia Portal do Governo Rackspace
Disney Presidência da República Forecastwatch
Funceme Câmara de Deputados Citrix
Cern UNESCO Globo
NASA
ITA ...
Por que Python?
●
Prototipação rápida
●
Desenvolvimento Web
●
Acesso a banco de dados
●
Manipulação de string
●
Computação gráfica e científica
●
Jogos
●
3D
●
Modelagem de Hardware/Automação
●
Processamento de Alto Desempenho?!?!
●
...
Como Usar?
Nas linguagens Interpretadas é executada
utilizando o interpretador lê o código fonte e
interpreta diretamente, durante a sua execução.
Tanto pode utilizar no Shell ou Uma IDE
Instalando
Instalando
Entre no link http://www.python.org/getit/ e
baixe para sua plataforma.
No windows: clique duas vezes, next, next, … e finish.
No linux: qualquer distribuíção já vem com Python!
IDE Disponíveis
Idle :
Já vem com o Python. É bem simples de ser usado.
Komodo-Edit:
E uma excelente opção de editor, bastante rico em recursos tais como
autocomplete, multi-language e outros.
Eclipse:
Ideal para desenvolvimento Java. Mas existem plugins para se desenvolver
em Python.
Pycham:
E proprietário, Possui um conjunto de ferramentas úteis para um
desenvolvimento produtivo.
Utilizando o Shell no LINUX
Para chamar o interpretador Python apenas digite “python”
no prompt do shell:
$ python
Python 2.5.1 (r251:54863, Sep 4 2007, 19:00:19)
[GCC 4.1.2] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
>>>
Quando o shell é iniciado aparecerão três ‘>’ (“>>>”)
indicando que ele está ativo e pode receber comandos
Utilizando o Shell no LINUX
● Para obter informações como métodos e atributos de um objeto
basta executar o comando “dir”. Obs.: Tudo em Python é objeto!
>>>dir(“string de teste”)
<tudo sobre strings!>
>>>
● Para visualizar a documentação de um Objeto basta executar o
comando “help”
>>>help(1000)
<Documentação
>>>
25/04/15
Utilizando o Shell no LINUX
● Para repetir o comando anterior pode-se usar
– a seta para cima
– Digitar ‘_’
● Para navegar entre os comando já executados
– basta usar as setas para cima e para baixo
● Para obter ajuda geral executa-se o comando “help()”
● Para sair do help “quit”
● Para interromper algum comando “ctrl + k”
25/04/15
Utilizando o IDLE
Acessar IDLE, depois em file e New
File (ctrl + n), abrindo o editor para
desenvolver o programa .
“Olá, Mundo!”
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!"); JAVA
}
}
Print “Hello, World!”
Python
Saída
No Shell No IDLE
Salvar com a extensão .py Para salvar, file e save (Ctrl+S)
e com extensão .py
Exemplo: alomundo.py
Em seguida em Run, para rodar
Entre na pasta que está o arquivo
o programa.
cd nomedapasta
Em seguida, rodar o comando:
python alomundo.py
Definições de Variáveis
Sintaxe
nomeDaVariavel = valorAtribuido
nome = “python” #String
num = 1 # valor inteiro
preco = 10.99 # ponto flutuante
t = True # booleano
Descobrir o tipo atual de uma variável, utiliza a função type()
type(nome)
Entrada
Sintaxe:
nomeDaVariavel = input(’Texto para Saída’)
Para capturar informações do usuário podemos
usar duas funções:
input(“mensagem”)
Espera que o usuários digite
comandos ou valores
raw_input(“mensagem”)
Espera strings
Delimitações
Uso de “;” no fim de comandos não é obrigatório
Blocos delimitados por indentação
Não é um erro
sintático, mas é
desnecessário
def soma(a): e portanto
. . . .return a+1 deselegante
print soma(10)
Comentários
Comentários de são feitos usando ‘#’
Para comentários de bloco pode-se usar string multilinhas
com ‘”””’
“”” def inc(a):
. . . .return a+1”””
#print inc(10)
Codificação do Arquivo
A codificação é necessário para suportar caracteres que
não fazem parte da linguagem inglesa, no código fonte do
programa
o texto “#-*- coding: <encoding> -*#-” no inicio do
arquivo, no qual <encoding> é a codificação do arquivo
(geralmente latin1 ou utf-8)
#!/usr/bin/env python Indica o
caminho para o
#-*-coding:utf-8-*- interpretador
usado em
sistemas UNIX
Importando Módulos Externos
Existe duas Forma de Importar Módulos externos:
Pelo comando import:
import <modulo>
Pelo comando from:
from<modulo>import
<moduloespecifico>
'>>> import this'
25/04/15
Controle de Fluxo
Nada de parênteses! Nada de chaves!
IF
if <condição>:
<bloco de código>
elif <condição>:
<bloco de código>
else:
<bloco de código>
Usando If
#! /usr/bin/python
# -*- coding: iso-8859-1 -*-
x = input("Entre com um numero inteiro: ")
if x < 0:
print 'Numero negativo'
elif x == 0:
print 'Zero'
elif x == 1:
print 'Um'
else:
print 'Numero positivo'
Controle de Fluxo
O loop While, tem como função repetir um
bloco de comando ate que aconteça uma
parada.
while expressão2:
Comando3
...
Controle de Fluxo
O for em Python podemos “varrer” uma sequencia
que se difere de outra linguagens por ser utilizado
como iterador de progressão aritmética.
for variavel in rage(ni,nf-1):
for variavel in lista Cria uma lista a partir do
inteiro ni até o inteiro
nf-1
Exemplo for
for contador in range(1,6):
print contador
1
2
3
4
5
Estrutura de Dados: Listas [ ]
É uma sequência de valores indexadas por um inteiro.
Uma lista pode conter qualquer tipo de valor, incluindo
valores de tipos mistos.
numeros = [1, 2, 3]
nomes = [ 'alberto', 'carlos',
'simone' ]
misto = [ 1,2,'alberto',3.5,'simone' ]
listas = [ numeros, nomes, misto ]
Estrutura de Dados: Listas [ ]
Os elementos da lista podem ser acessados por meio de
índices que vão de 0 até o comprimento da lista-1
lista = [ ‘maria’,’paulo’,’jose’,’carlos’]
0 1 2 3
>>> lista [0]
maria
Estrutura de Dados: Listas [ ]
Fatias, ou slices, de uma lista podem ser geradas
facilmente com o “:”
Lista = [inicio:final]
>>> n = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ]
>>> n[2:4]
[3, 4]
Estrutura de Dados: Listas [ ]
Métodos Uteis
0 1
1 2 lista.remove(2)
2 3
3 4
lista.pop()
lista.append(8) lista.extend(lista2)
Introdução a
Python
PLUS!
'Import' o quê mesmo?
● Linguagem
– Tuplas, dicionários, listas de compreensão, geradores, decoradores, docstrings, …
● Bancos de Dados
● GUI
● Web
● Games
● Animações gráficas
● Computação Científica
– Matemática, Estatística, Bioinformática, Genética, Computação de Alto Desempenho,
Computação Gráfica, Inteligência Artificial, Sistemas Embarcados, …
● Mobiles
● Certificação!
25/04/15
Literatura
●
Nacional
25/04/15
Literatura
● Internacional
25/04/15
Onde mais?
● Web
– Tutoriais
– Youtube
– Grupos de Usuários Python - PUGs
● Pernambuco / Ceará
– Google!
● Cariri
– www.projetopinguim.com.br
– Grupo de Usuários Linux do Cariri (CaLUG)
– LEDS – IFCE/Crato
● Eventos: Palestras, minicursos.
25/04/15
Casos de Sucesso no Cariri
● Empresas
– Raspberry PI
– Portais Web
– Infraestrutura
● Olimpíada Brasileira de Informática (OBI)
– Grabriel de Alcântara – Técnico em Informática (Ensino Médio)
– MEDALHA DE BRONZE!
● LEDS – IFCE/Crato
– Pesquisas
– Eventos Científicos
25/04/15
Introdução a
Python
FLISOL 2015 – Cariri/CE
Guilherme Esmeraldo
[email protected]
www.projetopinguim.com.br
Diga 'Xisssss'!
import sl4a
droid = sl4a.Android()
droid.cameraCapturePicture('/storage/sdcard0/DCIM/Camera/1flisol15.jpg')