Skip to content

Instantly share code, notes, and snippets.

View marcoscastro's full-sized avatar

Marcos Castro de Souza marcoscastro

View GitHub Profile
@marcoscastro
marcoscastro / num_perfeito.py
Created March 12, 2017 21:45
Correção número perfeito
def numero_perfeito(num):
cont=1
soma=0
while cont<num:
if (num%cont)==0:
soma=soma+cont
cont+=1
if soma==num:
return True
else:
@marcoscastro
marcoscastro / knn_regressao.py
Created March 7, 2017 07:14
Python - Exemplo kNN Regressão
import math
import matplotlib.pyplot as plt
import numpy as np
class KNNRegressao:
def __init__(self, x, y, K=3):
self.n_amostras = len(x)
self.n_attrs = len(x[0])
self.x, self.y, self.K = x, y, K
@marcoscastro
marcoscastro / dist_euclidiana.py
Created March 3, 2017 06:17
Python - Distância euclidiana
# distância euclidiana
import math
v1 = [1.2, 2, 3.8, 4.5]
v2 = [0.5, 4.5, 9.6, 3.4]
def dist_euclidiana(v1, v2):
dim, soma = len(v1), 0
for i in range(dim):
@marcoscastro
marcoscastro / sorteio.py
Created March 1, 2017 23:38
Código do Sorteio Kit Microsoft
'''
Extração de dados de um arquivo CSV do Google Forms com nome,e-mail
'''
import random
pessoas = {}
with open('sorteio.csv', 'r', encoding='utf-8') as f:
lines = f.readlines()[1:]
for line in lines:
dados = line.split(',')
@marcoscastro
marcoscastro / bubble_sort.py
Last active November 9, 2019 07:05
Curso Python 300 - Aula 30 - Bubble Sort
'''
Implementação do Algoritmo Bubble Sort
Animação: https://www.youtube.com/watch?v=lyZQPjUT5B4
'''
l = [30, 50, 10, 35, 70, 45, 80, 100, 22]
tam_l = len(l)
# bubble sort
for i in range(tam_l):
@marcoscastro
marcoscastro / pynotepad.py
Created February 24, 2017 17:36
Notepad em Python
# PyNotePad
from tkinter import *
import tkinter.filedialog as fdialog
from tkinter import messagebox
nome_arquivo = 'my_file.txt'
def novo_arquivo():
text_box.delete(0.0, END)
@marcoscastro
marcoscastro / exemplo.py
Created February 23, 2017 22:00
Código corrigido POO
def buscar_email(self, email):
"""Busca um cliente pelo email"""
try:
cursor = self.conexao.cursor()
# obtém todos os dados
cursor.execute("SELECT * FROM clientes WHERE email = ?",[(email)])
cliente = cursor.fetchone()
if cliente:
@marcoscastro
marcoscastro / troco.py
Last active February 21, 2022 00:30
Curso Python 300 - Aula 29 - Algoritmos Gulosos - Problema do Troco
'''
Algoritmos gulosos
- Sempre escolhe a alternativa que parece mais promissora naquele instante
- NUNCA reconsidera essa decisão
- Uma escolha que foi feita NUNCA é revista
- Não há backtracking
- A escolha é feita de acordo com um criterio guloso - decisão localmente ótima.
- Nem sempre dão soluções ótimas
Problema do Troco (Troco mínimo)
@marcoscastro
marcoscastro / btc_usd.py
Created February 15, 2017 09:53
Python - Monitoramento do preço do bitcoin em dólares
'''
Get Bitcoin Value
http://api.coindesk.com/v1/bpi/currentprice.json
'''
import urllib.request, json, time
def obter_valor():
try:
url = "http://api.coindesk.com/v1/bpi/currentprice.json"
@marcoscastro
marcoscastro / fib_pd.py
Created February 11, 2017 08:24
Curso Python 300 - Aula 28
'''
Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
F(1) = F(2) = 1
F(n) = F(n - 1) + F(n - 2)
F(3) = F(2) + F(1) = 1 + 1 = 2
F(4) = F(3) + F(2) = 2 + 1 = 3
'''
MAX_N = 100
valores = [0] * MAX_N