Você está na página 1de 44

Programação Orientada a Objetos -

Introdução a Programação em Python

Prof. Marcos Rabaioli


Sobre o Professor
Nome: Marcos Rabaioli

Email: eng.marcosra@gmail.com

Formação: Engenheiro de Controle e Automação

Atuação: Gerente de Software

Linguagens de Programação: Python, C/C++, PHP, Java, Javascript, HTML, CSS,


Jquery, Ladder, Grafcet, SQL, XML, Java Mobile, Angular JS, MATLAB e etc
Avaliação
G1 = Prova (peso 8) + Exercícios em Aula (peso 2)

G2 = Prova (peso 4) + Trabalho Final (peso 4) + Exercícios em Aula (peso 2)

Nota_final = (G1+G2)/2

if Nota_final >= 7,0:

print(“Aprovado!!!”)

else:

print(“Exame!!!”)
Um pouco de história
Em 1991, o matemático Guido van Rossum criou a linguagem de programação
Python, escreveu na documentação oficial da linguagem um breve histórico do
início do seu desenvolvimento. Conta que no final de 1990 nos laboratórios do
CWI, foi criado o Python como uma linguagem de scripts para o Sistema
Operacional Distribuído Amoeba.
Um pouco de história
Evolucionada da linguagem ABC, que tinha um foco para usuários como físicos,
engenheiros e lingüistas, ela nasce para ser uma linguagem para os leigos em
computação também a utilizarem. Em 1995, continuando o trabalho na CNRI nos
Estados Unidos e depois em 2000 na BeOpen.com, formando a BeOpen
PythonLabs.
Um pouco de história
Em outubro do mesmo ano, a PythonLabs mudou para Digital Creations,
atualmente chama-se Zope Corporation3. Em 2001, a Python Software
Foundation4 foi formada, uma organização não-comercial criada
especificamente para trabalhar com propriedade intelectual do software.
Um pouco de história
A linguagem foi pensada e estruturada para o ensino de programação, então ela
teria que conter uma compreensão simples da estrutura para o fácil aprendizado
e é isso que o Python apresenta, uma linguagem interpretada, de alto-nível e
orientada a objeto.

Sua sintaxe é simples e elegante, ideal para scripts e desenvolvimento de


aplicações rápidas, RAD. Guido van Rossum em entrevista para BeOpen.com
disse que "o difícil é criar uma linguagem que faça tanto sentido para outro ser
humano quanto faz para uma máquina ler”, é costume em palestras sobre a
linguagem dizer que “o que se pensa, escreve”.
Python no Mundo

Fonte: IEEE
Python no Mundo
Hoje, a linguagem é bem aceita na indústria por empresas de alta tecnologia,
tais como:

● Google (aplicações Web).


