0% acharam este documento útil (0 voto)
7 visualizações86 páginas

Introducao Python

O documento é uma introdução à linguagem de programação Python, abordando suas características, aplicações e utilitários como o gerenciador de pacotes pip. Ele também explora conceitos fundamentais como tipos de dados, estruturas de controle, funções e tratamento de exceções. Além disso, apresenta exercícios práticos para reforçar o aprendizado dos conceitos discutidos.

Enviado por

sabrina.vianna
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações86 páginas

Introducao Python

O documento é uma introdução à linguagem de programação Python, abordando suas características, aplicações e utilitários como o gerenciador de pacotes pip. Ele também explora conceitos fundamentais como tipos de dados, estruturas de controle, funções e tratamento de exceções. Além disso, apresenta exercícios práticos para reforçar o aprendizado dos conceitos discutidos.

Enviado por

sabrina.vianna
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Introdução à

Linguagem Python
Revisão sobre Python

O que é Python?
•Linguagem de programação de alto nível, interpretada e de propósito geral.
•Criada por Guido van Rossum em 1991.
•Nome inspirado no grupo de comédia britânico Monty Python.

Objetivo do Python:
•Tornar a programação mais intuitiva e acessível.
•Favorecer a legibilidade do código.

Principais aplicações:
•Desenvolvimento Web (Django, Flask)
•Ciência de Dados e Machine Learning (Pandas, NumPy, TensorFlow)
•Automação de tarefas
•Jogos e gráficos 3D (Pygame, Blender)
Características Principais

Linguagem de Progamação de Alto Nível: Python é uma linguagem


que sua escrita é bem próxima da linguagem humana;
Linguagem Interpretada: o código fonte nessa linguagem é executado
por um programa de computador chamado interpretador, que em seguida
é executado pelo sistema operacional ou processador;
Linguagem de Script: é básicamente o ato de desenvolver um
algoritmo para automatizar a execução de tarefas;
Linguagem Orientada a Objetos: Trata da ideia de se ter uma
linguagem de programação voltada ao conceito de "objetos", usando para
isso atributos (dados na forma de campo) e métodos (procedimentos de
execução).
Características Principais

• Linguagem Funcional: Trata da ideia de possuir uma linguagem com


avaliação de funções para executar determinadas ações;
• Linguagem de Tipagem Dinâmica: permite o uso de variáveis que
não exigem declarações de tipos de dados, pois são capazes de
escolher que tipo utilizar dinamicamente;
• Linguagem Multi-plataforma: está presente em diversos sistemas
operacionais, seja eles embarcados ou não.
Revisão sobre Python

O que é Python?
•Linguagem de programação de alto nível, interpretada e de propósito geral.
•Criada por Guido van Rossum em 1991.
•Nome inspirado no grupo de comédia britânico Monty Python.

Objetivo do Python:
•Tornar a programação mais intuitiva e acessível.
•Favorecer a legibilidade do código.

Principais aplicações:
•Desenvolvimento Web (Django, Flask)
•Ciência de Dados e Machine Learning (Pandas, NumPy, TensorFlow)
•Automação de tarefas
•Jogos e gráficos 3D (Pygame, Blender)
Utilitário pip

é o gerenciador de pacotes oficial do Python. Ele permite instalar,


atualizar e remover bibliotecas e módulos Python de forma simples
O nome “pip” é um acrônimo recursivo para: "Pip Installs Packages“

Com pip, você pode:


• Instalar bibliotecas de terceiros (como numpy, pandas, flask,
requests, etc.)
• Atualizar pacotes existentes
• Remover pacotes não desejados
• Listar tudo que está instalado no seu ambiente Python

Exemplos: pip install requests


Utilitário pip

Gerar um arquivo [Link] com os pacotes utilizados no projeto:


pip freeze > [Link]

Instalar pacotes a partir de um arquivo de requirements:


pip install -r [Link]

