# 01
import math
class Circulo:
    def __init__(self, raio):
        self.raio = raio

    def calcular_area(self):
        return math.pi * self.raio ** 2

class Quadrado:
    def __init__(self, lado):
        self.lado = lado

    def calcular_area(self):
        return self.lado ** 2

class Triangulo:
    def __init__(self, base, altura):
        self.base = base
        self.altura = altura
        
    def calcular_area(self):
        return (self.base * self.altura) / 2

def imprimir_area(forma):
    print(f"A área é: {forma.calcular_area()}")

circulo = Circulo(5)
quadrado = Quadrado(4)
triangulo = Triangulo(3, 6)

imprimir_area(circulo)
imprimir_area(quadrado)
imprimir_area(triangulo)
    
# 02
#contador = 0

#def incrementar():
#    contador = 10
#    contador += 1
#    print(f"Dentro da função: {contador}")

#incrementar()
#print(f"Fora da função: {contador}")


#03
class Ponto:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, outro):
        return Ponto(self.x + outro.x, self.y + outro.y)

    def __str__(self):
        return f"({self.x}, {self.y})"

p1 = Ponto(1, 2)
p2 = Ponto(3, 4)
p3 = p1 + p2

print(p3)

# 04
def contador():
    count = 0

    def incrementar():
        nonlocal count
        count += 1
        return count
    return incrementar

counter = contador()
print(counter())
print(counter())

# 05
class MeuTexto:
    def __init__(self, texto):
        self.texto = texto
        
    def upper(self):
        return self.texto.upper() + "!!!"

    def lower(self):
        return self.texto.lower() + "..."

def processar_texto(texto):
    print(texto.upper())
    print(texto.lower())

processar_texto("Python")
processar_texto(MeuTexto("Polimorfismo"))


# 07
def imprimir_tamanho(colecao):
    print(f"Tamanho: {len(colecao)}")

imprimir_tamanho([1, 2, 3])
imprimir_tamanho("Python")
imprimir_tamanho((10, 20, 30, 40))


# 08
if True:
    variavel_if = "Existe fora do if"

for i in range(1):
    variavel_for = "Existe fora do for"

print(variavel_if)
print(variavel_for)

# 09
class Veiculo:
    def mover(self):
        print("O veículo está se movendo")

class Carro(Veiculo):
    def mover(self):
        print("O veículo está andando na estrada")

class Barco(Veiculo):
    def mover(self):
        print("O veículo está navegando no mar")

veiculos = [Carro(), Barco()]
for v in veiculos:
    v.mover()

        




    




        

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: