Você está na página 1de 53

Paradigma Estruturado

Linguagem Python
P Y T H O N U M A L I N G U AG E M D E P R O G R AM A O C R I AD A P O R G U I D O VAN
R O S S U M E M 1 9 9 1 . U M A L I N G U A G E M L I V R E E M U LT I P L ATA F O R M A . O S
OBJETIVOS DO PROJETO DA LINGUAGEM ERAM: PRODUTIVIDADE E
LEGIBILIDADE. CARACTERSTICAS QUE AJUDAM NO OBJETIVO: BAIXO
USO DE CARACTERES ESPECIAIS, O QUE TORNA A LINGUAGEM MUITO
PAR E C I D A C O M P S E U D O - C D I G O E X E C U T V E L ; O U S O D E I D E N TA O
P A R A M A R C A R B L O C O S ; Q U A S E N E N H U M U S O D E P A L AV R A S - C H AV E
V O LTAD AS PAR A A C O M P I L A O ; C O L E T O R D E L I X O PAR A G E R E N C I AR
A U T O M AT I C A M E N T E O U S O D A M E M R I A ;

AL M D I S S O , P Y T H O N S U P O R TA M LT I P L O S PAR AD I G M A S D E
P R O G R AM A O . A P R O G R AM A O P R O C E D I M E N TAL P O D E S E R U S AD A
PAR A P R O G R AM AS S I M P L E S E R P I D O S , M AS E S T R U T U R AS D E D AD O S
C O M P L E X AS , C O M O T U P L AS , L I S TAS E D I C I O N R I O S , E S T O D I S P O N V E I S
PAR A FAC I L I TAR O D E S E N V O LV I M E N T O D E AL G O R I T M O S C O M P L E X O S .

U M S U P O R T E M O D E S T O PAR A P R O G R AM A O F U N C I O N AL E X I S T E , O Q U E
T O R N A A L I N G U A G E M E X T R E M A M E N T E E X P R E S S I VA : F C I L FA Z E R
M U I TA C O I S A C O M P O U C AS L I N H AS D E C O M AN D O .
Sumrio

INSTRUO DE ATRIBUIO 3-4


CARACTERSTICAS DA LINGUAGEM 5-10
OPERADORES DO PYTHON 11-13
ESTRUTURAS DE CONTROLE 14
SEQUENCIA 15
SELEO(TOMADA DE DECISO) 16-19
REPETIO(ITERAO) 20-23
SUBPROGRAMA 24-28
CDIGO PE EM PYTHON 29-34
TESTE DE PROGRAMA 35-52
FLUXOGRAMA 53
Instruo de Atribuio

Um comando de atribuio em Python tem a seguinte


forma:
Varivel = expresso
A funo print() utilizada para o programa exibir
mensagens. Por exemplo:
Print(Ol Mundo!)
Um programa pode utilizar a funo input() para
receber os dados ou valores que um usurio fornece
atravs do teclado.
Instruo de Atribuio

Exemplo:
nome = input(Qual o seu nome?)
O valor que o usurio fornece e que ser retornada
pelo input() sempre um string e no um nmero.
Para ler um valor e convert-lo para um nmero
inteiro utilizamos a funo de converso int().
Ex:
Caractersticas da Linguagem

Legvel Identao obrigatria


Interpretada Compila bytecode e interpreta (.pyc,
.pyo)
Multiplataforma Windows, Linux/Unix, MacOS
Tipagem forte e dinmica
Multiparadigma Procedural, Funcional e Orientado a
Objetos.
Usada em vrias aplicaes: Web, desktop, sistemas
embarcados, sistemas 3D.
No h declaraes, apenas instrues (aes).
Tipagem Dinmica

Variveis (e parmetros) no tm tipos declarados


e podem ser associados a objetos de qualquer tipo em
tempo de execuo

Tambm conhecida como duck typing (tipagem


pato) nas comunidades Python, Ruby e Smalltalk
Tipagem Dinmica Forte

Python no faz converso automtica de tipos


excees, por praticidade:
int long oat
str unicode
Tipagem Forte e Dinmica

<type 'int'>

<type 'str'>

<type 'bool'>

<type 'list'>
Estruturas de Alto Nvel
Caracterstas da Linguagem

Python no tem tipos primitivos tudo objeto


(desde Python 2.2, dez/2001)
Operadores do Python

OPERADORES RELACIONAIS Exemplos:


Operadores do Python

OPERADORES ARITMTICOS Exemplos:


Operadores do Python

OPERADORES LGICOS Exemplos:


(conectivos)
Estruturas de Controle

Em Python, assim como na maioria das linguagens de