Atenção
Antes de iniciar a instalação dos pacotes do projeto, é
recomendado a criação de um ambiente virtual de programação para o
projeto. Desta maneira, os pacotes instalados serão visíveis apenas ao
projeto:
python –m venv <nome_pasta_ambiente>
Versões do Python e IDE’s

Python 3.9+

IDEs
• PyCharm

• Visual Studio Code


Tipos de Dados

Tipos de Dados Básicos Comandos


Números int, float e complex
Strings str
Lista e Tuplas list, tuple
Dicionários dict
Arquívos file
Booleanos bool(True, False)
Conjuntos set, frozenset
Tipos de Dados

# Inteiro
idade = 25
print(type(idade)) # <class 'int'>

# Número decimal
altura = 1.75
print(type(altura)) # <class 'float'>

# Texto (string)
nome = "Ana"
print(type(nome)) # <class 'str'>

# Booleano (verdadeiro ou falso)


maior_de_idade = True
print(type(maior_de_idade)) # <class 'bool'>
Tipos de Dados

# Lista (estrutura de dados mutável)


frutas = ["maçã", "banana", "uva"]
print(type(frutas)) # <class 'list'>

# Tupla (estrutura imutável)


coordenadas = (3, 4)
print(type(coordenadas)) # <class 'tuple'>

# Dicionário (estrutura chave-valor)


aluno = {"nome": "João", "idade": 20}
print(type(aluno)) # <class 'dict'>
Indentação

é o recuo de linhas de código em relação à margem esquerda. Em


Python, ela define blocos de código.
Diferente de outras linguagens (como C, Java ou JavaScript), que usam
{} para delimitar blocos, o Python usa a indentação para isso.
Evite Misturar espaços e tabulações porque pode causar erro.

Correto Errado
if idade >= 18: if idade >= 18:
print("Você é maior de idade.") # print("Você é maior de idade.") # ERRO! Espera
dentro do bloco indentação
print("Fim do programa.") # fora do # Erro
bloco
Estrutura Condicional

Vamos agora ver estruturas responsáveis por tomadas de decisões, como


"if", "elif" e "else". Basicamente podemos entender esses comandos,
respectivamente, da seguinte forma: se, se não se e caso contrário.

numero1 = int(input("Insira um primeiro número inteiro: "))


numero2 = int(input("Insira um segundo número inteiro: "))

if(numero1 > numero2):


print("{} é maior a {}".format(numero1, numero2))
elif(numero1 == numero2):
print("{} é igual a {}".format(numero1, numero2))
else:
print("{} é menor a {}".format(numero1, numero2))
Estruturas de Repetição (loop)

for
• estrutura de repetição for é utilizada quando se deseja repetir
determinados passos programados em um número determinando de
vezes previamente conhecidos.

for indice in range(0,11):


print(indice)
Estruturas de Repetição (loop)

while
• A estrutura de repetição while ela está nas mesmas condições que a
estrutura de repetição for. A diferença notável entre as duas é que a
ordem de parada do for é previsível e a do while não.

comando = "“

while comando != "sair":


comando = input("Digite um comando ('sair' para encerrar): ")
print("Você digitou:", comando)
Estruturas de Repetição (loop)

