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 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()
Kaydol:
Kayıtlar (Atom)