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()

Python Çoktan Seçmeli Kelime Oyunu

 

Bu uygulamada TDK API'den çektiğimiz verilerle bir kelime oyunu yapıyoruz.


# Samet Güzelgün 04.10.23
import tkinter as tk
from tkinter import messagebox
import requests
import random
import beepy
cevap = ""
anlam = ""
dogru = ""
siklar = []
kontrol_lst = []
puan = 0
def basla():
    yeni_soru()
def set_cevap(cvp):
    global cevap
    cevap = cvp
    kontrol()
def kontrol():
    global kontrol_lst,cevap,dogru,puan,siklar,puan_etkt,anlam
    if kontrol_lst[int(cevap)] == dogru:
        beepy.beep()
        puan += 50
        puan_etkt["text"] = "Puan: " + str(puan)
        siklar.clear()
        yeni_soru()
    else:
        beepy.beep(sound=3)
        puan -= 50
        puan_etkt["text"] = "Puan: " + str(puan)
        dosya = open("yanlis_kelimeler.txt","a")
        dosya.write("\nKelime: {}\nAnlamı: {}".format(dogru,anlam))
        dosya.close()
        messagebox.showinfo("Yanlış!","Doğrusu:{}".format(dogru))
        siklar.clear()
        yeni_soru()
def yeni_soru():
    global buton1,buton2,buton3,siklar,dogru,anlam,anlam_etkt,kontrol_lst
    firefox = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}
    while len(siklar) < 3:
        a = requests.get("https://sozluk.gov.tr/taramaId?id=" + str(random.randint(0,14488)),headers=firefox)
        b = a.text.split(",")[1].split(":")[1].replace("\"","")
        dogru = b
        anlam = a.text.split(":")[3].split(",")[0].replace("'","").replace("\"","")
        if b not in siklar:
            siklar.append(b)
    anlam_etkt["text"] = "Anlam: " + anlam
    kontrol_lst = siklar
    random.shuffle(siklar)
    buton1["text"] = "A: " + siklar[0]
    buton2["text"] = "B: " + siklar[1]
    buton3["text"] = "C: " + siklar[2]
pencere = tk.Tk()
anlam_etkt = tk.Label(text="Kelime anlamı:")
anlam_etkt.grid(row=0,column=2)
buton1 = tk.Button(text="A:",command=lambda:set_cevap("0"))
buton1.grid(row=5,column=1)
buton2 = tk.Button(text="B:",command=lambda:set_cevap("1"))
buton2.grid(row=5,column=2)
buton3 = tk.Button(text="C:",command=lambda:set_cevap("2"))
buton3.grid(row=5,column=3)
basla_btn = tk.Button(text="Yeni Soru",command=basla)
basla_btn.grid(row=7,column=2)
puan_etkt = tk.Label(text="Puan:")
puan_etkt.grid(row=7,column=3)
pencere.title("Kelime Quiz")
pencere.resizable(0,0)
yeni_soru()
pencere.mainloop()

Python Arama Sihirbazı


 

import tkinter as tk
from tkinter import ttk
import webbrowser
def ara():
    global arama_motorlari,istek
    if arama_motorlari.get() == "Google":
        webbrowser.open("www.google.com/search?q=" + istek.get())
    if arama_motorlari.get() == "Yandex":
        webbrowser.open("www.yandex.com/search/?text=" + istek.get())
    if arama_motorlari.get() == "Bing":
        webbrowser.open("www.bing.com/search?q=" + istek.get())
    if arama_motorlari.get() == "Duckduckgo":
        webbrowser.open("www.duckduckgo.com/?t=ftsa&q=" + istek.get())
pencere = tk.Tk()
pencere.resizable(0,0)
pencere.title("Arama Sihirbazı")
pencere.geometry(("400x30"))
arama_motorlari = ttk.Combobox()
arama_motorlari["values"] = ["Google","Yandex","Bing","Duckduckgo"]
istek = tk.Entry()
istek.insert(tk.END,"Buraya yazın.")
ara_btn = tk.Button(text="Ara",command=ara,pady=0.1)
arama_motorlari.grid(row=0,column=1)
istek.grid(row=0,column=0)
ara_btn.grid(row=0,column=2)
pencere.mainloop()