break e continue
• O comando break quando executado dentro de um for ou while
interrompe as repetições. O continue interrompe a execução do código
dentro do loop, permitindo o reinício da execução de uma novo
loop/repetição.
for indice in range(1, 11):
continue print(indice)
break for indice in range(1, 11): if(indice == 5):
print(indice) continue
if(indice == 5): print('oi')
1 oi
break 2 oi
print('oi’) 3 oi
1 oi 4 oi
2 oi 5
6 oi
3 oi 7 oi
4 oi 8 oi
5 9 oi
10 oi
Exercício
Crie um programa com:

• Entrada do nome do usuário


• Um menu com 3 opções:
• Verificar se um número é par ou ímpar
• Informar o número
• Calcular média de 3 notas
• Informar três notas
• Sair
• Use while, if e input().
Funções

• Uma função é um bloco de código reutilizável que executa uma


tarefa específica.

• Ela evita repetição de código, organiza melhor o programa e


permite modularização.

• Por que utilizar funções?


1. Reutilizar código com facilidade
2. Dividir problemas grandes em partes menores
3. Deixar o código mais limpo, legível e organizado
Funções Nome da função Parâmetro da função

def saudacao(nome):
print("Olá! Seja bem-vindo(a) " + nome )

saudacao('Maria')
saudacao('João')
Funções com retorno

Retorno da função
def soma(a, b):
return a + b

resultado = soma(3, 5)
print("A soma é:", resultado)
Funções com Type Hints

são anotações que indicam os tipos esperados para os parâmetros e o


tipo de retorno de uma função. Eles não são obrigatórios, mas
ajudam na legibilidade,

Sem Type Hint Com Type Hint

def soma(a, b): def soma(a: int, b: int) -> int:


return a + b return a + b
Funções com valores default

Parâmetros com valor default são opcionais: se não forem passados, o


Python usará o valor padrão definido.

def saudacao(nome="visitante"):
print(f"Bem-vindo(a), {nome}!")

saudacao("Felippe") # → Bem-vindo(a), Felippe!


saudacao() # → Bem-vindo(a), visitante!
OBS: Os parâmetros com default devem vir depois dos
obrigatórios:

def funcao(a, b=10): # ok


def funcao(a=10, b): # erro
Exercícios

Crie uma função que receba dois números e retorne o maior.

Crie uma função que receba um número e diga se ele é primo.

Crie uma função que receba uma lista de números e retorne a média.
Tratamento de Exceções

É uma forma prática de garantir que o programa não termine sua


execução no meio da operação;
Através de seu uso, é possível garantir que determinados erros não
travem um programa por completo;
O tratamento é feito pelos blocos try e except.
A instrução dentro do finally SEMPRE SERÁ EXECUTADO!

try:
12 / 0 Tente executar a
operação 12/0 sem as
except ZeroDivisionError: cláusulas try...except e
print('Não é possível dividir por zero!’) observe o resultado
finally:
print(‘Sempre executa’)
Exercício

1. Escreva um programa que peça dois números ao usuário (numerador e


denominador) e tente realizar a divisão. O programa deve:

• Tratar o erro de divisão por zero.


• Tratar o erro caso o usuário digite letras ou símbolos.
• Exibir uma mensagem final usando o finally, independentemente de
erro ou sucesso.

2. Escreva um programa que tente abrir um arquivo chamado [Link],


leia seu conteúdo e exiba na tela. Caso o arquivo não exista, exiba uma
mensagem de erro. Independentemente do resultado, mostre a
mensagem "Fim da leitura".
Utilização de Pacotes

É a possibilidade de utilizar bibliotecas de funções desenvolvidas por


outras pessoas, incorporando ao nosso código
Existe pacotes pré-configurados na instalação Python, por exemplo:
random, os, sys, math;
Também é possível instalar pacotes de terceiros em nosso ambiente;
A instalação normalmente é realizada com o utilitário pip
Ex:
pip install numpy
Utilização de Pacotes

A utilização do pacote é realizada através da instrução import

Pacote instalado
import numpy as np Utilização apenas de
from random import randint uma função do pacotes

n = 100 Utilização da função arange


x = [Link](n) do pacote numpy
num_random = randint(1, 100)
Utilização da função randint
Estrutura de Dados no Python

O Python possui algumas estruturas de dados prontas para uso:

Listas (list) – Estrutura ordenada e mutável.

Tuplas (tuple) – Estrutura ordenada e imutável.

Conjuntos (set) – Estrutura não ordenada e mutável.

Dicionários (dict) – Estrutura de pares chave-valor, sem


ordenação garantida (até o Python 3.6).
Estrutura de Dados no Python (list)

As listas são estruturas ORDENADAS e MUTÁVEIS:

# Lista vazia
minha_lista = []

# Lista com elementos


numeros = [1, 2, 3, 4, 5] Vários tipos
nomes = ["Ana", "Carlos", "Maria"]
mistura = [10, "Python", 3.14, True]
Estrutura de Dados no Python (list)

# Adicionando elementos
[Link](6) # Adiciona no final
[Link](2, 99) # Insere 99 na posição 2

# Removendo elementos
[Link](99) # Remove a primeira ocorrência do número 99
ultimo = [Link]() # Remove e retorna o último elemento
del numeros[0] # Remove o elemento na posição 0

# Ordenando e contando elementos


[Link]() # Ordena a lista (crescente)
[Link]() # Inverte a ordem da lista
print([Link](2)) # Conta quantas vezes o número 2 aparece
Estrutura de Dados no Python (list)

List Comprehension
maneira concisa e eficiente de criar listas em Python. Com ela, podemos gerar
listas em uma única linha de código, tornando o código mais legível e
reduzindo a necessidade de for loops tradicionais.

lista = [item for item in [1, 2, 3]]

é equivalente a

lista = []
for item in [1, 2, 3]:
[Link](item)
Estrutura de Dados no Python (list)
List Comprehension com Condição (if)

pares = [x for x in range(10) if x % 2 == 0]


print(pares) # [0, 2, 4, 6, 8]

Outros Tipos de Comprehensions

# tuplas
quadrados_set = {x ** 2 for x in range(10)}
print(quadrados_set) # {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}

# dicionários
quadrados_dict = {x: x ** 2 for x in range(5)}
print(quadrados_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Exercício
Crie um programa em Python que funcione como uma lista de telefones com as
seguintes funcionalidades:
Exibir um menu com 3 opções:
1 - Adicionar telefone
2 - Remover telefone
3 - Verificar telefone
4 - Mostrar agenda
0 - Sair
Adicionar item: o programa deve solicitar o nome e telefone e adicionar à
lista caso ainda não exista. Se já existir, exibir mensagem: “Contato já cadastrado."
Remover item: solicitar o telefone e, se estiver na lista, remover. Se não
estiver, exibir mensagem: “Contato não encontrado."
Verificar item: solicitar o telefone e informar se o item está ou não na lista.
Mostrar lista: exibir todos os contatos da lista.
Estrutura de Dados no Python (tuple)
As tuplas são estruturas ORDENADAS e IMUTÁVEIS:

# Tupla vazia
minha_tupla = ()

# Tupla com elementos


valores = (10, 20, 30)
nomes = ("Ana", "Carlos", "Maria") Vários tipos

mistura = (1, "Python", 3.14)

# Tupla de um único elemento (precisa da vírgula)


unica = (42,)
Estrutura de Dados no Python (tuple)

print([Link](10)) # Conta quantas vezes o número 10


aparece
print([Link](20)) # Retorna o índice onde o valor 20 aparece

valores[0] = 100 # Isso causa um erro, pois tuplas são imutáveis

Erro em tempo
de execução
Estrutura de Dados no Python (set)

Os conjuntos são estruturas NÃO ORDENADAS, MUTÁVEIS


e SEM REPETIÇÕES:

# Conjunto vazio
meu_conjunto = {} Cada iteração pode
apresentar ordens
diferentes
# Conjunto com elementos
valores = {10, 20, 30}
nomes = {"Ana", "Carlos", "Maria“}
mistura = {1, "Python", 3.14} Vários tipos
Estrutura de Dados no Python (set)

Permite operação da lógica de conjuntos:

A = {1, 2, 3}
B = {3, 4, 5}

print(A | B) # União: {1, 2, 3, 4, 5}


print(A & B) # Interseção: {3}
print(A - B) # Diferença: {1, 2}
print(A ^ B) # Diferença simétrica: {1, 2, 4, 5}
Estrutura de Dados no Python (set)

• Podemos adicionar e remover elementos do conjunto, desde que sejam


elementos imutáveis (ex.: números, strings, tuplas). Não posso
adicionar uma lista ao conjunto:

meu_set = {1, 2, 3}
meu_set.add(4) # Adiciona um elemento
meu_set.remove(2) # Remove um elemento

• Podemos criar um conjunto VAZIO:

vazio = set() # Correto


errado = {} # Isso cria um dicionário, não um set
Estrutura de Dados no Python (dict)

Os dicionários armazenam pares CHAVE-VALOR, e têm boa


perfomance na busca:

# Dicionário vazio
meu_dict = {}

# Dicionário com dados Dicionário com 3


pessoa = { pares de chave-
"nome": "Ana", valor
"idade": 25,
"cidade": "São Paulo"
}

print(pessoa["nome"]) # "Ana"
print([Link]("idade")) # 25
Estrutura de Dados no Python (dict)

del pessoa["cidade"] # Remove "cidade"


idade = [Link]("idade") # Remove "idade" e retorna o valor
[Link]() # Remove todos os itens do dicionário

print([Link]()) # Retorna todas as chaves


print([Link]()) # Retorna todos os valores
print([Link]()) # Retorna todos os pares chave-valor
Exercício
Crie um programa que funcione como um cadastro de funcionários, com as
seguintes funcionalidades:
Regras:
O programa deve permitir o cadastro de vários funcionários.
Para cada funcionário, solicite:
• Nome
• Idade
• Cargo
• Salário
Cada funcionário deve ser armazenado em um dicionário, e todos os dicionários
devem ser guardados em uma lista.
Ao final, o programa deve:
• Mostrar todos os funcionários cadastrados.
• Exibir a média salarial.
• Mostrar os nomes dos funcionários com salário acima de R$ 5.000,00.
Exercício

1. Crie um programa que solicite ao usuário o nome, idade e cidade,


armazenando os dados em um dicionário. Depois, exiba essas
informações formatadas.

2. Dado a lista de números [1, 1, 2, 3, 4, 5, 5, 6, 6, 6, 7, 8, 8, 9],


inicialize um objeto list com os valores informados, removendo os
números repetidos.

3. Utilizando a mesma lista fornecida no exercício anterior, utilize um


objeto set para remover as repetições.
Questões

O que acontece se tentarmos adicionar um elemento a uma tuple


existente?

A) O novo elemento será adicionado ao final da tuple


B) A tuple será automaticamente convertida para list
C) O Python lançará um erro, pois tuple é imutável
D) O Python criará uma nova tuple contendo os elementos antigos e o novo
elemento
Questões – FCC 2024 - TRT

