Sunteți pe pagina 1din 34

Apostila

do Minicurso de Python - UFU

Tabela de contedos
1. Introduo
2. Iniciao Python
i. Introduo Linguagem
ii. Download e Instalao
iii. IDLE
iv. Arquivos .py
3. Tipos Bsicos
i. Inteiros e Floats
ii. Strings
iii. Booleano
iv. Listas, Tuplas e Sets
v. Dicionrios
4. Operaes
i. Operadores Relacionais e Lgicos
ii. Condies
iii. Repeties
5. Orientao a Objetos
i. Funes
ii. Variveis locais e globais
iii. Classes
iv. Herana
6. Conceitos Finais
i. Mdulos
ii. Mensagens de Erro
iii. [Funes Embutidas (Padro)]capitulo_5/funcoes.md
7. Bibliografia

Apostila do Minicurso de Python - UFU

Introduo
Aqui esto reunidos os principais assuntos que sero tratados no minicurso Python promovido pelo D.A. FEELT da
Universidade Federal de Uberlndia, bem como uma viso geral da linguagem Python e explicaes mais detalhadas de
suas funcionalidades.
Bons estudos!

Introduo

Apostila do Minicurso de Python - UFU

Prefcio
Com essa apostila, sero introduzidos conceitos e exemplos da linguagem, tudo muito bem detalhado. Mas para que voc
aprenda, no basta apenas ler. Por isso, siga as trs "leis" abaixo enquanto estiver estudando por essa apostila e
aproveite ainda mais do contedo aqui disponvel.
importante que teste os exemplos mostrados neste material. Sempre testando, sempre vendo como funciona,
sempre entendendo. E se no entender, importante que entenda pelo menos o bsico de ingls. A maior parte dos
materiais de apoio que voc vai encontrar estaro em ingls, ento se voc no quer ficar sofrendo para explicar seu
problema para os outros e torcer para que algum entenda ou no quer ficar eternamente buscando sua soluo em
portugus, por favor, aprenda ingls. Isso ser importante tanto no seu aprendizado quanto na sua vida profissional.
Tem alguma dvida e j pesquisou em todos os lugares possveis? Tente recorrer comunidade. Os usurios de
Python tem MUITOS grupos no Facebook, no Google Groups e no G+. Sempre estamos dispostos a ajudar, desde que
voc tenha feito sua parte e no esteja simplesmente com preguia. No pergunte respostas de exerccios ou de
problemas muito complexos s porque voc no est com disposio de procurar a soluo. Se outras pessoas fizerem o
programa pra voc, voc no est aprendendo.
Tenha disposio, no desista porque parece complexo demais para voc. A programao um universo aberto no
mundo virtual, com ela voc pode criar o seu mundo, o que bem melhor que dominar o mundo dos outros, viu? No
comeo tudo estranho, diferente de qualquer coisa normal. Porm, isso s torna a coisa ainda mais emocionante quando
voc finalmente entende tudo! Para programar, necessrio estar sempre disposto a aprender e a resolver problemas,
porque tudo muda e evolui muito rpido e voc deve evoluir tambm. Vamos em frente encontrar seu futuro brilhante!
Agora, d um passo adiante e vamos comear a aprender!

Iniciao Python

Apostila do Minicurso de Python - UFU

Introduo Linguagem
A linguagem de programao Python foi criada por Guido van Rossum em 1989, e seu nome foi inspirado no grupo
humorstico Monty Python, criador do famoso Monty Python's Flying Circus. Guido no queria que Python fosse associado
com a cobra python (pton), porm quando foi lanar um dos primeiros livros sobre a linguagem, a editora O'Reilly, que tem
a "mania" de colocar animais como capa, sugeriu colocar uma cobra e assim ela ficou associada linguagem.
Desde o incio, o principal foco da linguagem foi aumentar a produtividade do programador. J em 1991, Guido publicou o
cdigo da linguagem e, desde ento, ela vem evoluindo em verses e funcionalidades. Atualmente, a linguagem encontrase na verso 3 e em constante aprimoramento. Abaixo, um exemplo do clssico "Hello, World!":

# at a verso 2.x
print "Hello, World!"
# a partir da verso 3.x
print("Hello, World!")

Python uma linguagem de programao interpretada, de cdigo-fonte aberto e disponvel para vrios sistemas
operacionais. Diz-se que uma linguagem interpretada se esta no precisar ser compilada (traduzida para uma linguagem
da mquina), mas sim lida por um outro programa (chamado de interpretador) que traduzir para a mquina o que seu
programa quer dizer. O interpretador para Python interativo, ou seja, possvel execut-lo sem fornecer um script
(programa) para ele. Ao invs disso, o interpretador disponibilizar uma interface interativa onde possvel inserir os
comandos desejados um por um e ver o efeito de cada um deles. O interpretador da linguagem Python chamado IDLE
(Integrated DeveLopment Environment).

Introduo Linguagem

Apostila do Minicurso de Python - UFU

Download e Instalao
O primeiro passo para usar a linguagem ter a linguagem no seu computador. Utilizaremos a verso 3.x mais recente.
Nos sistemas operacionais Linux e Apple (OS X), a verso Python 2.7 j vem instalada e voc pode interagir com seu
interpretador via terminal. No entanto, a verso 2.7 acabar perdendo o suporte dos desenvolvedores, visto que uma nova
verso j est em uso. Alm disso, alguns exemplos aqui contidos podem no funcionar na verso 2.7 devido mudana
de sintaxe. Assim, recomendo a instalao da verso mais recente em todos os sistemas.
Voc pode adquirir a linguagem e seu interpretador gratuitamente na pgina: https://www.python.org/downloads/. Ou, caso
preferir, usar o terminal para baixar e instalar a linguagem.

