İnterval Antrenman Programı

 

Kardiyo çalışmalarında destek olabilecek tamamen python ile yazdığım bir uygulama. Kaynak koduna buradan erişebilirsiniz.

Python Direnç Hesaplama

 


import tkinter as tk
from tkinter.ttk import Combobox
from tkinter import messagebox
direnc_tablosu = {"siyah":0,"kahverengi":1,"kırmızı":2,"turuncu":3,"sarı":4,"yeşil":5,"mavi":6,"mor":7,"gri":8,"beyaz":9}
tolerans_tablosu = {"renksiz":20,"gümüş":10,"altın":5,"kahverengi":1,"kırmızı":2,"yeşil":0.5,"mavi":0.25,"mor":0.1,"gri":0.05}
direncler = list(direnc_tablosu.keys())
toleranslar = list(tolerans_tablosu.keys())
def hesapla():
    global renk1_cbox,renk2_cbox,renk3_cbox,direnc_tablosu,tolerans_tablosu,tlr
    sayi1 = direnc_tablosu[renk1_cbox.get()]
    sayi2 = direnc_tablosu[renk2_cbox.get()]
    sayi3 = direnc_tablosu[renk3_cbox.get()]
    sayi4 = tolerans_tablosu[tlr.get()]
    ohm = int(sayi1+sayi2) * 10 ** int(sayi3)
    aralik = ohm * (sayi4 * 10**-2)
    messagebox.showinfo(message="Direnç: {} - {} arasındadır.".format((ohm-aralik),(ohm+aralik)))
pencere = tk.Tk()
pencere.title("Direnç Hesaplama")
pencere.resizable(False,False)
etk1 = tk.Label(text="Renk 1")
etk1.grid(row=0,column=0)
etk2 = tk.Label(text="Renk 2")
etk2.grid(row=0,column=1)
etk3 = tk.Label(text="Çarpan")
etk3.grid(row=0,column=2)
etk4 = tk.Label(text="Tolerans")
etk4.grid(row=0,column=3)
renk1_cbox = Combobox(values=direncler)
renk1_cbox.grid(row=1,column=0)
renk2_cbox = Combobox(values=direncler)
renk2_cbox.grid(row=1,column=1)
renk3_cbox = Combobox(values=direncler)
renk3_cbox.grid(row=1,column=2)
tlr = Combobox(values=toleranslar)
tlr.grid(row=1,column=3)
hsp_btn = tk.Button(text="Hesapla",command=hesapla)
hsp_btn.grid(row=2,column=1)
cks = tk.Button(text="Çıkış",command=exit)
cks.grid(row=2,column=2)
pencere.mainloop()

Python Hafıza Karoları

 

Kaynak koduna buradan erişebilirsiniz

Python Hafıza Oyunu


 

Oyundaki amacımız ekrana gelen sayıları ezberleyip doğru bir şekilde yazmak. Python ile birlikte gelen modüller ile yazdığımdan hemen kopyalayıp çalıştırabilirsiniz.

import tkinter as tk
import threading
import time
import random

seviye = 4
can = 3
sekans = ""
dogru = 0

def kaybetme_kosullari():
    global can,canlbl
    canlbl["text"] = "Can:" +str(can)
    if can < 1:
        exit()

def yeni_sekans():
    global sayilbl,sekans,seviye,gonderbtn,cevap
    cevap["state"] = tk.DISABLED
    gonderbtn["state"] = tk.DISABLED
    sekans = str(random.randint(10**seviye,10**(seviye + 1) - 1))
    for i in sekans:
        sayilbl["text"] = i
        time.sleep(1)
        sayilbl["text"] = ""
        time.sleep(0.5)
    
    gonderbtn["state"] = tk.ACTIVE
    cevap["state"] = tk.NORMAL

def gonder():
    global sekans,cevap,dogru,dogrulbl,can,seviye
    thr2 = threading.Thread(target=yeni_sekans)
    if cevap.get() == sekans:
        dogru += 1
        dogrulbl["text"] = "Doğru: "+str(dogru)
        seviye += 1
        cevap.delete(0,len(cevap.get()))
        thr2.start()
    else:
        can -= 1
        seviye -= 1
        cevap.delete(0,len(cevap.get()))
        thr2.start()
    kaybetme_kosullari()