Um Técnico está processando grandes volumes de dados e precisa


verificar se há valores duplicados em uma coleção de milhares de
elementos. A ordem dos elementos não é importante, mas o
processamento precisa ser o mais eficiente possível para identificar e
eliminar quaisquer duplicatas. A estrutura de dados que deve ser usada em
Python, nesse caso, é

A) Pilhas (stack).
B) Listas (list).
C) Tuplas (tuple).
D) Conjuntos (set).
E) Dicionários (dict).
Questões – QUADRIX 2025 - CFO
Os desenvolvedores dispõem de uma grande variedade de linguagens de
programação, cada uma com suas vantagens e desvantagens. Com base
nessa informação, julgue o item a seguir.

Python é uma linguagem de programação de propósito geral amplamente


utilizada em desenvolvimento web, automação, ciência de dados e
aprendizado de máquina, e sua sintaxe clara e concisa a torna ideal para
iniciantes e profissionais experientes.

CERTO

ERRADO
Questões – FCPC - 2025 - UFC

Em Python, qual das alternativas abaixo descreve corretamente a função


do método .append() aplicado a listas?

A) Substitui todos os elementos da lista por um novo valor.


B) Adiciona um elemento ao final da lista.
C) Insere um elemento no início da lista.
D) Remove o último elemento da lista.
Questões – FCPC - 2025 - UFC
Em Python, o conceito de comprehension permite criar listas, dicionários e
conjuntos de forma rápida, concisa e eficiente. Analise o código abaixo e escolha a
alternativa que indica a saída correta.

