Você está na página 1de 47

PRIMEIROS PASSOS COM PYTHON

Prof. Msc. Luis Filipe Alves Pereira | 2015


PRIMEIROS PASSOS COM PYTHON 02/47

O QUE É PYTHON?

• Python é uma linguagem de propósito geral, de alto nível e interpretada

• Python será nossa ferramenta para aprender a programar e resolver problemas

(texto em linguagem Python) (interpretador da linguagem Python)


(descrição do programa) (shell)
(script)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 03/47

O QUE É PYTHON?

• Interpretador para linguagem Python no Windows: python.exe


• link para download: https://www.python.org/downloads/ (versão 2.7.X)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 04/47

O QUE É PYTHON?

• Envia comandos em linguagem Python para o interpretador apenas digitando no


console:

>>> print ‘vamos começar’


>>> print ‘a programar um computador’
>>> print ‘vamos começar’,’a programar um computador’

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 05/47

OBJETOS, EXPRESSÕES E TIPOS NUMÉRICOS

• Objeto: elementos manipulados pelas instruções da linguagem Python

• Tipo: associado a cada objeto, define o conjunto de operações permitidas para


manipulação do objeto:

• Não escalar: objetos de estrutura interna complexa


• Escalar: objetos indivisíveis (como os átomos da linguagem)

• int usado para representar números inteiros


• float usado para representar números reais
• bool usado para representar valores booleanos True e False
• None usado para representar um valor nulo

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 06/47

OBJETOS, EXPRESSÕES E TIPOS NUMÉRICOS

• Expressões: associação de objetos e operadores


• Toda expressão resulta em um novo objeto (associado a um tipo)

>>> 3+3 (valor: objeto 5 | tipo: int)


>>> 3.0+2.0 (valor: objeto 5.0 | tipo: float)

• Você pode descobrir o tipo de um objeto através da função type()

>>> type(3)

>>> type(3.0+2)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 07/47

OPERADORES ARITMÉTICOS

Operador Tipo i Tipo j Tipo resultado


i == j i != j
bool bool bool
int int int
i+j float float float
float int float
int int int
i-j float float float
Float int float

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 08/47

OPERADORES ARITMÉTICOS

Operador Tipo i Tipo j Tipo resultado

int int int


i%j float float float
float int float
int int int
i/j float float float
Float int float

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 09/47

OPERADORES ARITMÉTICOS

Operador Tipo i Tipo j Tipo resultado

int int int


i*j float float float
float int float
int int bool
i>j i<j Float float bool
i >= j i <= j
Float int bool

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 10/47

OPERADORES LÓGICOS

Operador Tipo i Tipo j Tipo resultado


i and j
bool bool bool
i or j
bool bool bool
not i
bool bool bool

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 11/47

VARIÁVEIS E ATRIBUIÇÕES

• Através das variáveis pode-se associar nomes (referência) a objetos

>>> pi = 3.1415
>>> raio = 11.4
>>> área = pi*(raio**2)

Você é livre para escolher o nome de suas variáveis. Mas isto vai implicar
na facilidade/dificuldade de leitura do seu código. Ex.:

>>> z = 3.1415
>>> x = 11.4
>>> y = z*(x**2)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 12/47

VARIÁVEIS E ATRIBUIÇÕES

• Variáveis podem ser nomeadas de (quase) qualquer maneira


• não podem começar com um digito
• deve-se respeitar as palavras reservadas da linguagem: and, as, assert, break,
class, continue, def, del, elif, else, except, exec, finally, for, from, global, if,
import, in, is, lambda, not, or, pass, print, raise, return, try, with, while, and
yield.

• Python permite atribuições múltiplas:

>>> x,y = 2,3


>>> x,y = y,x
>>> print ‘x=‘,x
>>> print ‘y=‘,y

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 13/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

• Criar programas diretamente no interpretador pode ser bastante inconveniente

• IDLE: IDE padrão instalada junto com Python


• C:\Python27\Lib\idlelib\idle.py
• Contém um editor de textos com fácil integração ao interpretador (shell)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 14/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Criar novo arquivo

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 15/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Editor de texto

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 16/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Executar o código criado

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 17/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Saída gerada pelo interpretador

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 18/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

• PyCharm: ambiente integrado para construção, execução e depuração de código.


• Download: https://www.jetbrains.com/pycharm/download/

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 19/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Criar novo projeto

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 20/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Selecionar novo diretório para o projeto

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 21/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Criar novo arquivo Python para o projeto

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 22/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Editor de texto

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 23/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Executar o código criado

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 24/47

INTEGRATED DEVELOPMENT ENVIROMENT (IDE)

Saída gerada pelo interpretador

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 25/47

CONTROLE DE FLUXO DO CÓDIGO

• Os códigos vistos até agora possuem fluxo único

• Para resolver problemas reais, precisamos seguir diferentes fluxos de acordo com
condições encontradas

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 26/47

CONTROLE DE FLUXO DO CÓDIGO

if <expressão booleana>:
<bloco de código>
else:
<bloco de código>

