Aprenda Python

  • Página Inicial
  • Contato!
  • Tudo sobre Python Parte 1!
  • Tudo sobre Python Parte 2!
  • Tudo sobre Python Parte 3!
  • Tudo sobre Python Parte 4!
  • Tudo sobre Python Parte 5!
  • Tudo sobre Python Parte 6!
  • Tudo sobre Python Parte 7!
  • Exercícios - Parte 7

    Faça um programa que tenha uma função chamada area(), que receba as dimensões de um terreno retangular (largura e comprimento) e mostre a área do terreno:

    
    def area(larg, comp):
        a = larg * comp
        print(f"A área de um terreno {larg} x {comp} é de {a}m².")
    
    print("Controle de Terrenos")
    print("-" * 20)
    l = float(input("Largura (m): "))
    c = float(input("Comprimento (m): "))
    area(l, c)
    
    

    Faça um programa que tenha uma função chamada escreva(), que receba um texto qualquer como parâmetro e mostre uma mensagem com tamanho adaptável:

    
    def escreva(msg):
        tam = len(msg) + 4
        print("=" * tam)
        print(f"  {msg}")
        print("=" * tam)
    
    escreva("Gustavo Guanabara")
    escreva("Curso de Python no Youtube")
    escreva("CeV")
    
    

    Faça um programa que tenha uma função chamada contador(), que receba três parâmetros (início, fim e passo) e realize a contagem. Seu programa tem que realizar três contagens através da função criada (de 1 até 10 de 1 em 1, de 10 até 0 de 2 em 2 e uma personalizada):

    
    from time import sleep
    
    def linhas():
        print("-=" * 20)
    
    def contador(i, f, p):
        linhas()
    
        if p < 0:
            p *= -1
    
        if p == 0:
            p = 1
        
        print(f"Contagem de {i} até {f} de {p} em {p}.")
        sleep(2.5)
        
        if i < f:
            cont = i
            while cont <= f:
                print(f"{cont} ", end="", flush=False) # O Flush com false dá sleep no laço, com true seria na função toda
                sleep(0.5)
                cont += p
    
            print("FIM!")
        else:
            cont = i
            while cont >= f:
                print(f"{cont} ", end="", flush=False)
                sleep(0.5)
                cont -= p
    
            print("FIM!")
    
        linhas()
    
    contador(1, 10, 1)
    contador(10, 0, 2)
    linhas()
    
    print("Agora é a sua vez de personalizar a contagem!\n")
    
    ini = int(input("Início.: "))
    fim = int(input("Fim....: "))
    pas = int(input("Passo..: "))
    
    contador(ini, fim, pas)
    
    

    Faça um programa que tenha uma função chamada maior(), que receberá vários parâmetros com valores inteiros. Seu programa tem que analizar todos os valores e dizer qual deles é o maior:

    
    from time import sleep
    
    def linhas():
        print("-=" * 20)
        
    def maior(*num):
        cont = maior = 0
        linhas()
        print("Analisando os valores passados...")
        sleep(0.3)
        for valor in num:
            print(f"{valor} ", end="", flush=True)
            sleep(0.3)
            
            if cont == 0:
                maior = valor
            else:
                if valor > maior:
                    maior = valor
    
            cont += 1
        print(f"\nForam informados {cont} valores ao todos.")
        print(f"O maior valor informado foi {maior}.")
        linhas()
    
    maior(2, 9, 4, 5, 7, 1)
    maior(4, 7, 0)
    maior(1, 2)
    maior(6)
    maior()
    
    

    Faça um programa que tenha uma lista chamada numeros e duas funções chamadas sorteia() e somaPar(). A primeira função vai sortear 5 números e vai colocá-los dentro da lista e a segunda função vai mostrar a soma entre todos os valores pares sorteados pela função anterior:

    
    from random import randint
    from time import sleep
    
    def sorteia(lista):
        print("Sorteando 5 valores da lista: ", end="")
        for cont in range(0, 5):
            n = randint(1, 10)
            lista.append(n)
            print(f"{n} ", end="", flush=True)
            sleep(0.3)
    
        print("PRONTO!")
    
    def somaPar(lista):
        soma = 0
        for valor in lista:
            if valor % 2 == 0:
                soma += valor
    
        print(f"Somando os valores pares de {lista}, temos {soma}!")
    
    numeros = list()
    sorteia(numeros)
    somaPar(numeros)
    
    

    Crie um programa que tenha uma função chamada voto(), que vai receber como parâmetro o ano de nascimento de uma pessoa, retornando um valor literal indicando se uma pessoa tem voto negado, opcional ou obrigatório nas eleições:

    
    def voto(ano):
        from datetime import date # Escopo local de importação
    
        atual = date.today().year
        idade = atual - ano
    
        if idade < 16:
            return f"Com {idade} anos: NÃO VOTA!"
        elif 16 <= idade < 18 or idade > 70:
            return f"Com {idade} anos: VOTO OPCIONAL!"
        else:
            return f"Com {idade} anos: VOTO OBRIGATÓRIO!"
    
    nasc = int(input("Em que ano você nasceu? "))
    
    print(voto(nasc))
    
    

    Crie um programa que tenha uma função fatorial() que receba dois parâmetros: O primeiro que indique o número a calcular e o outro chamado show, que será um valor lógico opcional, indicando se será mostrado ou não na tela o processo de cálculo de fatorial:

    
    def fatorial(n, show=False):
        """
        -> Calcula o fatorial de um número.
        :param n: O número a ser calculado.
        :param show (opcional): Mostrar ou não a conta.
        :return: O valor do fatorial do número n.
        """
        f = 1
    
        for c in range(n, 0, -1):
            if show:
                print(c, end="")
    
                if c > 1:
                    print(" x ", end="")
                else:
                    print(" = ", end="")
            f *= c
    
        return f
    
    
    print(fatorial(5, show=True))
    help(fatorial)
    
    

    Faça um programa que tenha uma função chamada ficha(), que receba dois parâmetros opcionais: O nome de um jogador e quantos gols ele marcou. O programa deverá ser capaz de mostrar a ficha do jogador, mesmo que algum dado não tenha sido informado corretamente:

    
    def ficha(jog = "", gol = 0):
        print(f"O jogador {jog} fez {gol} gols no campeonato.")
    
    n = str(input("Nome do jogador: "))
    g = str(input("Número de gols: ")) # É str mesmo
    
    
    if g.isnumeric():
        g = int(g)
    else:
        g = 0
    
    # Outra condição:
    
    if n.strip() == "":
        ficha(gol = g)
    else:
        ficha(n, g)
    
    

    Crie um programa que tenha a funcao leiaInt(), que vai funcionar de forma semelhante à função input() do Python, só que fazendo a validação para aceitar apenas um valor numérico:

    
    def leiaInt(msg):
        ok = False
        valor = 0
    
        while True:
            n = str(input(msg))
    
            if n.isnumeric():
                valor = int(n)
                ok = True
            else:
                print("\033[0;31mERRO! Digite um número inteiro válido!\033[m")
    
            # Outra condição
    
            if ok:
                break
    
        return valor
    
    
    n = leiaInt("Digite um número: ")
    
    print(f"Você acabou de digitar o número {n}.")
    
    

    Faça um programa que tenha uma função chamada notas(), que pode receber várias notas de alunos e vai retornar um dicionário com as seguintes informações: Quantidade de notas, a maior nota, a menor nota, a média da turma e a situação (opcional). Adicione também as docstrings de função:

    
    def notas(*n, sit = False):
        """
        -> Função para analisar notas e situações de vários alunos.
        :param n: Uma ou mais notas dos alunos (aceita várias).
        :param sit: Valor opcional, indicando se deve ou não adicionar a situação.
        :return: Dicionário com várias informações sobre a situação da turma.
        """
        r = dict()
        r["total"] = len(n)
        r["maior"] = max(n)
        r["menor"] = min(n)
        r["media"] = sum(n) / len(n)
    
        if sit:
            if r["media"] >= 7:
                r["situacao"] = "BOA"
            elif r["media"] >= 5 and r["media"] < 7:
                r["situacao"] = "RAZOÁVEL"
            else:
                r["situacao"] = "RUIM"
            
    
        return r
    
    resp = notas(5.5, 2.5, 8.5, sit = True)
    print(resp)
    help(notas)
    
    

    Faça um mini-sistema que utilize o interactive help do Python. O usuário vai digitar o comando e o manual vai aparecer. Quando o usuário digitar a palavra FIM, o programa se encerrará. Use cores:

    
    from time import sleep
    
    c = ("\033[m", # 0 - sem cores
        "\033[0;30;41m", # 1 - vermelho
         "\033[0;30;42m", # 2 - verde
         "\033[0;30;43m", # 3 - amarelo
         "\033[0;30;44m", # 4 - azul
         "\033[0;30;45m", # 5 - roxo
         "\033[7;30m", # 6 - branco
         )
    
    def ajuda(com):
        titulo(f"Acessando o manual do comando \"{com}\"", 4)
        print(c[6], end="")
        help(com)
        print(c[0], end="")
        sleep(2)
    
    def titulo(msg, cor = 0):
        tam = len(msg) + 4
        print(c[cor], end="")
        print("~" * tam)
        print(f"  {msg}")
        print("~" * tam)
        print(c[0], end="")
        sleep(1)
    
    comando = ""
    
    while True:
        titulo("SISTEMA DE AJUDA PYHELP", 2)
        
        comando = str(input("Função ou Biblioteca > "))
    
        if comando.upper() == "FIM":
            break
        else:
            ajuda(comando)
    
    titulo("ATÉ LOGO!", 1)