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