● Yahoo (aplicações Web).
● Microsoft (IronPython: Python para .NET).
● Nokia (disponível para as linhas recentes de celulares e PDAs).
● Disney (animações 3D).
● Nasa (gerência de modelos, integração e sistema colaborativo)
Características: Linguagem de alto nível
● Python é um exemplo de linguagem de programação de alto nível. Outras
linguagens de alto nível de que você já pode ter ouvido falar são C++, PHP e
Java.
● Como você pode deduzir a partir da expressão “linguagem de alto nível”,
também existem as “linguagens de baixo nível”, às vezes chamadas de
“linguagens de máquina” ou “linguagem assembly” (linguagens de
montagem). De forma simples, o computador só consegue executar
programas escritos em linguagens de baixo nível. Deste modo, programas
escritos em linguagens de alto nível precisam ser processados antes que
possam rodar. Esse processamento extra toma algum tempo, o que é uma
pequena desvantagem em relação às linguagens de alto nível.
Características: Linguagem de alto nível
● Mas as vantagens são enormes. Primeiro, é muito mais fácil programar em
uma linguagem de alto nível. É mais rápido escrever programas em uma
linguagem de alto nível; eles são mais curtos e mais fáceis de ler, e há maior
probabilidade de estarem corretos.
● Segundo, as linguagens de alto nível são portáveis, o que significa que podem
rodar em diferentes tipos de computador, com pouca ou nenhuma
modificação. Programas em baixo nível só podem rodar em um único tipo de
computador e precisam ser re-escritos para rodar em outro tipo.
Características: Linguagem de alto nível
def(a1,a2):
CBLOCK 0X20
N1
A1
N2
RE
return a1*a2
ENDC
#include <P16F877A.INC>
MOVLW D'
MOVWF N1
MOVWF A1
MOVWF N2
MOVWF RE
ROTINA_1
MOVLW D'5'
MOVWF N1
MOVWF A1
MOVLW D'3'
MOVWF N2
TESTE_UM
MOVF N2,W
XORLW D'1'
BTFSS STATUS,Z
GOTO SOMA
GOTO EH_UM
EH_UM
MOVF N1,W
MOVWF RE
GOTO FIM
SOMA
MOVF A1,W
ADDWF N1
DECF N2
GOTO TESTE_UM
FIM
END
Características: Linguagem de alto nível
● Dois tipos de programas processam linguagens de alto nível, traduzindo-as
em linguagens de baixo nível: interpretadores e compiladores. O
interpretador lê um programa escrito em linguagem de alto nível e o
executa, ou seja, faz o que o programa diz. Ele processa o programa um
pouco de cada vez, alternadamente: hora lendo algumas linhas, hora
executando essas linhas e realizando cálculos.
Características: Linguagem de alto nível
● O compilador lê o programa e o traduz completamente antes que o
programa comece a rodar. Neste caso, o programa escrito em linguagem de
alto nível é chamado de código fonte, e o programa traduzido é chamado de
código objeto ou executável. Uma vez que um programa é compilado, você
pode executá-lo repetidamente, sem que precise de nova tradução.
Características: Linguagem Interpretada
● Python é considerada uma linguagem interpretada, pois os programas em
Python são executados por um interpretador.
● O interpretador mais popular é escrito em C, e por isso, é também
conhecido como CPython.
● Existem também implementações de Python para .NET (IronPython), JVM
(Jython) e em Python (PyPy).
Características: Tipagem Dinâmica
● Python utiliza tipagem dinâmica, o que significa que o tipo de uma variável é
inferido pelo interpretador em tempo de execução (isto é conhecido como
Duck Typing). No momento em que uma variável é criada através de
atribuição, o interpretador define um tipo para a variável, com as operações
que podem ser aplicadas.
● A tipagem do Python é forte, ou seja, o interpretador verifica se as operações
são válidas e não faz correções automáticas entre tipos incompatíveis 3 . Para
realizar a operação entre tipos não compatíveis, é necessário converter
explicitamente o tipo da variável ou variáveis antes da operação.
Características: outras
● Tipos básicos poderosos: listas, dicionários (hash tables), strings, …
otimizados e de fácil uso.
● Baterias Inclusas: biblioteca padrão contém diversos recursos úteis:
● Interface Gráfica (Tk), XML, Servidores (TCP, UDP, HTTP, ...), HTML,
protocolos de internet (email, http, ...), xmlrpc, …
● Grande base de código e bibliotecas de terceiros
● Grande comunidade de desenvolvedores
● Software Livre: liberdade de uso, distribuição. Licença própria, compatível
com GPL, porém pode distribuir somente o binário.
● Independente: a entidade sem fins lucrativos Python Software Foundation
cuida da propriedade intelectual do Python.
Instalação: Windows
● O download do executável pode ser feito em
https://www.python.org/downloads/
● Após basta executá-lo e seguir as instruções.
Instalação: Linux
● Geralmente as distribuições UNIX/Linux já vem com o interpretador Python
● Mas caso não tiver instale com, por exemplo, Debian Linux, e entre no shell
como superusuário e digite:

sudo apt-get install python


Instalação: IDE PyCharm
● O download do executável pode ser feito em
https://www.jetbrains.com/pycharm/
● Após basta executá-lo e seguir as instruções.
Sintaxe
● Um programa feito em Python é constituído de linhas, que podem continuar
nas linhas seguintes, pelo uso do caractere de barra invertida (\) ao final da
linha ou parênteses, colchetes ou chaves, em expressões que utilizam tais
caracteres.
● O caractere # marca o início de comentário. Qualquer texto depois do # será
ignorado até o fim da linha , com exceção dos comentários funcionais.
Sintaxe
Comentários funcionais são usados para:

● alterar a codificação do arquivo fonte do programa acrescentando um


comentário com o texto “#-*- coding: <encoding> -*#-” no início do
arquivo, no qual <encoding> é a codificação do arquivo (geralmente latin1 ou
utf-8). Alterar a codificação é necessário para suportar caracteres que não
fazem parte da linguagem inglesa, no código fonte do programa.

● definir o interpretador que será utilizado para rodar o programa em