numeros = [1, 2, 3, 4, 5]
resultado = [x**2 for x in numeros if x % 2 == 0]
print(resultado)

Qual será a saída ao executar o código acima?


Alternativas
A) [2, 4].
B) [4, 16].
C) [1, 9, 25].
D) [1, 4, 9, 16, 25].
Questão – Compreve – 2023 - UFRN

Considerando que esse código é executado sem erros, então, o resultado


impresso, após o comando na linha 18, é

A) DVWYX
B) CDVWY
C) DVWYB
D) CDVWZ
Questão – Compreve – 2023 - UFRN

A linguagem de programação Python possui algumas estruturas de dados com


diferentes características e finalidades. Sobre essas estruturas de dados, analise as
afirmativas abaixo.
I. Em um set, é possível ter valores duplicados.
II. Em uma tupla, é possível ter valores duplicados.
III. Em um dicionário, é possível indexar os itens com valores inteiros.
IV. Em uma lista, é possível indexar os itens com strings.
Entre as afirmativas, estão corretas

A) II e III.
B) III e IV.
C) I e II.
D) I e IV.
Questão – Consuplan – 2025 – TJ-RO
I. O código utiliza uma estrutura de controle de fluxo (if-elif-else) para categorizar os processos
com base no tempo de tramitação.
II. O resultado armazenado na lista categorias será: ['Rápida', 'Moderada', 'Lenta', 'Rápida',
'Moderada', 'Moderada', 'Lenta'].
III. O comando elif permite adicionar múltiplas condições ao controle de fluxo, mas,
sintaticamente, não pode ser utilizado sem que exista um comando if no mesmo bloco.
IV. Caso o analista substituísse o operador <= por < na linha elif t <= 365, apenas um dos
sete processos teria a sua classificação modificada.