programao, o programa deve ser capaz de tomar decises
com base em valores e resultados gerados durante sua
execuo, ou seja, deve ser capaz de decidir se determinada
instruo deve ou no ser executada de acordo com uma
condio. Para atender a esse tipo de situao, podemos
utilizar instrues especiais denominadas estruturas
condicionais.
Alm dessas, as linguagens de programao normalmente
tambm suportam os chamados laos de repetio, estruturas
que permitem a execuo de instrues repetidas vezes, at
que uma condio seja atingida.

Veremos como funcionam e como utilizar as estruturas de


controle em Python: IF, FOR e WHILE.
Estruturas de Controle

Sequncia:

Para comentrio usado o #


Em Python, a indentao possui funo bastante
especial, at porque, os blocos de instruo so
delimitados pela profundidade da endentao, o mau
uso da identao acarretar na no execuo, ou
ento, no mal funcionamento em geral.
Estruturas de Controle

Seleo(tomada de deciso):
If.. else
Temos que entender que se a expresso definida no
cabealho da estrutura if [entre parntesis] , for
verdadeira, tudo que estiver nas linhas seguintes e com
a indentao avanada ser executado.
Caso a expresso contida entre parntesis no seja
verdadeiro, nada acontecera, e ser executada a
prxima linha que no caso o else, e ser executado o
que estiver na linha seguinte identada.
Estruturas de Controle
Ex:

Testando condicional:

Importante ressaltar que o Python no possui uma estrutura de


seleo do tipo switch, como C, C++ e Java. Podemos contornar a
situao com uma cadeia de if-elses.
Estruturas de Controle

Adicionalmente, se existir mais de uma condio


alternativa que precisa ser verificada, devemos utilizar
o elif para avaliar as expresses intermedirias antes
de usar o else.
Exemplo :
Estruturas de Controle

Testando condicional:

Na linha 3, verificamos se o valor informado est dentro de


uma faixa de valores especfica. Caso a condio seja satisfeita,
o programa executar a linha 4. Por outro lado, caso o
resultado no seja o esperado, ento o programa verificar o
prximo condicional, na linha 5 e, caso ele seja verdadeiro, a
linha 6 ser executada. O mesmo ocorre para a verificao da
linha 7. Por fim, se nenhuma das condies foi satisfeita, o
programa executar o que especificado no bloco else.
Estruturas de Controle

Repetio(iterao):

Em algumas situaes, comum que uma mesma instruo (ou conjunto


delas) precise ser executada vrias vezes seguidas. Nesses casos,
normalmente utilizamos um loop (ou lao de repetio), que permite
executar um bloco de cdigo repetidas vezes, enquanto uma dada condio
atendida.

Em Python, os loops so codificados por meio dos comandos for e while.


O primeiro nos permite percorrer os itens de uma coleo e, para cada um
deles, executar um bloco de cdigo. J o while, executa um conjunto de
instrues vrias vezes enquanto uma condio atendida.

Importante novamente ressaltar que no Python no existe os lao de


repetio (iterao) : do ...while como em outras linguagens estruturadas!
Estruturas de Controle

For
Exemplo de uso do comando for:

A varivel definida na linha 1 uma lista inicializada com uma


sequncia de valores do tipo string. A instruo for percorre
todos esses elementos, um por vez e, em cada caso, atribui o
valor do item varivel n, que impressa em seguida. O
resultado, ento, a impresso de todos os nomes contidos na
lista, como podemos ver abaixo:
Estruturas de Controle

While
O comando while, por sua vez, faz com que um conjunto de
instrues seja executado enquanto uma condio for atendida.
Quando o resultado passa a ser falso, a execuo
interrompida, saindo do loop, e passa para o prximo bloco.

No cdigo a seguir, vemos um exemplo de uso do lao while,


onde definimos a varivel contador, iniciando com 0, e
enquanto seu valor for menor que 5, executamos as instrues
das linhas 3 e 4.,
Estruturas de Controle

Observe que na linha 5 incrementamos a varivel contador, de


forma que em algum momento seu valor ultrapasse 5. Quando
isso for verificado na linha 3, o lao ser interrompido. Caso a
condio de parada nunca seja atingida, o loop ser executado
infinitamente, gerando problemas no programa.
Resultado do lao
while acima:
Sub-programas
(Funes em Python)

DIVIDIR PARA CONQUISTAR:


