Aulas do bloco

← Aulas

PythonAula 1818/09/20261h43

AT de Python: regras e leitura das 16 questões

Retoma input() com int() e float(), for com if, função com def e return e lista das aulas de repetição e DudaBet. Apresenta as regras do AT com 16 questões para 5 competências e lê uma por uma o que fazer e o que é proibido. Entrega do AT é dia 27 de setembro, com duas semanas sem aula e volta dia 6 de outubro, e TP fora do prazo limita a nota final a D mesmo gabaritando o AT.

O que foi falado

  1. Regras do AT, TPs e aprovação por competências

    00:07:11

    O AT define a nota e os TPs são obrigatórios para aprovar. Para passar precisa de 50% em cada competência, que na prática é acertar 2 de 3 nas comps 1 a 4 e 2 de 4 na comp 5. Quem não mostrar competência vai para reentrega só com as questões que faltaram.

  2. input(), ficha com | e for sem sum()

    00:21:12

    Q1 pede 6 valores em ordem e converte com int() ou float(), sem validar porque todos são positivos. Q2 monta a ficha em um único print() com campos separados por | usando .title() para o nome e .upper() para o tipo sanguíneo e round() com 2 casas para custo. Q3 proíbe sum(), max() e min() e exige somar e achar maior e menor com for mais if, e a lista de doações pode ser fixa no código.

    Python
    nome = "ana souza"
    print(f"{nome.title()} | {round(10.567, 2)}")

    Saída

    Ana Souza | 10.57
  3. Função com def, padrão e docstring

    00:38:17

    Q4 cria formataNome com def, onde sobrenome tem valor padrão "" e vira opcional. Valor passado pela posição cai no parâmetro certo, mas com nome= e sobrenome= a ordem não importa. Logo depois do def vai a docstring com """ em descrição mais Args e Returns no padrão Google, que aparece ao passar o mouse.

    Python
    def formataNome(nome, sobrenome=""):
        """Formata nome completo."""
        return f"{nome.title()} {sobrenome.title()}"
    print(formataNome("ana"))
    print(formataNome("ana", sobrenome="souza"))

    Saída

    Ana 
    Ana Souza
  4. // e %, while True e fatorial

    00:51:04

    Q5 recebe minutos fora e a função só formata com // para horas e % para minutos, com singular só quando vale 1. Q6 repete leitura de pesos com while True e break, comparando com .lower() para aceitar "sair" de qualquer jeito. Q7 conta faixas com for mais if ou match-case sem usar variável de fora, e Q9 escreve fatorial uma vez e reaproveita para C(n,k) pela fórmula n! / (k! * (n-k)!).

    Python
    total = 130
    h = total // 60
    m = total % 60
    print(f"{h} h e {m} min")

    Saída

    2 h e 10 min
  5. Investimento com penalidade, bônus e juros

    01:16:35

    Abaixo de 3 meses não rende e perde 2% do inicial. Com 18 meses ou mais soma 0.5% do inicial antes de render. A partir de 3 meses aplica a taxa todo mês sobre o acumulado com juros compostos, mas a correção aceita juros simples com comentário. O cálculo anda mês a mês com for usando taxa em decimal como 0.05 para 5%.

    Python
    capital = 1000
    taxa = 0.05
    total = capital
    for i in range(3):
        total = total + total * taxa
    print(round(total, 2))

    Saída

    1157.62
  6. Listas sem set(), senha e grid WASD

    01:33:31

    Q11 acha comuns e exclusivos só com for e in, porque set() é proibido. Q12 ignora maiúscula com .lower(), conta com .count() e acha o mais citado sem max(). Q15 acumula float() até a meta e Q16 move em grid 10x10 com "W", "A", "S" e "D", onde sair do limite mostra colisão e mantém a posição.

    Python
    grid = []
    for i in range(10):
        linha = []
        for j in range(10):
            linha.append(".")
        grid.append(linha)
    print(len(grid))

    Saída

    10

Perguntas que valem a pena

Para que serve função se daria para usar variável?00:44:57

Função centraliza lógica repetida para reutilizar sem repetir código, como aplicar a mesma formatação para 10 nomes.

A docstring só existe dentro da função e precisa de aspas triplas?00:46:41

Na função, a docstring é o primeiro texto do corpo, logo após o def, normalmente escrito com aspas triplas. Ela também pode documentar módulos e classes e fica acessível para ferramentas de ajuda. Um texto entre aspas triplas em outra posição é uma string, não um comentário Python; comentários usam #.

Pode só usar print() em vez de return?00:48:55

Não, se a questão pede retorno e você só mostra com print() está errado, assim como trocar parâmetro por input().

Os juros são simples ou compostos, conta carência e o bônus é sobre o quê?01:10:58

Tem carência de 3 meses, bônus de 0.5% sobre o capital inicial e rendimento com juros compostos, mas aceita juros simples com comentário.

Conceitos da aula

  • input()
  • for
  • função
  • parâmetro / argumento
  • return / retornar
  • docstring
  • while
  • break
  • lista
  • round()
  • lower()
  • count()

Reforce este assunto

9 exercíciosComeçar →