x = 22
if x % 2 == 0:
print x, "e um numero par"
else:
print x, "e um numero impar"
print "Programa encerrado"

paridade.py

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 27/47

IDENTAÇÃO

• Possui valor semântico em Python

if <expressão booleana>: if <expressão booleana>:


<linha de código 1> <linha de código 1>
<linha de código 1> <linha de código 1>

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 28/47

IDENTAÇÃO

if x%2 == 0:
if x%3 == 0:
print ‘divisivel por 2 e por 3’
else:
print ‘divisivel por 2 mas nao por 3’
elif x%3 == 0:
print ‘divisivel por 3 mas nao por 2’

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 29/47

TIPO Str

• Objetos do tipo str representa string de caracteres: ‘abc’, “abc”, ‘123’, ...

• Avalie as seguintes expressões na janela do interpretador

>>> ‘a’
>>> 3*4
>>> 3*’a’
>>> 2+2
>>> ‘a’+’a’

• Os operadores + e * possuem significados diferentes quando aplicados a objetos de


tipos diferentes. Dizemos que ocorreu um overload de operador.

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 30/47

TIPO Str

• Manipulação de strings

• tamanho:
>>> len(‘abc’)
3
• indexação:
>>> ‘abc’[0]
‘a’
• divisão:
>>> 'www.youtube.com'[4:11]
'youtube'

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 31/47

INPUT (ENTRADA)

• Interação com usuário através da linha de comando do interpretador

>>> name = raw_input(‘Digite o seu nome’)


>>> print ‘Ola Sr(a)’,name

>>> ano = int(raw_input(‘Digite o seu ano de nascimento’))


>>> idade = 2015-ano
>>> print ‘Você tem’, idade, ‘anos’

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 32/47

ITERAÇÕES

• Quando um trecho de código precisa ser executado mais de uma vez

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 33/47

ITERAÇÕES

• Quando um trecho de código precisa ser executado mais de uma vez

while <expressão booleana>:


<bloco de código>

• O que o seguinte trecho de código faz?

x = 3
y = 2
iteracoes_restantes = y
resposta = 0
while iteracoes_restantes > 0:
resposta = resposta + x
iteracoes_restantes = iteracoes_restantes – 1

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 34/47

ITERAÇÕES

• O comando for pode facilitar a criação de iterações quando já se sabe inicialmente o


número de iterações necessárias.

for <variável> in <sequencia>:


<bloco de código>

• Teste no interpretador Python os seguintes comandos para gerar sequencias:

>>> (0,1,2)
>>> range(0,7)
>>> range(7)
>>> range(0,7,2)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 35/47

ITERAÇÕES

• O que o seguinte trecho de código faz?

letra = 'a'
frase = 'would you like to learn tango, Dona?'
count = 0
for k in range(len(frase)):
if frase[k]=='a':
count = count + 1
freq = float(count)/len(frase)

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 36/47

DÚVIDAS COM NOVO IDIOMA?

• O que você faz quando está com dúvida para escrever um texto em inglês, espanhol
ou francês?

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 37/47

DÚVIDAS COM NOVO IDIOMA?

• TODA documentação sintática e semântica da linguagem Python está disponível


online!!
• https://docs.python.org/2/

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 38/47

QUAL O SEGREDO DO SUCESSO?

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 39/47

QUAL O SEGREDO DO SUCESSO?

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 40/47

EXERCÍCIO I

Múltiplos de 3 e de 5

Se listarmos todos os números naturais abaixo de 10 que são múltiplos de 3 ou 5,


teremos

3 5 6 9

Faça um programa para listar todos os números naturais menores de 100 que são
múltiplos de 3 ou de 5

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 41/47

EXERCÍCIO I

Múltiplos de 3 e de 5 (Solução)

for k in range(1,x):
if k % 3 == 0 or k % 5 == 0:
print k,

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 42/47

EXERCÍCIO II

String inversa

Faça um programa para imprimir um texto em ordem contrária

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 43/47

EXERCÍCIO II

String inversa (Soução)

frase = 'I\'m gonna make him an offer he can\'t refuse'


saida = ''
for k in range(len(frase)):
saida = saida + frase[len(frase) - 1 - k]
print 'ordem inversa:', saida

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 44/47

EXERCÍCIO II

Nenhuma vogal

Faça um programa que retire as vogais de um texto

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 45/47

EXERCÍCIO II

Nenhuma vogal (Solução)

frase = 'For justice, we must go to Don Corleone!'


saida = ''

for k in range(len(frase)):
if frase[k] != 'a' and frase[k] != 'e' and frase[k] != 'i'
and frase[k] != 'o' and frase[k] != 'u':
saida += frase[k]
print saida

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 46/47

LEMBRE-SE...

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015
PRIMEIROS PASSOS COM PYTHON 47/47

BIBLIOGRAFIA

• John V. Guttag, Introduction to Computation and Programming Using Python. Spring 2013
Edition.

UFRPE | INTRODUÇÃO À PROGRAMAÇÃO| PROF. MSC. LUIS FILIPE ALVES PEREIRA | 2015

Você também pode gostar