sistemas UNIX, através de um comentário começando com “#!” no início do
arquivo, que indica o caminho para o interpretador (geralmente a linha de
comentário será algo como “#!/usr/bin/env python”).
Sintaxe
Exemplo de comentários funcionais:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Uma linha de código que mostra o resultado de 7 vezes 3
print(7 * 3)
Sintaxe
# Uma linha quebrada por contra-barra
a=7*3+\
5/2
# Uma lista (quebrada por vírgula)
b = ['a', 'b', 'c',
'd', 'e']
# Uma chamada de função (quebrada por vírgula)
c = range(1,
11)
# imprime todos na tela
print(a, b, c)
Sintaxe
● Em Python, os blocos de código são delimitados pelo uso de endentação, que
deve ser constante no bloco de código, porém é considerada uma boa prática
manter a consistência no projeto todo e evitar a mistura tabulações e
espaços.
● A linha anterior ao bloco sempre termina com dois pontos (:) e representa
uma estrutura de controle da linguagem ou uma declaração de uma nova
estrutura (uma função, por exemplo).
Sintaxe
Exemplo
# Para i na lista 234, 654, 378, 798:
for i in [234, 654, 378, 798]:
# Se o resto dividindo por 3 for igual a zero:
if i % 3 == 0:
# Imprime…
print(i, '/ 3 =', i / 3)
Controle de Fluxo
É muito comum em um programa que certos conjuntos de instruções sejam
executados de forma condicional, em casos como validar entradas de dados, por
exemplo.

if <condição>:
<bloco de código>
elif <condição>:
<bloco de código>
elif <condição>:
<bloco de código>
else:
<bloco de código>
Controle de Fluxo
Na qual:
● <condição>: sentença que possa ser avaliada como verdadeira ou falsa.
● <bloco de código>: sequência de linhas de comando.
● As cláusulas elif e else são opcionais e podem existir vários elifs para o
mesmo if, porém apenas um else ao final.
● Parênteses só são necessários para evitar ambiguidades.
Exemplo
temp = int(input('Entre com a temperatura: '))
if temp < 0:
print 'Congelando...'
elif 0 <= temp <= 20:
print 'Frio'
elif 21 <= temp <= 25:
print 'Normal'
elif 26 <= temp <= 35:
print 'Quente'
else:
print 'Muito quente!'
Controle de Fluxo
A partir da versão 2.5, o Python suporta a expressão:

<variável> = <valor 1> if <condição> else <valor 2>


Laços: for
É a estrutura de repetição mais usada no Python. A instrução aceita não só
sequências estáticas, mas também sequências geradas por iteradores. Iteradores
são estruturas que permitem iterações, ou seja, acesso aos itens de uma coleção
de elementos, de forma sequencial
Laços: for
Laços: for
Durante a execução de um laço for, a referência aponta para um elemento da
sequência. A cada iteração, a referência é atualizada, para que o bloco de código
do for processe o elemento correspondente.
A cláusula break interrompe o laço e continue passa para a próxima iteração. O
código dentro do else é executado ao final do laço, a não ser que o laço tenha sido
interrompido por break

for <referência> in <sequência>:


<bloco de código>
continue
break
Exemplo
# Soma de 0 a 99
s=0
for x in range(1, 100):
s=s+x
print(s)
Função range()
A função range(m, n, p), é muito útil em laços, pois retorna uma lista de inteiros,
começando em m e menores que n, em passos de comprimento p, que podem ser
usados como sequência para o laço.

lista = range(0,10)

for item in lista:


print(item)
Laços: while
Executa um bloco de código atendendo a uma condição.

while <condição>:
<bloco de código>
continue
break
Laços: while
O bloco de código dentro do laço while é repetido enquanto a condição do
laço estiver sendo avaliada como verdadeira

# Soma de 0 a 99
s=0
x=1
while x < 100:
s=s+x
x=x+1
print(s)
Laços: while
O laço while é adequado quando não há como determinar quantas iterações vão
ocorrer e não há uma sequência a seguir.
Exercício 1
Crie um programa que receba uma temperatura em graus Celsius informada
pelo usuário e apresente­-a na tela em graus Farenheit. A fórmula de conversão
é:

F = (9*C + 160)/5

onde F é a temperatura em Farenheit e C é a temperatura em Celsius.


Exercício 2
Crie um programa que receba, através de um laço de repetição ‘for’, “n”
números inteiros informados pelo usuário e imprima na tela:
• A média dos números positivos informados;
• A média dos números negativos informados.
Exercício 3
Crie um programa que solicite 10 números inteiros ao usuário, armazene-­os em
um vetor e calcule a média aritmética dos 5 últimos elementos armazenados. O
valor da média e os 5 últimos elementos do vetor devem ser impressos na tela.
Exercício 4
Crie um programa que leia um vetor de tamanho “n” de números inteiros
distintos informada pelo usuário e imprima na tela qual é o maior e o menor
elemento. O vetor e os valores máximos e mínimos devem ser exibidos na tela.
Exercicios
Ao finalizar os exercícios, coloque os códigos em um arquivo compactado .zip
nomeado “nome_do_aluno.zip” e envie para o email eng.marcosra@gmail.com

Você também pode gostar