Está correto o que se afirma em

A) I, II, III e IV.


B) I e II, apenas.
C) II e IV, apenas.
D) I, II e III, apenas.
E) I, III e IV, apenas.
Tabela Verdade
Operador Lógico E &&
• A proposição é verdadeira quando as duas condições são
VERDADEIRAS
• Ex:
• Brasil está na América E Brasília é uma capital Verdadeiro

• Brasília é a capital do Brasil E hoje é domingo Falso

Operador Lógico OU ||
• A proposição é verdadeira quando pelo menos uma condição é
VERDADEIRAS
• Ex:
• Cruzeiro é um time mineiro OU Cruzeiro é um time goiano Verdadeiro
• Hoje é domingo OU Brasil é hexacampeão de futebol Falso
Exercício

Crie um programa em Java que peça ao usuário dois valores booleanos:

Tem cadastro no sistema? (true / false)


Possui permissão de acesso? (true / false)

O programa deve verificar se o usuário pode acessar um determinado


recurso, seguindo as regras:

O acesso só será permitido se o usuário tiver cadastro (true) e permissão


(true).
Caso contrário, o acesso deve ser negado.
Exercício

Crie um programa que peça ao usuário um nome de usuário e uma


senha. O login será aceito se:

•O usuário for "admin" E a senha for "1234", OU


•O usuário for "user" E a senha for "abcd“

Caso contrário, o login deve ser rejeitado.


Exercício

• Escreva um programa que gere um número aleatório


entre 1 e 100 e peça para o usuário adivinhar. O
programa deve informar se o palpite é maior ou
menor que o número secreto até que ele acerte.
Questão – IBFC – 2024 – TRT 5ª Região

Assinale a alternativa que apresenta o que será exibido ao termino da execução do


código.

A) Primeira condição verdadeira


B) Segunda condição verdadeira
C) Nenhuma condição verdadeira
D) Erro
Vetores e Matrizes sem biblioteca (numpy)

• São criados a partir de listas


• Não permite operações matemáticas entre os vetores e matrizes
• Requer laços para somas e multiplicações
vetor = [2, 4, 6]
print(vetor[1]) # saída: 4

matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matriz[1][2]) # saída: 6 (linha 2,
coluna 3)
Vetores e Matrizes com biblioteca (numpy)

• Permite a realização de cálculos entre os objetos de forma otimizada