Windows
Para instalar a linguagem e seu interpretador, siga esses passos aps ter feito o download:
1. Execute o arquivo que voc acabou de baixar.
2. O instalador ir iniciar, prosseguindo com a instalao. Voc pode aceitar o local padro proposto para instalao ou
mudar a pasta.
3. A seguir, podemos separar as partes do pacote que queremos instalar, mas iremos prosseguir com o padro.
4. Aguarde a instalao e feche a janela. Tudo pronto!

OS X
Para instalar a linguagem e seu interpretador no OS X, a maneira mais fcil utilizar o MacPorts. Para isso, siga estes
passos:
1. Instale o MacPorts (http://www.macports.org), fazendo o download do arquivo dmg.
2. Instale o Python com o comando (no exemplo, Python 3.4):
sudo port install python34

Linux
Para instalar a linguagem e seu interpretador no Linux, a maneira mais fcil utilizar a linha de comando (terminal).
Portanto, abra-o e digite os seguintes comandos (no exemplo, Python 3.4):

$ sudo apt-get install python3.4


$ sudo apt-get install idle-python3.4

Download e Instalao

Apostila do Minicurso de Python - UFU

IDLE, o Interpretador
Como dito antes, o interpretador da linguagem Python chamado IDLE (Integrated DeveLopment Environment). Em um
primeiro momento, o IDLE semelhante a uma linha de comando, mas suas funes se extendem alm disso. A partir
dele, temos acesso a uma interface grfica que nos permite reproduzir cdigo instantaneamente ou criar arquivos Python
para serem executados posteriormente.

Iniciando o IDLE
Novamente, siga os passos:

No Windows
1. Menu Iniciar
2. Programas
3. Python 3.x
4. IDLE

No Linux
Abra o terminal e digite o comando (substituindo o x pela sua verso):

$ idle-python3.x &

No OS X
Abra o terminal e digite (substituindo o x pela sua verso):

IDLE3.x &

Primeiros comandos
A linha de comando indicada pelas setas >>> e, como o nome diz, nela que voc deve dar os comandos sobre o que a
linguagem deve fazer. Sua primeira tarefa executar um print, o comando para imprimir uma mensagem na tela. O
retorno, isto , o resultado da execuo deve sair logo abaixo. Siga o exemplo:

>>> print("Hello, World!")


Hello World

Fazendo contas
Alm de tudo isso, o interpretador pode funcionar como uma calculadora. A execuo de clculos simples:

>>> 10+5 #adio


15
>>> 20-11 #subtrao

IDLE

Apostila do Minicurso de Python - UFU

9
>>> 2*10 #multiplicao
20
>>> 30/2 #diviso
15
>>> 2**4 #exponenciao
16
>>> 10 % 8 #resto da diviso inteira
2
>>> 120-30+2**3 #mltiplas operaes
98

Obs: o smbolo # indica um comentrio e ele no interfere na execuo.

IDLE

Apostila do Minicurso de Python - UFU

Arquivos .py
s vezes precisamos guardar comandos especficos para execut-los outras e muitas outras vezes posteriormente. Para
isso, precisamos escrever esses comandos em algum lugar e salv-los. Um programa nada mais que um arquivo em
texto no formato da linguagem possvel de ser executado.
Vamos criar um novo arquivo para guardar os comandos que queremos executar. V no menu da IDLE: File (Arquivo) >
New Window (Nova Janela) ou pressione ctrl+n

Uma nova janela dever aparecer, em branco, semelhante tela de execuo do IDLE. Digite:

print("Ola, Mundo!")

E salve: File (Arquivo) > Save (Salvar) ou pressione ctrl+s


Salve o arquivo com o nome que desejar, mas com a extenso .py. A extenso .py a que indica um arquivo escrito na
linguagem Python. Vou salvar o meu arquivo com o nome ola.py . Em seguida, vou execut-lo clicando em Run(Executar)
> Run Module (Executar mdulo) no menu superior ou pressionando F5 .

Arquivos .py

Apostila do Minicurso de Python - UFU

Tipos Bsicos
Vamos entender um pouco melhor a parte terica de Python. A documentao completa pode ser encontrada no site oficial
(http://python.org).

Variveis: o que so, como comem, onde dormem, quem so


elas?
Eu gosto muito da explicao de que a varivel uma etiqueta e o valor uma caixa. Voc precisa identificar uma caixa,
ento vai colar nela uma etiqueta com uma identificao. Logo, sempre que voc precisar daquele valor, vai procurar pela
etiqueta que identifica ele.

>>> ten = 10
>>> print(ten)
10

Se voc precisa que aquela identificao seja de outra caixa, pode tirar a etiqueta de uma e colocar em outra. Da mesma
forma, a varivel pode mudar de valor.

>>> ten = 10
>>> ten = 42
>>> print(ten)
42

ten a varivel e 42 o seu valor. Sempre que eu "chamar" a varivel ten , ela vai me informar seu valor. O nome de

uma varivel apenas no pode conter espaos em branco, comear com nmeros ou ser uma palavra reservada (palavras
que j so utilizadas em algum lugar dentro da linguagem, ex: not, return, class, else, etc).
Ao contrrio da maioria das outras linguagens, em Python, no necessrio declarar as variveis que sero usadas,
tampouco definir seu tipo. A prpria sintaxe do dado a ser armazenado identica o tipo da varivel para armazen-lo. Por
exemplo, caso deseje-se atribuir o valor 3 varivel A , basta digitar A=3 . Python saber que A um nmero inteiro.
Por outro lado, se o valor a ser armazenado fosse 3,2 que um dado do tipo "ponto flutuante", este deveria ser expresso
como A=3.2 .

Tipos Bsicos

10

Apostila do Minicurso de Python - UFU

Nmeros Inteiros
Os nmeros funcionam como os nmeros que voc aprendeu na aula de matemtica funcionam.
Como mostrado anteriormente, eles tambm realizam operaes matemticas e podem ser atribudos a variveis. No
segundo caso, tambm podem realizar operaes matemticas a partir das variveis. Veja:

>>> ten = 10
>>> one = 1
>>> print(ten+one)
11

Floats (Pontos flutuantes)


Floats so os tpicos nmeros com vrgula, mas nesse caso utilizam o padro ingls e, ao invs de uma vrgula, usam um
ponto. Por exemplo:

>>> f1 = 0.98
>>> f2 = 0.02
>>> f1+f2
1.0

Ateno: Observe que, para Python, A=3 e B=3.0 so variveis de tipos diferentes e isto deve ser levado em conta ao se
realizar certos tipos de manipulaes de dados.

Inteiros e Floats

11

Apostila do Minicurso de Python - UFU

Strings
Uma string qualquer coisa definida entre aspas. Por exemplo:

>>> string1 = "Isso uma string"


>>> string2 = "10" #no mais um nmero, mas sim uma string

As aspas podem ser simples (' ') ou duplas (" "). A nica exigncia que, caso use aspas dentro de uma string, elas
devem ser diferentes daquelas que iniciaram a string.

>>> print("Isso uma citao: 'Citao'.")


Isso uma citao: 'Citao'.

Apesar disso, o caractere \ pode escapar smbolos, isto , quando usado antes de um smbolo, ele ser lido como parte da
string, no como parte do cdigo.

>>> print('It\'s friday!')


It's friday!

Strings que ocupam mltiplas linhas podem ser definidas com aspas triplas:

>>> string_grande = """vamos fazer um teste


esse um teste"""

Formatao de Strings
Strings podem ser fatiadas. Por exemplo, Python tem 6 letras. Porm, comeamos a contar do 0. Ento P a letra 0, y
a letra 1, t a letra 2 e assim por diante. Dessa forma, podemos pegar um pedao da string apenas indicando em qual
caracter comear e qual terminar:

>>> teste = "Python"


>>> teste[0:3] #indicando 3 ele s vai fatiar at a letra de posio 2
'Pyt'
>>> teste[3] #ir buscar somente pela letra na posio 3
'h'
>>> teste[-1] #o sinal negativo indica que ir na ordem inversa
'n'
>>> teste[0:6:2]
'Pto' #escreve de 2 em 2 letras

Existe tambm um recurso conhecido como operador %, que serve para formatar as strings. Basicamente, so trs os
tipos de formatao que temos:
1. %s - serve para substituir string;
2. %d - serve para substituir nmeros inteiros em uma frase destinada a um print;
3. %f - serve para substituir floats (nmeros em aritmtica de ponto flutuante).
As trs formataes acima relacionadas so usadas normalmente para aplicaes em uma frase destinada a um print.

Strings

12

Apostila do Minicurso de Python - UFU

>>> compra= 'ma'


>>> tipo='verde'
>>> quilos = 1.5
>>> print('Maria comprou %f quilos de %s %s.' % (quilos,compra,tipo))
Maria comprou 1.5 quilos de ma verde.

Como vimos acima o operador % pode ser utilizado para formatao de nmeros tambm. Com ele possvel tambm
determinar a quantidade de nmeros aps a vrgula de um float.

>>> num=245.47876749
>>> print('%.2f' % (num))
245.48

Percebemos que Python fez uma aproximao do nmero real, possibilitando que o resultado de uma futura operao seja
o mais preciso possvel.
Ainda que essa formatao seja a mais comum, as strings Python possuem um mtodo especfico para formatao que
evita muitas dores de cabea e ainda deixa mais explcito o que voc est exibindo em cada local.

>>> compra= 'ma'


>>> tipo='verde'
>>> quilos = 1.5
>>> "Maria comprou {peso} quilos de {produto} {tipo}.".format(peso=quilos, produto=compra, tipo=tipo)
Maria comprou 1.5 quilos de ma verde.

Manipulao de Strings
Pelo fato de uma string ser uma sequncia imutvel, isso nos d a possibilidade de manipularmos essa sequncia.

>>> a = 'matemtica'
>>> a[2]+a[-5]+a[-4:]
>>> 'ttica'

As operaes matemticas, nesse caso, podem ser utilizadas para concatenar strings.

>>> b = "bla"
>>> 10*b
'blablablablablablablablablabla'

Mtodos
Assim como a maioria dos outros tipos bsicos, as strings possuem mtodos. Mtodos so funes inclusas dentro de um
tipo de dado, que vo valer para qualquer valor desse tipo. Os mtodos so chamados da seguinte forma
.nome_metodo(argumentos) . A funo format(), vista anteriormente, um mtodo das strings.

Segue uma lista dos mais comuns:


1. capitalize() - retorna uma cpia da string com o primeiro caractere maisculo;
2. lower() - retorna uma cpia da string com todos os caracteres em minsculo;
3. upper() - retorna uma cpia da string com todos os caracteres em maisculo;
4. endswith(texto) - retorna um valor True ou False avisando se a string termina com aquele caractere ou pedao de
Strings

13

Apostila do Minicurso de Python - UFU

texto informado;
5. startswith(texto) - o mesmo do endswith() , porm verificando no incio da string;
6. find(texto) - retorna o menor ndice onde o valor de texto passado pode ser encontrado dentro da string;
7. split(separador) - retorna uma lista das palavras da string quando separamos elas pelo separador informado;

Strings

14

Apostila do Minicurso de Python - UFU

Booleano
S existem dois valores booleanos: True e False. Traduzindo eles so Verdadeiro e Falso, respectivamente. So tipo
lgicos, ou seja, vo ajudar nas operaes lgicas que vamos fazer mais adiante.

>>> verdade = True


>>> mentira = False

Booleano

15

Apostila do Minicurso de Python - UFU

Listas
Uma lista um conjunto de valores separados por vrgula e bastante verstil.

>>> lista1 = [1, 5, 10, 15]

Assim como as string, cada item de uma lista tem uma posio comeando em 0 e toda lista pode ser fatiada. Portanto,
eles podem ser retornados por:

>>> lista1[2]
10
>>> len(lista1)
4

Obs: len() uma funo que indica o tamanho daquilo que est dentro de seus parnteses. No caso, nossa lista tem 4
elementos, portanto seu tamanho 4.

Tuplas
Tuplas so semelhantes s listas, uma sequncia de valores separados por vrgulas e definidas entre parnteses. Porm,
sua maior diferena reside no fato de que imutvel, ainda assim pode conter objetos mutveis dentro dela, como uma
lista.

>>> t1 = (123, 'teste', 123)

Mtodos
Os principais mtodos das listas e tuplas so aqueles utilizados para realizar alguma ao com seus valores. Segue uma
lista:
1. append(x) - adiciona o elemento x ao final da lista;
2. pop(x) - remove e retorna o valor do elemento que estiver no ndice x;
3. index(x) - retorna o menor ndice do elemento x;
4. count(x) - conta quantas vezes x se repete na lista;
5. sort() - ordena a lista;
6. clear() - remove todos os elementos da lista;
7. remove(x) - remove o primeiro elemento cujo valor x encontrado na lista;

Sets
uma lista definida entre chaves, a qual representa um conjunto sem elementos repetidos. Enquanto uma tupla, por
exemplo, pode ter dois elementos iguais, um set no ter.

>>> s1 = {111, 123, 12, 111}


>>> print(s1)
{111, 123, 12}

Listas, Tuplas e Sets

16

Apostila do Minicurso de Python - UFU

Listas, Tuplas e Sets

17

Apostila do Minicurso de Python - UFU

Dicionrios
Dicionrios so conjuntos de chave:valor . O melhor para entender, vendo. Dicionrios podem ser definidos de duas
maneiras:

>>> dict1 = dict(nome='fulano', idade=29)


>>> dict2 = {'nome':'fulano', 'idade':29}
>>> print(dict1)
{'idade':29, 'nome':'fulano'}
>>> print(dict2)
{'idade':29, 'nome':'fulano'}

A chave a forma como identificamos o valor. Nesse caso, nome e idade so chaves e fulano e 29 so valores
associados a elas.
Um valor dentro de um dicionrio pode ser retornado a partir de sua chave. Dessa forma, o dicionrio funciona como uma
lista onde os ndices tem nome, ao invs de serem apenas numerados.

>>> print(dict1['nome'])
'fulano'

Alm disso, voc pode adicionar novos valores a um dicionrio simplesmente informando uma chave que ele ainda no
possui e alterar valores associando novos valores a uma chave existente.

>>> dict1['altura'] = 1.80


>>> print(dict1['altura'])
1.80
>>> dict2['nome'] = 'ciclano'
>>> print(dict2['nome'])
'ciclano'

Mtodos
Os principais mtodos dos dicionrios so:
1. clear() - remove todos os itens do dicionrio;
2. get(x) - retorna o valor que est associado chave x dentro do dicionrio;
3. items() - retorna todos os items dentro do dicionrio no formato (chave, valor);
4. keys() - retorna todas as chaves do dicionrio;
5. values() - retorna todos os valores do dicionrio;

Dicionrios

18

Apostila do Minicurso de Python - UFU

Operaes
Nesse ponto, seria legal se voc tivesse uma noo sobre lgica binria. Por isso, preste ateno nestes conceitos!

Lgica Binria
A lgica binria, ou bitwise operation a base de todo o clculo computacional. Na verdade, so estas operaes mais
bsicas que constituem todo o poderio dos computadores. Qualquer operao, por mais complexa que parea, traduzida
internamente pelo processador para estas operaes.

NOT
O operador unrio NOT , ou negao binria resulta no complemento do operando. Por exemplo, ser um bit 1 se o
operando for 0 , e ser 0 caso contrrio, conforme podemos confirmar pela tabela de verdade: Tabela verdade do NOT

AND
O operador binrio AND , ou conjuno binria devolve um bit 1 sempre que ambos operandos sejam 1 , e 0 quando
apenas um ou nenhum deles 1 , conforme podemos confirmar pela tabela de verdade: Tabela verdade do AND

OR
O operador binrio OR , ou disjuno binria devolve um bit 1 sempre que pelo menos um dos operandos seja 1 ,
conforme podemos confirmar pela tabela de verdade: Tabela verdade do OR

Operaes

19

Apostila do Minicurso de Python - UFU

Operadores Relacionais
So smbolos utilizados para fazer comparaes. Confira os operadores relacionais de Python na imagem abaixo:
Operadores relacionais
Quando a comparao realizada utilizando tais operadores, os resultados so booleanos informando se tal comparao
verdadeira ou falsa.

>>> 10 > 5
True
>>> 10 < 5
False
>>> a = 10
>>> b = 5
>>> a > b
True

Operadores Lgicos
Dada a lgica binria anteriormente, confira as tabelas verdade. Os operadores NOT, AND e OR so chamados
operadores lgicos e nos auxiliam a fazer comparaes mais complexas.

>>> not True


False

Acabei de falar que algo no verdadeiro, ento s pode ser falso. Logo, o resultado falso.

>>> True and True


True
>>> True and False
False
>>> False and True
False
>>> False and False
False

Pela tabela verdade do operador and , somente quando ambos os valores forem verdadeiros, o resultado ser verdadeiro.
Do contrrio ser falso.

>>> True or True


True
>>> True or False
True
>>> False or True
True
>>> False or False
False

J com o operador or , o resultado ser verdadeiro sempre que pelo menos um dos valores for verdadeiro. Somente
quando ambos forem falsos, o resultado ser falso.

Operadores Relacionais e Lgicos

20

Apostila do Minicurso de Python - UFU

Condies
As condies so exatamente isso, condies para que determinado cdigo seja executado. So elas que selecionam o
que vai acontecer e o que no dentro do nosso programa.

If (Se)
Traduzindo a palavra if do ingls temos o equivalente a se no portugus. Quando digo "Se voc colocar a blusa preta vai
parecer mais magro.", estou indicando uma condio para voc parecer mais magro.
Dessa forma, se eu tenho um bloco de cdigo depois da expresso if ele s ser executado se as condies indicadas
aps o if forem verdadeiras. Assim:

>>> ten = 10
>>> if ten == 10:
>>> print("Dez igual a dez.")
Dez igual a dez.

Repare que eu utilizei o operador lgico == para comparar se o valor da varivel ten igual a 10 . A resposta me
retornou True , isto , a comparao confirmou que dez igual a dez, ento o meu cdigo pde ser executado.
Preste ateno tambm que, logo aps a expresso do if eu dei um certo espao antes de voltar a digitar meu cdigo.
Isso chamado indentao, um recuo antes do cdigo para diferenciar um bloco de cdigos de outro. Isso bom quando
eu tenho mais cdigo depois do if , assim eu posso separar o que eu quero que seja executado sempre e o que eu quero
que seja executado s quando o if for verdadeiro.
A identao em Python tem o valor (no obrigatrio, mas de senso comum e da PEP-8) de 4 espaos.

>>> ten = 10
>>> one = 1
>>> if ten and one:
>>> print("Os valores existem.")
Os valores existem.

Da mesma forma funcionam os operadores lgicos. Lembre-se que o and s retorna True quando ambos os valores
forem verdadeiros. Ento meu if s executar meu cdigo se os valores que passei forem verdadeiros, nesse caso se
eles existirem.
E possvel no existirem? Sim! Existe outro tipo Python, o None , para esse tipo de valor.

>>> vazio = None


>>> teste = "teste"
>>> if teste and vazio:
>>> print("Ops!")

Se executar esse cdigo no tera resultado algum, porque a comparao do if retornou False .

Else (Se no)


O else um operador usado sempre em conjunto com o if e significa "se no". como dizer "Se voc colocar a blusa
Condies

21

Apostila do Minicurso de Python - UFU

preta vai parecer mais magro, se no vai parecer robusto.". Nesta condio, se fizer algo ter um resultado, se no fizer
ter um resultado diferente.

>>> ten = 10
>>> if ten != 10:
>>> print("Dez diferente de dez.")
>>> else:
>>> print("Dez igual a dez.")
Dez igual a dez.

Vamos traduzir isso para uma frase: "Se ten for diferente de 10 , ento imprima 'Dez diferente de dez.' na tela, se no,
imprima 'Dez igual a dez.' na tela.".
Claro que dez no diferente de dez! Ento meu if retornou False , logo eu recorri ao else . Sempre que meu if for
False o else ser executado.

Perceba que, neste caso, o else est alinhado com o if e no com o bloco de cdigo dentro dele, pois uma
condicional diferente e deve ser executado somente se o if for False .

Elif (else if)


Quando eu digo "Se voc colocar a blusa preta vai parecer mais magro, se colocar a blusa justa vai parecer mais forte, se
no vai parecer mais robusto." tenho mais de uma condio diferente para voc. Para esse tipo de caso, utilizamos o
elif , indicando que temos mais de uma condio para verificar antes de executar o else . Veja s:

>>> blusa = "justa"


>>> if blusa == "preta":
>>> print("Pareo mais magro.")
>>> elif blusa == "justa":
>>> print("Pareo mais forte.")
>>> else:
>>> print("Pareo mais robusto.")
Pareo mais forte.

O caminho que percorremos nesse caso foi:


1. Comparar se a varivel blusa igual a "preta" .
2. A comparao deu False , ento no vamos executar o que est dentro do bloco de cdigo do if .
3. Comparar se a varivel blusa igual a "justa" .
4. A comparao resultou em True , ento executamos o bloco de cdigo dentro do elif e ignoramos o else .
Podemos ter quantas condies desejarmos, alinhando um elif aps outro. Faa o teste!

Condies

22

Apostila do Minicurso de Python - UFU

Repeties
Repeties ou laos ou loops funcionam para repetir um determinado cdigo vrias vezes, geralmente terminando quando
determinada condio alcanada.
Um jeito de fazer isso repetindo o mesmo cdigo vrias vezes na mo:

>>> print(1)
>>> print(2)
>>> print(3)
1
2
3

Porm, isso no recomendvel e com certeza no est na lista de boas prticas. Confira abaixo algumas maneiras de
fazer isso de forma mais fcil, principalmente quando temos MUITAS repeties (imagina fazer isso 100 vezes?).

While (Enquanto)
Do ingls, while tem o mesmo significado que enquanto. como dizer "Enquanto eu no tiver 10 chocolates, me traga
mais um.", ou seja, enquanto a minha vontade (minha condio) no for satisfeita, voc vai continuar me trazendo
chocolates. De volta sequncia de nmeros:

>>> x = 1
>>> while x <= 3:
>>> print(x)
>>> x = x+1
1
2
3

A repetio while vai executar seu bloco de cdigo enquanto x for menor ou igual a 3. Ento, imprimiremos o valor de x
na tela trs vezes e incrementaremos seu valor em um ao final de cada execuo para que a prxima tenha um valor
diferente at a condio ser satisfeita.
O incremento de 1 no valor tambm pode ser feito de forma mais fcil por:

>>> x += 1

A operao += far com que a varivel sempre seja incrementada pelo valor indicado em seguida.
A repetio tambm pode ser interrompida antes da condio ser satisfeita atravs do comando break .

>>> x = 1
>>> while x < 10:
>>> print(x)
>>> if x == 3:
>>> break
>>> x += 1
1
2
3

Repeties

23

Apostila do Minicurso de Python - UFU

Nesse caso, se x for igual a 3 , eu interrompo a repetio, mesmo que a condio indique que ela s iria parar quando
alcanasse o valor 10 .

For (para) in (em)


Tenho um novo comando para voc: "Para cada chocolate na caixa, me entregue ele.", ento voc vai me entregar cada
chocolate que est na caixa.

>>> lista = [1,2,3]


>>> for numero in lista:
>>> print(numero)
1
2
3

Neste caso, para cada nmero na lista vamos imprimi-lo na tela.


A repetio for tambm pode ser interrompida com o comando break e, neste caso, tambm pode receber um else .

>>> lista = [1,2,3]


>>> for numero in lista:
>>> if numero == 4:
>>> print("Achei o 4.")
>>> break
>>> else:
>>> print("No encontrei o 4.")
No encontrei o 4.

Agora, o else ser chamado sempre que o for terminar de percorrer a lista e o break no for acionado.

Repeties

24

Apostila do Minicurso de Python - UFU

Orientao a Objetos
Vamos mergulhar mais a fundo dentro da linguagem e ter uma noo melhor da Orientao a Objetos. Primeiro, uma
breve introduo a esse conceito:
"A orientao a objetos um modelo de anlise, projeto e programao de sistemas de software baseado na composio
e interao entre diversas unidades de software chamadas de objetos." - Wikipedia
Os objetos na programao so como representaes de objetos reais. Por isso, podemos resumir a POO em um
exemplo simples:
Definimos um objeto carro e esse objeto tem mtodos (aes) e atributos (caractersticas).
Nesse caso, um carro pode ter um mtodo Ligar() , Acelerar() , Freiar() , Trocar_Marcha() , Desligar() , etc. Tudo isso
so aes que um carro poderia fazer.
Alm disso, um carro pode ter atributos como Cor , Quantidade_de_Lugares , Velocidade_Maxima , etc. Essas so
caractersticas que podem variar dependendo do carro.
Outra caracterstica importante a capacidade de herana dos objetos. Ento, eu poderia criar um objeto chamado Gol
que herda os mtodos e atributos do objeto carro e ainda pode ter seus prprios. Portanto, todo Gol seria um carro ,
mas nem todo carro seria um Gol .
Meu Gol teria o mesmo mtodo Ligar() , herdado de carro , mas ele tambm teria um mtodo Ligar_ar_condicionado()
que o objeto carro no tinha. Podemos, at, modificar o mtodo Ligar() do Gol , fazendo com que ele ligue de um jeito
diferente que o objeto carro .

Orientao a Objetos

25

Apostila do Minicurso de Python - UFU

Funes
Funes so aqueles nomes que usamos para realizar alguma ao em nosso cdigo. Por exemplo, quando utilizamos
input() em nosso programa, estvamos utilizando a funo input() para solicitar uma informao do usurio. Podemos,

tambm, criar nossas prprias funes.


A definio de uma funo dada pela instruo def seguida do nome da funo. Logo depois, especificamos dentro de
parnteses os parmetros que a funo deve receber.

>>> def subtrai(num1, num2):


>>> print(num1-num2)

Nesse caso, a funo subtrai recebe um parmetro chamado num1 e um parmetro chamado num2 . Logo, estamos
deixando claro que o usurio, quando chamar a funo subtrai , deve informar dois parmetros.
Em seguida, definimos que essa funo deve executar uma subtrao entre num1 e num2 e imprimir o resultado na tela.
Uma funo no executada assim que definida, mas somente quando chamada. Para chamar uma funo fazemos:

>>> subtrai(10, 4)
6

Ou seja, chamamos a funo pelo nome que demos a ela e passamos os parmetros que ela requer. Porm, nem sempre
queremos imprimir o resultado da nossa funo da tela.

>>> def subtrai(num1, num2):


>>> return(num1-num2)

Realizar a subtrao e imprimir a subtrao na tela so duas coisas diferentes. Logo, podemos suprimir o print e deixar a
funo realizar o clculo apenas. Usando return , podemos informar o resultado da funo sem precisar imprimi-lo na tela.
A funo tambm pode no ter parmetros ou ter parmetros opcionais. Nesse caso, daremos um valor padro para o
parmetro. Assim, se o usurio no informar um valor para o parmetro, usaremos seu valor padro.

>>> def repetir(qtd, caractere='a'):


>>> return(qtd*caractere)
>>> repetir(10)
'aaaaaaaaaa'
>>> repetir(20, '*')
'********************'

Inclusive, parmetros podem ser especificados na chamada da funo, mesmo quando so obrigatrios. Caso no sejam
nomeados, devem seguir a ordem na qual foram definidos.

>>> repetir(qtd=20, caractere='*')


'********************'

Funes

26

Apostila do Minicurso de Python - UFU

Variveis locais e globais


Quando usamos funes, precisamos nos atentar s variveis. Variveis locais existem somente dentro da funo onde
foram instanciadas, j variveis globais existem fora da funo e podem ser acessadas por todas as funes e mdulos.
Observe:

>>> def multiplica(num1, num2):


>>> a = num1
>>> b = num2
>>> return(a*b)

Nesse caso, a e b so variveis que s existem dentro da funo multiplica. Logo, so variveis locais.

>>> comida = "arroz"


>>> def qual_a_comida():
>>> print(comida)
>>> qual_a_comida()
>>> print(comida)

Aqui, definimos a varivel comida fora da funo, ento ela uma varivel global. Logo, podemos acessar a varivel
comida tanto dentro quanto fora da funo. Observe esse exemplo:

>>> comida = "arroz"


>>> def muda_comida():
>>> comida = "batata"
>>> print("Comida: {nova_comida}".format(nova_comida=comida))
>>> print(comida) #comida antes de mudar
'arroz'
>>> muda_comida() #chamando a funo
'Comida: batata'
>>> print(comida) #comida depois da funo muda_comida()
'arroz'

A comida continua sendo arroz ! Isso acontece porque, para Python, a varivel comida fora da funo e a varivel comida
dentro da funo so duas coisas diferentes. Uma uma varivel global e a outra local. Para alterarmos a varivel global
ao invs de criarmos uma local dentro da funo, devemos avisar que estamos chamando a varivel global:

>>> comida = "arroz"


>>> def muda_comida():
>>> global comida #avisando que queremos a varivel global
>>> comida = "batata"
>>> print("Comida: {nova_comida}".format(nova_comida=comida))
>>> print(comida) #comida antes de mudar
'arroz'
>>> muda_comida() # chamando a funo
'Comida: batata'
>>> print(comida) #comida depos da funo muda_comida()
'batata'

Variveis locais e globais

27

Apostila do Minicurso de Python - UFU

Classes
Agora os conceitos de Orientao a Objeto sero realmente aplicados. Vamos comear definindo o nosso molde de um
carro, e, por isso, vamos cham-lo de classe. Portanto, uma classe nada mais que o molde de um objeto.

>>> class Carro:


>>> def __init__(self):
>>> self.cor = "Preto"
>>> self.quatidade_de_lugares = 7
>>> self.velocidade_maxima = 200
>>> self.ligado = False
>>> self.marcha = 1
>>> self.velocidade = 0

A instruo class cria uma nova classe e seguida pelo nome que queremos dar a ela. A primeira coisa que fazemos
criar um novo mtodo (uma funo especfica da classe) e esse mtodo o __init__ . Esse um mtodo especial
chamado de construtor e executado sempre que um novo objeto da classe criado, para construir esse objeto. Ele
recebe self (si mesmo) como parmetro, isto , faz uma referncia ao objeto em si.

>>> carro = Carro()

O que acabamos de fazer foi criar um novo objeto e dizer que esse objeto ser igual a um Carro , isto , ter as mesmas
caractersticas e aes que nossa classe Carro tem.
Podemos modificar os atributos do nosso novo carro:

>>> carro.cor = "Vermelho"


>>> carro.velocidade_maxima = 250

Agora, nosso objeto tem diferentes atributos, mas a classe continua sendo um molde com os valores que passamos
quando a definimos. Note que acessamos os atributos por objeto.atributo e essa a forma padro de acess-los. Caso
queira verificar o status de um atributo, d um print do atributo desejado. Por exemplo:

>>> print(carro.cor)

Vamos adicionar algumas funcionalidades para o nosso carro:

>>> class Carro:


>>> def __init__(self):
>>> self.cor = "Preto"
>>> self.quatidade_de_lugares = 7
>>> self.velocidade_maxima = 200
>>> self.ligado = False
>>> self.marcha = 1
>>> self.velocidade = 0
>>>
>>> def Ligar(self):
>>> self.ligado = True
>>>
>>> def Acelerar(self):
>>> self.velocidade += 10
>>>
>>> def Freiar(self):
>>> self.velocidade -= 10

Classes

28

Apostila do Minicurso de Python - UFU

>>>
>>> def Trocar_Marcha(self, nova_marcha):
>>> self.marcha = nova_marcha
>>>
>>> def Desligar(self):
>>> self.ligado = False

Agora nosso carro tem vrias funcionalidades. Note que todos os mtodos devem receber self para indicar que estamos
trabalhando com o objeto em si.
Chamamos o mtodo da mesma forma como verificamos os atributos: indicando o objeto e o mtodo que estamos
chamando. Confira abaixo e verifique o status dos atributos a medida que executa os mtodos. Vamos dirigir um pouco:

>>> carro.Ligar()
>>> carro.Acelerar()
>>> carro.Trocar_Marcha(2)
>>> carro.Freiar()
>>> carro.Desligar()

Veja esse cdigo em: https://gist.github.com/JuliaRizza/afaf3d66c194300818d6

Classes

29

Apostila do Minicurso de Python - UFU

Herana
Como foi explicado antes, podemos criar um objeto que herde de uma classe. Podemos criar um Gol que herde de um
Carro .

>>> class Gol(Carro):


>>> def __init__(self):
>>> Carro.__init__(self)
>>> self.cor = "Prata"
>>> self.quantidade_de_lugares = 5
>>> self.ar_condicionado_ligado = False
>>>
>>> def Ligar_ar_condicionado():
>>> self.ar_condicionado_ligado = True
>>>
>>> def Ligar():
>>> self.ligado = True
>>> self.marcha = 6

Agora, nossa classe Gol tem as mesmas caractersticas e funcionalidades de um carro, porm modificamos algumas
coisas. Primeiro, chamamos o construtor de Carro para utilizar os mesmos atributos e mtodos da classe e, inclusive,
editamos alguns atributos. Depois, adicionamos um novo mtodo: o de ligar o ar condicionado. Por ltimo, reescrevemos a
funo Ligar() do carro e definimos que nosso Gol sempre vai ligar e j mudar para a marcha r!

>>> gol = Gol()


>>> gol.Ligar()
>>> gol.Acelerar()
>>> gol.Desligar()

Veja esse cdigo em: https://gist.github.com/JuliaRizza/afaf3d66c194300818d6

Herana

30

Apostila do Minicurso de Python - UFU

Conceitos finais
Aqui seguem alguns conceitos bsicos que vo te ajudar durante a maior parte das funcionalidades bsicas do seu
cdigo. Aproveite!

Conceitos Finais

31

Apostila do Minicurso de Python - UFU

Mdulos
Um mdulo um arquivo contendo cdigo Python. O nome do arquivo o nome do mdulo com o sufixo .py adicionado.
As principais bibliotecas de Python so mdulos que voc pode importar para dentro de seu cdigo, podendo fazer uso de
novas funes.

Import (Importar)
Mdulos podem ser importados para dentro de seu cdigo com o comando import, usualmente localizado no incio do seu
arquivo. Por exemplo:

>>> import datetime

datetime um mdulo que nos fornece diferentes funes para registrar, verificar e receber datas e horrios. Agora temos

acesso a funes que pertencem ao mdulo datetime, como:

>>> datetime.datetime.now()

Repetimos datetime pois primeiro chamamos o mdulo e depois o nome de uma classe do mdulo que tem o mesmo
nome e o mtodo now() .
Esse import semelhante :

>>> from datetime import *

Nesse caso, estamos dizendo que queremos importar tudo (simbolizado por * ) do mdulo datetime . Portanto, podemos
omitir o primeiro datetime quando chamarmos o mtodo, pois j especificamos que queremos tudo aquilo que est dentro
do mdulo, no o mdulo em si. Alm disso, podemos fazer:

>>> from datetime import datetime

Dessa forma, estamos especificando que queremos importar somente a classe datetime do mdulo datetime . Tambm
poderemos omitir o primeiro datetime quando chamarmos o mtodo, pois j indicamos que estamos tirando as
informaes do mdulo e no o mdulo em si.

Mdulos

32

Apostila do Minicurso de Python - UFU

Mensagens de Erro
Sempre que estivermos escrevendo algo errado ou um cdigo com mal funcionamento, o interpretador nos avisa por meio
de um erro indicando o arquivo e a linha onde o problema est. Nem sempre a linha exatamente a mesma de onde se
encontra o erro, mas o interpretador sempre indicar onde ocorreu a interrupo da execuo do programa.
A maioria dos erros so devido a um erro de digitao ou de coerncia do programador, portanto esteja sempre atento!
Confira abaixo os erros mais comuns.

Sintax Error (Erro de Sintaxe)


Acontece quando o interpretador incapaz de ler o que voc escreveu. Provavelmente, so erros de digitao ou dgitos a
mais ou esquecidos.

Identation Error (Erro de Indentao)


Ocorre sempre que sua indentao est incorretar. Podem ser espaos a mais ou a menos ou mesmo seu bloco de cdigo
alinhado de forma errada.

Key Error (Erro de Chave)


Ocorre quando tentamos acessar um dicionrio usando uma chave que no existe. Provavelmente, sua chave foi escrita
de forma errnea e o interpretador no encontrou nenhuma compatvel no dicionrio.

Name Error (Erro de Nome)


Ocorre quando um objeto chamado antes de ser criado. Por exemplo, chamar uma varivel x antes que essa varivel
tenha sido definida. Pode ser tambm que tenha escrito o nome da varivel de maneira errada, tome cuidado.

Value Error (Erro de Valor)


Ocorre quando uma funo de converso incapaz de executar sua tarefa, por exemplo, a funo int() recebe uma string
"teste" e incapaz de converter esse valor em um nmero inteiro; quando um valor retornado por uma funo invlido;
quando procuramos uma string que no existe.

Type Error (Erro de Tipo)


Ocorre quando chamamos uma funo passando mais parmetros do que ela realmente deve receber; quando trocamos o
tipo de um ndice, por exemplo, temos umas lista = ["banana", "ma", "tomate"] e tentamos pegar um valor por
lista["banana"] porm listas s leem ndices que so nmeros inteiros. Dicionrios, no entando, leem ndices strings.

Index Error (Erro de ndice)


Ocorre quando o valor do ndice invlido ou inexistente. Por exemplo, na lista = [1,2,3,4] caso eu pesquise por lista[10]
receberei um IndexError porque esse ndice no existe.

Mensagens de Erro

33

Apostila do Minicurso de Python - UFU

Bibliografia
1. Os bsicos de Python (http://cacho.la/julia/os-basicos-de-python)
2. Tutorial de Introduo ao Python - PET-Tele UFF
(http://www.telecom.uff.br/pet/petws/downloads/apostilas/PYTHON.pdf)
3. Introduo Lgica Binria
(https://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_programa%C3%A7%C3%A3o/L%C3%B3gica#L.
C3.B3gica_bin.C3.A1ria)

Bibliografia

34

S-ar putea să vă placă și