pencere = tk.Tk()
pencere.title("Hafıza Oyunu")
pencere.geometry(("400x300"))
pencere.resizable(False,False)
sayilbl = tk.Label(text="",font=("Ariel",70))
sayilbl.pack()
cevap = tk.Entry()
cevap.place(x=120,y=200)
gonderbtn = tk.Button(text="Gönder",command=gonder)
gonderbtn.place(x=165,y=230)
canlbl = tk.Label(text="Can: {}".format(can))
canlbl.place(x=20,y=280)
dogrulbl = tk.Label(text="Doğru: {}".format(dogru))
dogrulbl.place(x=320,y=280)
thr = threading.Thread(target=yeni_sekans)
thr.start()

pencere.mainloop()

Python Refleks Oyunu

 


import time
import tkinter
import threading
import simpleaudio
import random

yesil = 0
baslama_zamani = 0
bitis_zamani = 0
refleks_zamani = 0
zamanlar = []
ses = simpleaudio.WaveObject.from_wave_file("ping.wav")

def durum_mtd():
    global refleks_zamani
    if refleks_zamani < 0.2:
        return "İnanılmaz!"
    elif refleks_zamani < 0.5 and refleks_zamani > 0.2:
        return "Harika!"
    elif refleks_zamani < 1.0 and refleks_zamani > 0.5:
        return "İdare eder."
    else:
        return "Berbat!"

def geri_sayim():
    global yesil,mesaj,baslama_zamani,ses
    baslama_zamani = random.randint(1,10)
    while baslama_zamani > 0:
        time.sleep(1)
        baslama_zamani -= 1
    
    ses.play()
    yesil = time.time()

def tiklama():
    global bitis_zamani,yesil,refleks_zamani,zamanlar,liste,durum
    thr = threading.Thread(target=geri_sayim)
    if baslama_zamani == 0:
        bitis_zamani = time.time()
        refleks_zamani = bitis_zamani - yesil
        liste.insert(0,refleks_zamani)
        zamanlar.append(refleks_zamani)
        durum["text"] = durum_mtd()
        thr.start()
    else:
        toplam = 0
        for i in zamanlar:
            toplam += i
        try:
            print("Ortalama zamanınız:",toplam / len(zamanlar))
        except ZeroDivisionError:
            pass
        exit("Lütfen sesi bekleyin!")


pencere = tkinter.Tk()
pencere.title("Refleks Oyunu")
pencere.geometry(("300x300"))
durum = tkinter.Label(text="")
durum.pack()
liste = tkinter.Listbox(height=10,width=30)
liste.pack()
buton = tkinter.Button(text="Tıkla!",command=tiklama)
buton.pack()
thr2 = threading.Thread(target=geri_sayim)
thr2.start()
pencere.mainloop()

Python Deprem Bilgileri

http://www.koeri.boun.edu.tr/scripts/lst7.asp adresinden gelen verileri bir Listbox üzerinde gösteren python programı.



import tkinter as tk
import requests
from bs4 import BeautifulSoup

pencere = tk.Tk()
pencere.title("Son Depremler")
pencere.geometry(("450x300"))
pencere.resizable(False,False)

def guncellec():
    global depremler
    depremler.delete(0,depremler.size())
    header = {"User-Agent":"Firefox"}
    baglanti = requests.get("http://www.koeri.boun.edu.tr/scripts/lst2.asp",headers=header)
    html = BeautifulSoup(baglanti.text,features="html.parser").find("pre")
    deprem_listesi = str(html)[590:-9].split("\n")
    del deprem_listesi[0]
    for i,n in enumerate(deprem_listesi):
        depremler.insert(i,n)

tarih = tk.Label(text="Tarih")
tarih.place(x=30,y=30)
saat = tk.Label(text="Saat")
saat.place(x=75,y=30)
enlem = tk.Label(text="Enlem")
enlem.place(x=120,y=30)
boylam = tk.Label(text="Boylam")
boylam.place(x=170,y=30)
derinlik = tk.Label(text="Derinlik")
derinlik.place(x=225,y=30)
md = tk.Label(text="MD")
md.place(x=285,y=30)
ml = tk.Label(text="ML")
ml.place(x=315,y=30)
mw = tk.Label(text="MW")
mw.place(x=340,y=30)
yer = tk.Label(text="Yer")
yer.place(x=385,y=30)
depremler = tk.Listbox(height=10,width=48)
depremler.place(x=30,y=53)
guncelle = tk.Button(text="Güncelle",command=guncellec)
guncelle.place(x=165,y=260)

guncellec()

pencere.mainloop()