Programador Leigo

Python em 60 segundos

Dicas rápidas para escrever código Python melhor. Cada uma cabe em uma tela e resolve um problema real.

inverter.py
frutas = ['maca', 'banana', 'uva']

invertida = frutas[::-1]
print(invertida)  # ['uva', 'banana', 'maca']

# Funciona com strings tambem
print('Python'[::-1])  # nohtyP
listas ⚡ 60s

Como inverter uma lista em Python

formatacao.py
preco = 49.9
taxa = 0.156

print(f'Preco: R${preco:.2f}')    # R$49.90
print(f'Taxa: {taxa:.1%}')         # 15.6%
print(f'Grande: {1000000:,.0f}')   # 1,000,000
strings ⚡ 60s

Formatar números com f-strings

walrus.py
# Sem walrus
texto = input('Digite algo: ')
if len(texto) > 10:
    print(f'{len(texto)} caracteres!')

# Com walrus :=
if (n := len(input('Digite: '))) > 10:
    print(f'{n} caracteres!')
sintaxe ⚡ 60s

O operador morsa (:=) do Python

dict_get.py
usuario = {'nome': 'Ana', 'idade': 25}

# Perigoso - pode dar KeyError
# print(usuario['email'])

# Seguro - retorna o padrao
email = usuario.get('email', 'nao informado')
print(email)  # nao informado
dicionarios ⚡ 60s

Acessar dicionário sem KeyError

enumerate.py
linguagens = ['Python', 'SQL', 'HTML']

# Jeito feio
# for i in range(len(linguagens)):

# Jeito pythonico
for i, lang in enumerate(linguagens, 1):
    print(f'{i}. {lang}')
# 1. Python  2. SQL  3. HTML
loops ⚡ 60s

Iterar com índice usando enumerate()

comprehension.py
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

pares = [n for n in numeros if n % 2 == 0]
print(pares)  # [2, 4, 6, 8, 10]

quadrados = [n**2 for n in range(1, 6)]
print(quadrados)  # [1, 4, 9, 16, 25]
listas ⚡ 60s

List comprehension em uma linha

unpacking.py
# Desempacotamento basico
nome, idade, cidade = 'Ana', 25, 'SP'

# Com * para pegar o resto
primeiro, *meio, ultimo = [1, 2, 3, 4, 5]
print(primeiro)  # 1
print(meio)      # [2, 3, 4]
print(ultimo)    # 5
sintaxe ⚡ 60s

Desempacotar variáveis em Python

ternario.py
idade = 20

status = 'maior' if idade >= 18 else 'menor'
print(status)  # maior

# Funciona em f-strings tambem!
print(f'Voce e {"adulto" if idade >= 18 else "jovem"}')
sintaxe ⚡ 60s

If/else em uma linha (operador ternário)

zip_listas.py
nomes = ['Ana', 'Carlos', 'Bia']
notas = [9.5, 7.8, 8.2]

for nome, nota in zip(nomes, notas):
    print(f'{nome}: {nota}')

# Criar dicionario de uma vez
boletim = dict(zip(nomes, notas))
print(boletim)
listas ⚡ 60s

Combinar listas com zip()