UM PROBLEMA DIVIDIDO EM DIVERSOS SUB-
PROBLEMAS
AS SOLUES DOS SUBPROBLEMAS SO COMBIN
ADAS NUMA SOLUO DO PROBLEMA MAIOR
CADA SUBPROGRAMA INVOCADO POR MEIO DE
UM IDENTIFICADOR E UMA LISTA DE ENTRADAS
PERMITE ESPECIFICAR COMO UM PROBLEMA PO
DE SER RESOLVIDO EM GERAL
O MESMO SUBPROGRAMA PODE SER INVOCADO
PARA RESOLVER DIVERSOS PROBLEMAS DE
MESMA NATUREZA,
MAS COM VALORES ESPECFICOS DIFERENTES.
Formato das Funes

Em Python, subprogramas tm o nome de funes, e tem o


seguinte formato:

Def nome (arg, arg, ... arg): comando ...


Comando

Onde:
NOME o nome da funo
ARGS so especificaes de argumentos da funo
Uma funo pode ter 0, 1 ou mais argumentos
COMANDOS contm as instrues a ser executadas
quando a funo invocada.
Formato das Funes

Para indicar o valor a ser devolvido como o resultado da


funo, usa-se o comando return que tem o formato:
return expresso
*onde a expresso opcional e designa o valor a ser retorna
do.
Ao encontrar o comando return, a funo termina imediata
mente e o controle do programa volta ao ponto onde a fun
o foi chamada.
Se uma funo chega a seu fim sem nenhum valor de retor
no ter sido especificado, o valor de retorno None.
Formato das Funes

Ex:

>>> def f():


return
>>> print f()
None
>>> def f():
return "Oi"
>>> print f()
Oi
>>> def f(nome):
return "Oi, "+nome+"!"
>>> print f("Joao")
Oi, Joao!
Funo

Exemplo prtico de funo:

Teste Funo
CDIGO PE em Python

Funo para imprimir Lista Tipo de Ocorrncia

Funo para imprimir a Ocorrncia


CDIGO PE em Python

Funo para buscar o Tipo de Ocorrncia:


CDIGO PE em Python

Funo para alocar uma Viatura aleatria para a Ocorrncia

Funo para opes do Menu do programa


CDIGO PE em Python

Criando Listas
CDIGO PE em Python

Chamando opes do Menu e criando o Menu:


CDIGO PE em Python
Teste de Programa

Testes da (OPO 1) de
(CADASTRAR TIPO DE OCORRNCIA):
Menu Inicial, escolhendo opo 1:
Teste de Programa

Inserindo cdigo da ocorrncia = 001;

Inserindo nome da ocorrncia = Furto;


Teste de Programa

Testando opo cadastrar outro tipo de ocorrncia;

Inserindo dados
novamente de cdigo
e nome
do tipo de ocorrncia
Teste de Programa

Escolhendo a opo de sair digitando n:

Programa volta
para menu
inicial:
Teste de Programa

Testes da (OPO 2) de
(CADASTRAR VIATURA):
Menu Inicial, escolhendo opo 2 Cadastrar Viatura:
Teste de Programa

Inserindo dados da placa da viatura:

Inserindo dados da marca da viatura


Teste de Programa

Inserindo dados do modelo da viatura

Escolhendo opo
de cadastrar outra
viatura:
Teste de Programa

Inserindo dados novamente da placa, marca e modelo


da viatura
Teste de Programa

Escolhendo a opo de sair digitando n:

Programa volta para


menu inicial:
Teste de Programa

Testes da (OPO 3) de
(CADASTRAR OCORRNCIA):
Menu Inicial, escolhendo opo 3 Cadastrar Ocorrncia:
Teste de Programa

(O programa mostra os tipos de ocorrncia j cadastradas)


Escolhendo o tipo Furto atravs do cdigo:001
Teste de Programa

Inserindo os dados
da data da
ocorrncia :

Inserindo dados da
hora da ocorrncia :
Teste de Programa

Inserindo dados do local da ocorrncia:

(O programa envia SMS para a viatura que atenda melhor a ocorrncia)


Escolhendo a opo de cadastrar outra ocorrncia:
Teste de Programa

Escolhendo novamente o tipo de ocorrncia a ser


registrada atravs do cdigo: 002

Inserindo dados novamente de data, hora e local


Teste de Programa

(O programa envia SMS para a viatura que atenda melhor a ocorrncia)


Escolhendo a opo sair digitando n:

Programa volta para menu inicial


Teste de Programa

Testes da (OPO 4) de (SAIR)


Menu Inicial, escolhendo opo 4 Sair:

O programa
finalizado:
Teste de Programa

Teste escolhendo opo inexistente no menu, maior


que 4:

(O programa emiti mensagem de erro e inicia o menu novamente)


Teste de Programa

Teste escolhendo opo inexistente no menu, menor


que 1:

(O programa emiti mensagem de erro e inicia o menu novamente)


Fluxograma