import numpy as np matriz = [Link]([


vetor = [Link]([2, 4, 6]) [1, 2, 3],
print(vetor[1]) # saída: 4 [4, 5, 6],
print(vetor + 3) # saída: [5 7 9] (soma [7, 8, 9]
elemento a elemento) ])

print(matriz[1, 2]) # saída: 6 (linha


2, coluna 3)
print([Link]) # saída: (3, 3)
Vetores e Matrizes com biblioteca (numpy)

A = [Link]([[1, 2], [3, 4]])


B = [Link]([[5, 6], [7, 8]])

print(A + B) # soma matriz a matriz


print(A * B) # multiplicação elemento a elemento
print([Link](A, B)) # multiplicação matricial (A × B)
Exercício

• Escreva um programa em Python que:


• Leia duas matrizes 2×2 digitadas pelo usuário.

• Calcule e imprima a matriz soma.

• Usando NumPy, crie duas matrizes 3×3 com valores


definidos no código.
• Calcule a multiplicação matricial entre elas.

• Calcule o determinante da primeira matriz.

• Calcule a inversa, se existir.


Classes e Objetos

O que é uma classe?


É uma descrição de como um OBJETO deve ser

O que é um objeto?
É uma INSTÂNCIA de um OBJETO
Como transformar
um carro em uma
classe?
O que um carro possui?
ATRIBUTOS

MARCA MODELO COR PLACA ....


O que um carro faz?
MÉTODOS

Acelerar Parar Reproduzir ...


música
Vamos transformar nosso CARRO
em uma CLASSE

class Carro:
def __init__(self, marca, modelo, cor):
[Link] = marca
[Link] = modelo
[Link] = cor Atributos
[Link] = 0

def acelerar(self):
[Link] += 10
Métodos

def freiar(self):
[Link] -= 10
Quando nossa CLASSE vira um OBJETO?

Ex:
Quando Definimos valores
INSTANCIAMOS nossa para nossos atributos
CLASSE
Objeto 1: Ferrari – Vermelha –
ABC1234
Objeto 2: Fiat - Uno – Branco –
XYZ1234
Exercício
Crie uma classe ContaBancaria que represente uma conta bancária
simples. A classe deve possuir os seguintes atributos:

•numeroConta (String)
•titular (String)
•saldo (double)

Implemente os seguintes métodos:

[Link]: Recebe um valor e adiciona ao saldo.


[Link]: Recebe um valor e subtrai do saldo, mas apenas se houver saldo
suficiente. Caso contrário, exibe uma mensagem de saldo insuficiente.
[Link] saldo: Mostra o saldo atual da conta.
Exercício

Vamos implementar uma classe Retangulo:

– Com construtor que recebe os seguintes parâmetros


(x1, y1, x2, y2)
- A classe possui dois atributos de instância
- base
- altura
- A classe possui dois métodos
– Calcular perímetro
– Calcular área
Construtores

• É um método que cria objetos;

• Os construtores são identificados por __init__;

• É o primeiro método a ser executado na criação de


um objeto;

• Só pode existir um único método __init__ na classe.


Construtores

class Animal:
def __init__(self, nome, idade):
[Link] = nome
[Link] = idade

animal1 = Animal("lulu", 2)
Exercício

1. Crie uma classe Pessoa que possua dois atributos (nome e


idade) e um método apresentacao que exiba o nome e a
idade da pessoa.

2. Crie uma classe chamada ContaBancaria com os seguintes


atributos e métodos:Atributos: titular,
saldoMétodos:depositar(valor): adiciona valor ao
saldosacar(valor): reduz valor do saldo, se houver saldo
suficienteexibir_saldo(): imprime o saldo atualCrie um objeto
dessa classe e teste os métodos de depósito e saque.
Tipos de Variáveis

Existem 3 tipos de variáveis:


• Local

• Declaradas dentro de métodos

• Instância

• Declaradas dentro de classes

• Global

• Declaradas fora de classes e métodos


Variável Local

Variáveis locais são declaradas dentro de um método e são acessíveis


