print('Hello')
import locale
import pandas as pd
from decimal import Decimal
def to_decimal(value_to_convert):
locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')
cleaned_str = ''.join(c for c in value_to_convert if c.isdigit() or c in {',', '.'})
cleaned_str = cleaned_str.replace('.', '')
cleaned_str = cleaned_str.replace(',', '.')
parsed_decimal = Decimal(cleaned_str)
return parsed_decimal
df = pd.read_csv('data/payments.csv')
df['value_decimal'] = df.apply(lambda x: to_decimal(x['value']), axis=1)# ........
# Programa
# Programa
# Programa
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
Python é uma linguagem de programação amplamente utilizada, interpretada*, que contempla os tres principais paradgmas de programação, imperativa, orientada a objetos e funcional. Ela é de alto nível com semântica dinâmica, usada para programação de uso geral.
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 1 - Introdução
# 2. Variáveis, expressões e instruções
int(1.0)
int('9')
float(1)
float('9.2')
float('-inf')
float('+inf')
float('nan')
complex(1, 2)Let's coding <...>
# 2. Variáveis, expressões e instruções
Let's coding <...>
# 2. Variáveis, expressões e instruções
type(obj), com apenas um parâmetro, retorna o tipo (ou classe) de um objeto.Let's coding <...>
# 2. Variáveis, expressões e instruções
Let's coding <...>
# 2. Variáveis, expressões e instruções
Let's coding <...>
# 2. Variáveis, expressões e instruções
Let's coding <...>
# 2. Variáveis, expressões e instruções
len(string).
variavel[indice], ou para acesso de trechos, a slice notation, como em minha_str[1:2]
Let's coding <...>
# 2. Variáveis, expressões e instruções
Let's coding <...>
# 2. Variáveis, expressões e instruções
capitalize, count, endswith, join, split, startswithreplace.Let's coding <...>
% ou a função .format()
f ou F e escrevendo expressões como {expressão}.Let's coding <...>
# 2. Variáveis, expressões e instruções
date, datetime ou time, todas do pacote datetime.Let's coding <...>
# 2. Variáveis, expressões e instruções
Let's coding <...>
# 2. Variáveis, expressões e instruções
strptime() do objeto datetime.strftime()
Let's coding <...>
# 2. Variáveis, expressões e instruções
timedelta.now() da classe datetime, e o método today() da classe date
Let's coding <...>
# 2. Variáveis, expressões e instruções
# 3. Mais tipos de dados
# 3. Mais tipos de dados
([ e ])[10, 20, 30, 40]['crunchy frog', 'ram bladder', 'lark vomit']# 3. Mais tipos de dados
['spam', 2.0, 5, [10, 20]][].
# 3. Mais tipos de dados
Let's coding <...>
Let's coding <...>
Let's coding <...>
# 3. Mais tipos de dados
append adiciona um novo elemento ao fim de uma listaextend toma uma lista como argumento e adiciona todos os elementossort classifica os elementos da lista em ordem ascendenteLet's coding <...>
Let's coding <...>
Let's coding <...>
# 3. Mais tipos de dados
list
split(<delimiter>)
Let's coding <...>
Let's coding <...>
Let's coding <...>
# 3. Mais tipos de dados
# 3. Mais tipos de dados
# 3. Mais tipos de dados
# 3. Mais tipos de dados
Let's coding <...>
Let's coding <...>
Let's coding <...>
colors = ['black', 'white']
sizes = ['S', 'M', 'L']
tshirts = [(color, size) for size in sizes for color in colors]# 3. Mais tipos de dados
O interpretador Python e a biblioteca padrão fazem uso extensivo de tuplas como listas imutáveis, e você também deveria fazer o mesmo. Isso traz dois benefícios principais:
1. Clareza: quando você vê uma tupla no código, sabe que seu comprimento nunca mudará.
2. Desempenho: uma tupla usa menos memória do que uma lista do mesmo comprimento e permite que o Python faça algumas otimizações.
A imutabilidade de uma tupla só se aplica às referências nela contidas. As referências em uma tupla não podem ser excluídas ou substituídas. Mas se uma dessas referências apontar para um objeto mutável, e esse objeto for alterado, então o valor da tupla muda
# 3. Mais tipos de dados
Let's coding <...>
Let's coding <...>
Let's coding <...>
# 3. Mais tipos de dados
|
Python 3.9 suporta o uso | e |= para mesclar mapeamentos. Isto faz sentido, uma vez que estes também são os operadores de uniãoLet's coding <...>
Let's coding <...>
Let's coding <...>
# 3. Mais tipos de dados
and, or e not. Ou seja, são os operadores lógicos e, ou e negação, respectivamenteand e or são operadores com curto circuito.Let's coding <...>
Let's coding <...>
Let's coding <...>
# 3. Mais tipos de dados
null para representar um ponteiro que não aponta para nada, para indicar quando uma variável está vazia ou para marcar parâmetros padrão que você ainda não forneceu.null geralmente é definido como 0 nessas linguagens, mas null em Python é diferente.None para definir objetos e variáveis nulas.None sirva alguns dos mesmos propósitos que null em outras linguagens. None não é definido como 0 ou qualquer outro valor.None é um objeto!# 3. Mais tipos de dados
None
retorno padrão, falta de passagem de parametroNone
aplicando no match e usando como retorno (is ou not is None)Let's coding <...>
Let's coding <...>
Let's coding <...>
# 4. Estruturas de controle e funções
# 4. Estruturas de controle e funções
import pode importar módulos ou objetos (classes e fun-from/import, sinalizando no from o módulo, e depois do import, informamos que objeto queremos importar# 4. Estruturas de controle e funções
Let's coding <...>
# 4. Estruturas de controle e funções
Let's coding <...>
def
def sum(a, b):
return a + b
c = sum(1, 3)
def salario_descontado_imposto(salario, imposto=27.):
return salario - (salario * imposto * 0.01)
salario_descontado_imposto(5000, imposto=0.10)# 4. Estruturas de controle e funções
Let's coding <...>
# 4. Estruturas de controle e funções
Let's coding <...>
# 4. Estruturas de controle e funções
Let's coding <...>
5. Condicionais e recursividade
while em Python também avalia uma expressão e executa um bloco até que esta seja avaliada como falsa, tenha uma chamada break ou levante uma exceção sem tratamento.while. 5. Condicionais e recursividade
salario = int(input('Salario? '))
imposto = 27.
while imposto > 0.:
imposto = input('Imposto ou (s) para sair: ')
if not imposto:
imposto = 27.
elif imposto == 's':
break
else:
imposto = float(imposto)
print("Valor real: {0}".format(salario - (salario * (imposto * 0.01))))for é capaz de tornar essa tarefa trivial. Dado o nome de uma variável e uma lista.for faz, para cada elemento da lista, uma atribuição do elemento corrente à variável definida no comando, e executa o bloco de código associado a essa variável disponível.while, ele também pode ser parado por um break ou por uma exceção não tratada.while é a palavra reservada continue. Esse comando faz com que a execução do bloco vá direto para a próxima iteração.5. Condicionais e recursividade
impostos = ['MEI', 'Simples']
for imposto in impostos:
if imposto.startswith("S"):
continue
print(imposto)range() é compatível com o for, porém não é uma lista.StopIteration seja levantada e o for terminado.
5. Condicionais e recursividade
for i in range(5):
print(i)5. Condicionais e recursividade
squares = []
for number in range(10):
squares.append(number * number)
squaressquares = [number * number for number in range(10)]
squares
5. Condicionais e recursividade
new_list = [expression for member in iterable]
new_list = [expression for member in iterable if conditional]
5. Condicionais e recursividade
def fatorial(numero):
resultado = 1
for i in range(1, 6):
resultado = resultado * i
return resultadodef fatorial(numero):
if numero == 1:
return 1
return numero * fatorial(numero - 1)# 4. Estruturas de controle e funções
# 4. Estruturas de controle e funções
# 4. Estruturas de controle e funções