apenas dentro desse método. Elas são criadas quando o método é
chamado e destruídas quando o método termina sua execução.

def metodo(self):
x = 10 # Variável local
print(x)

obj = Exemplo()
[Link]()
print(x) # Isso daria erro, pois 'x' é local ao método
Variável de Instância

Variáveis locais são declaradas dentro de um método e são acessíveis


apenas dentro desse método. Elas são criadas quando o método é
chamado e destruídas quando o método termina sua execução.

class Exemplo:

def __init__(self, valor):


[Link] = valor # Variável de instância

obj1 = Exemplo(10)
obj2 = Exemplo(20)

print([Link]) # Saída: 10
print([Link]) # Saída: 20
Variável Global

São declaradas fora de qualquer classe ou função e podem ser


acessadas de qualquer parte do código. No entanto, seu uso deve ser
feito com cautela para evitar efeitos colaterais inesperados.

global_var = 100 # Variável global

class Exemplo:

def mostrar(self):
print(global_var) # Acessando a variável global

obj = Exemplo()
[Link]() # Saída: 100
Variável Global

Se quisermos modificar a variável global dentro de um método, devemos


usar a palavra-chave global:

global_var = 100

def alterar_global():
global global_var
global_var = 200

alterar_global()
print(global_var) # Saída: 200
Exercício

Crie uma classe Carro com uma variável de instância modelo e um


método para exibir o modelo do carro. Instancie dois objetos e exiba seus
modelos.
Exercício

Modifique a variável global abaixo dentro de uma função e exiba o novo


valor:

global_numero = 50

def modificar():
# Altere global_numero aqui
pass

modificar()
print(global_numero)
Herança de Classes

• mecanismo que permite que uma classe (chamada de subclasse)


herde atributos e métodos de outra classe (chamada de superclasse)

• promove a reutilização de código e facilita a organização do código


Relacionamentos – HERANÇA

Vamos pensar em uma livraria...

Temos vários PRODUTOS...

Um dos PRODUTOS poderia ser um LIVRO...


Relacionamentos – HERANÇA

Temos duas formas de resolver essa questão... Repetição


de
atributos
Podemos criar uma classe para cada PRODUTO,
repetindo todos os atributos e métodos necessários...

LIVRO PenDrive CD
- Codigo - Codigo - Codigo
- Nome - Nome - Nome
- Valor - Valor
... - Valor
- Editora - Capacidade - Autor
- ... - ... - ...
Relacionamentos – HERANÇA

Ou podemos identificar atributos e métodos


comuns e transmiti-los às outras classes...

LIVRO
PRODUTO
- Codigo
- Nome
PRODUTO - Valor
- Codigo
- Nome
- Valor - Editora
- Autorr
Relacionamentos – HERANÇA

LIVRO
• Temos uma classe original, que PRODUTO
- Codigo
chamamos de superclasse ou - Nome
- Valor
classe pai, da qual queremos
herdar funcionalidades.
- Editora
- Autorr
• E vamos criar uma classe
derivada, que chamamos de
subclasse ou classe filha, que
irá estender as funcionalidades
da classe pai
Herança de Classes

class Animal: class Cachorro(Animal):


def __init__(self, nome, idade): def __init__(self, nome, idade, raca):
[Link] = nome
super().__init__(nome, idade)
[Link] = idade
[Link] = raca
def apresentar(self):
print(f"Olá, meu nome é {[Link]},
tenho {[Link]}") def apresentar(self):
print(f"Olá, meu nome é {[Link]}, tenho {[Link]},
e sou um {[Link]}")

animal1 = Animal("lulu", 2)
animal2 = Cachorro("lulu", 2, "pincher")
[Link]()
[Link]()
Exercício

class Pessoa:
def __init__(self, nome):
[Link] = nome
def apresentar(self):
print(“Meu nome é: ” + [Link])

Crie uma classe Funcionario que herda da classe Pessoa (do primeiro
exemplo) e adicione um atributo cargo. Modifique o método
apresentar() para incluir o cargo ao imprimir a mensagem.

Você também pode gostar