Python Sezar Deşifreleme

 


import ttkbootstrap as ttk
import tkinter as tk
from ttkbootstrap.constants import *
from tkinter.filedialog import asksaveasfilename

harfler = {0:"a",1:"b",2:"c",3:"ç",4:"d",5:"e",6:"f",7:"g",8:"ğ",9:"h",10:"ı",11:"i",12:"j",13:"k",14:"l",15:"m",16:"n",17:"o",18:"ö",
           19:"p",20:"r",21:"s",22:"ş",23:"t",24:"u",25:"ü",26:"v",27:"y",28:"z"}

def cozumle():
    global cozumlenecek_metin,cozumlenmis_metin,spnbx,cozumle_btn
    sira = 1
    metin = cozumlenecek_metin.get("1.0",tk.END)
    cozumlenecek_metin.delete("1.0",tk.END)
    cozumlenmis_metin.delete("1.0",tk.END)
    cozumle_btn["state"] = DISABLED
    yeni_metin = ""
    if len(metin) > 0:
        while sira <= int(spnbx.get()):
            for harf in metin.lower():
                for i in harfler.keys():
                    if harf not in harfler.values():
                        yeni_metin += harf
                        break
                    if harf == harfler[i]:
                        if i + sira >= len(harfler):
                            mod = abs(29 - (i + sira))
                            yeni_metin += harfler[mod]
                        else:
                            yeni_metin += harfler[i + sira]
                        continue
            sira += 1
            yeni_metin += " - {} \n".format(sira - 1)
            cozumlenmis_metin.insert(tk.END,yeni_metin)
            yeni_metin = ""
        cozumle_btn["state"] = ACTIVE
    else:
        print("Çözümlenecek bir metin giriniz.")
        cozumle_btn["state"] = ACTIVE

def kaydet():
    dizin = asksaveasfilename()
    with open("{}.txt".format(dizin),"w") as ds:
        ds.write(cozumlenmis_metin.get("1.0",tk.END))
        ds.close()

pencere = tk.Tk()
ttk.Style("solar")
pencere.title("Sezar Çözücü")
pencere.geometry("600x480")
pencere.resizable(0,0)
cozumlenecek_metin = ttk.Text(width=20)
cozumlenecek_metin.grid(row=0,column=0,padx=10,pady=10)

cozumlenmis_metin = ttk.Text(width=20)
cozumlenmis_metin.grid(row=0,column=1,pady=10)
spnbx = ttk.Spinbox(bootstyle="warning",from_=1,to=29)
spnbx.insert(0,"1")
spnbx.configure(state="readonly")
spnbx.grid(row=0,column=2,padx=10)
cozumle_btn = ttk.Button(text="Çözümle",bootstyle="warning",command=cozumle)
cozumle_btn.grid(row=1,column=0)
kaydet_btn = ttk.Button(text="Kaydet",bootstyle="warning",command=kaydet).grid(row=1,column=1)

pencere.mainloop()

Python Custom Split Fonksiyonu

 Karakter buluncaya kadar indisi arttırıp iterable’da arama yapıyor. Bulunca konumunu kaydedip kelime_baslangic’a atıyor ve bir sonraki döngüye geçiyor.
Sonraki döngüde space oluncaya dek kelime_boyutu arttırılıyor. kelime_baslangic:kelime_baslangic+kelime_boyutu olacak şekilde kelime ekleniyor.

 

metin = input("Metin: ") + " "
kelimeler = []
indis = 0
kelime_baslangic = 0
kelime_indis = 0
while indis < len(metin) - 1:
    if " " not in metin:
        kelimeler.append(metin[0:])
        break
    if metin[indis] == " ":
        indis += 1
    else:
        kelime_baslangic = indis
        kelime_indis = indis
        kelime_boyutu = 0
        while metin[kelime_indis] != " ":
            kelime_boyutu += 1
            kelime_indis += 1
            if metin[kelime_indis].isspace():
                kelimeler.append(metin[kelime_baslangic:kelime_baslangic + kelime_boyutu])
                indis += kelime_boyutu
                kelime_indis = 0
                kelime_boyutu = 0
                break
print(kelimeler)  

İkinci örnek:

 

metin = bytearray(input("Metin: "),"utf-8","ignore")
indis = 0
kelimeler = []
while len(metin) > 0:
    for i in metin.decode():
        if i.isspace():
            kelimeler.append(metin[0:indis].decode())
            del metin[0:indis + 1]
            indis = 0
            break
        indis += 1
    if " " not in metin.decode():
        kelimeler.append(metin.decode())
        del metin[0:]
            
print(kelimeler)

Yukarıdaki ile prensip olarak aynı. Tek fark her boşluk karakterinde bytearray nesnesi sayesinde metni silip iterasyonu tekrarlaması.

Python XOX Oyunu

import os
import time

os.system("clear")
satirlar = "abc"
sutunlar = "123"
koordinatlar = []
oynama_sirasi = 1

for x in satirlar:
    for b in sutunlar:
        koordinatlar.append(x+b)
tahta = dict(zip(koordinatlar,(len(koordinatlar)) * "*"))
def tahtayi_goster(tahta):
    print("1 2 3\n")
    for i,z in enumerate(tahta.values()):
        if (i + 1) % 3 == 0:
            print(z,end=" ")
            print(satirlar[int(str(i / 3)[0])])
            print("\n")
            
        else:
            print(z,end=" ")
def kontrol(tahta):
    durumlar = [list({tahta["a1"],tahta["a2"],tahta["a3"]}),
                list({tahta["b1"],tahta["b2"],tahta["b3"]}),
                list({tahta["c1"],tahta["c2"],tahta["c3"]}),
                list({tahta["a1"],tahta["b2"],tahta["c3"]}),
                list({tahta["c1"],tahta["b2"],tahta["a3"]}),
                list({tahta["a1"],tahta["b1"],tahta["c1"]}),
                list({tahta["a2"],tahta["b2"],tahta["c2"]}),
                list({tahta["a3"],tahta["b3"],tahta["c3"]})]
    for i in durumlar:
        if len(i) == 1:
            if i != ["*"]:
                print("{} oyuncusu oyunu kazandı.".format(i[0]))
                tahtayi_goster(tahta)
                return False
            else:
                return True
        else:
            return True

def beraberlik(tahta):
    bos_kare = 0
    for i in tahta.keys():
        if tahta[i] == "*":
            bos_kare += 1
    if bos_kare == 0:
        print("Beraberlik.")
        time.sleep(2)
        return True
    else:
        return False

def sira(oynama_sirasi):
    if oynama_sirasi % 2:
        return "O"
    else:
        return "X"

while kontrol(tahta) and not beraberlik(tahta):
    tahtayi_goster(tahta)
    girilen_koordinat = input("{} oyuncusu için koordinat: ".format(sira(oynama_sirasi))).lower()
    try:
        if tahta[girilen_koordinat] == "*":
            tahta[girilen_koordinat] = sira(oynama_sirasi)
            oynama_sirasi += 1
        else:
            print("Girdiğiniz koordinat dolu.")
            time.sleep(1)
    except KeyError:
        print("Girdiğiniz koordinat yanlış.")
        time.sleep(1)
  os.system("clear")

Spongebob Text Generator

 


import ttkbootstrap as ttk
import tkinter as tk
import random
from ttkbootstrap.constants import *
from tkinter.filedialog import askdirectory

def spongelama():
    global yazi
    txt = yazi.get(0.0,tk.END).lower()
    yazi.delete(0.0,tk.END)
    indis = 0
    sponge_sayisi = int(len(txt) / 2)
    while sponge_sayisi > indis:
        r_sayi = random.randint(0,len(txt) - 1)
        if txt[r_sayi].islower() and txt[r_sayi].isspace() == False:
            txt = txt[0:r_sayi] + txt[r_sayi].upper() + txt[r_sayi + 1:]
            indis += 1
        else:
            pass
    yazi.insert(0.0,txt)
    indis = 0

def kaydet():
    dizin = askdirectory()
    dosya = open("{}/sponge.txt".format(dizin),"w")
    dosya.write(yazi.get(0.0,tk.END))
    dosya.close()

pencere = tk.Tk()
pencere.resizable(0,0)
stil = ttk.Style("darkly")
pencere.title("Spongebob Creator")
yazi = ttk.Text()
yazi.pack(padx=35,pady=38)
kaydet_btn = ttk.Button(text="Kaydet",bootstyle=INFO,command=kaydet)
kaydet_btn.place(x=200,y=512)
olustur_btn = ttk.Button(text="Oluştur",bootstyle=SUCCESS,command=spongelama)
olustur_btn.place(x=400,y=512)
pencere.mainloop()

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

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

pyPalette


 

import tkinter as tk
import pyperclip
from tkinter import Canvas
from tkinter.messagebox import showinfo
rkmlar = "0123456789abcdef"
tple = tuple(enumerate(rkmlar))

def deci(hexa):
    global tple
    if hexa >= 16:
        return tple[hexa // 16][1] + tple[hexa % 16][1]
    else:
        return "0" + str(tple[hexa % 16][1])
def boyama():
    global r,g,b,renk
    hexclr = deci(r.get()) + deci(g.get()) + deci(b.get())
    renk["bg"] = "#" + hexclr
    hxclr = "#" + hexclr
    pyperclip.copy("{},{},{} - {}".format(r.get(),g.get(),b.get(),hxclr))
    showinfo("Renk kodları","RGB: {},{},{}\nHex: {}\nBilgiler panoya kopyalandı.".format(r.get(),g.get(),b.get(),hxclr))

pencere = tk.Tk()
pencere.title("pyPalette")
pencere.resizable(0,0)
renk = Canvas(height=100,width=100,bg="purple")
renk.pack()
r = tk.Scale(length=300,from_=0,to=255,orient=tk.HORIZONTAL,bg="red")
r.pack()
g = tk.Scale(length=300,from_=0,to=255,orient=tk.HORIZONTAL,bg="green")
g.pack()
b = tk.Scale(length=300,from_=0,to=255,orient=tk.HORIZONTAL,bg="blue")
b.pack()
yeni_renk = tk.Button(text="Yeni Renk",command=boyama)
yeni_renk.pack()
pencere.mainloop()

Python Şifre Oluşturucu

 

import tkinter as tk
import pyperclip
import random
karakterler_kck = "0123456789abcçdefgğhıijklmnoöprsştuüvyzxq.-!\"()&."
karakterler = karakterler_kck + karakterler_kck.upper()
def kopyala():
    pyperclip.copy(sifre.get())
def yeni_sifre():
    global karakterler,sifre_uzunluk
    return str(random.sample(karakterler,sifre_uzunluk.get())).replace(" ","").replace("[","").replace("]","").replace("'","").replace(",","")
def sifre_olustur():
    global sifre
    sifre.delete(0,tk.END)
    sifre.insert(tk.END,yeni_sifre())
pencere = tk.Tk()
pencere.resizable(0,0)
pencere.geometry(("400x200"))
pencere.title("Şifre Oluşturucu")
etkt = tk.Label(text="Şifre:")
etkt.place(x=85,y=10)
sifre = tk.Entry(pencere)
sifre.place(x=128,y=10)
kopyala_buton = tk.Button(text="Kopyala",command=kopyala)
kopyala_buton.place(x=110,y=110)
olustur_buton = tk.Button(text="Oluştur",command=sifre_olustur)
olustur_buton.place(x=240,y=110)
sifre_uzunluk = tk.Scale(length=200,from_=8,to=20,orient=tk.HORIZONTAL)
sifre_uzunluk.place(x=110,y=40)
pencere.mainloop()

Python Hesap Makinesi

 


import tkinter as tk
pencere = tk.Tk()
pencere.title("Hesap Makinesi")
pencere.resizable(0,0)
sonuc_str = ""

def sifir():
    global yazi
    yazi.insert(tk.END,"0")
def bir():
    global yazi
    yazi.insert(tk.END,"1")
def iki():
    global yazi
    yazi.insert(tk.END,"2")
def uc():
    global yazi
    yazi.insert(tk.END,"3")
def dort():
    global yazi
    yazi.insert(tk.END,"4")
def bes():
    global yazi
    yazi.insert(tk.END,"5")
def alti():
    global yazi
    yazi.insert(tk.END,"6")
def yedi():
    global yazi
    yazi.insert(tk.END,"7")
def sekiz():
    global yazi
    yazi.insert(tk.END,"8")
def dokuz():
    global yazi
    yazi.insert(tk.END,"9")
def carpma():
    global yazi
    yazi.insert(tk.END,"*")
def toplama():
    global yazi
    yazi.insert(tk.END,"+")
def cikarma():
    global yazi
    yazi.insert(tk.END,"-")
def bolme():
    global yazi
    yazi.insert(tk.END,"/")
def temizle():
    global yazi
    yazi.delete(0,tk.END)
def sonuc():
    global yazi,sonuc_str
    sonuc_str = eval(yazi.get())
    yazi.delete(0,tk.END)
    yazi.insert(tk.END,sonuc_str)
    sonuc_str = ""

yazi = tk.Entry()
yazi.grid(column=10,row=0)
buton1 = tk.Button(text="1",command=bir)
buton1.grid(column=0,row=2)
buton2 = tk.Button(text="2",command=iki)
buton2.grid(column=1,row=2)
buton3 = tk.Button(text="3",command=uc)
buton3.grid(column=2,row=2)
buton4 = tk.Button(text="4",command=dort)
buton4.grid(column=0,row=3)
buton5 = tk.Button(text="5",command=bes)
buton5.grid(column=1,row=3)
buton6 = tk.Button(text="6",command=alti)
buton6.grid(column=2,row=3)
buton7 = tk.Button(text="7",command=yedi)
buton7.grid(column=0,row=4)
buton8 = tk.Button(text="8",command=sekiz)
buton8.grid(column=1,row=4)
buton9 = tk.Button(text="9",command=dokuz)
buton9.grid(column=2,row=4)
buton_tmzle = tk.Button(text="C",command=temizle,padx=11)
buton_tmzle.grid(column=0,row=5)
buton0 = tk.Button(text="0",command=sifir)
buton0.grid(column=1,row=5)
buton_snc = tk.Button(text="=",command=sonuc,padx=9)
buton_snc.grid(column=2,row=5)
buton_topla = tk.Button(text="+",command=toplama)
buton_topla.grid(column=5,row=2)
buton_cikarma = tk.Button(text="-",command=cikarma,padx=14)
buton_cikarma.grid(column=5,row=3)
buton_bolme = tk.Button(text="/",command=bolme,padx=15)
buton_bolme.grid(column=5,row=4)
buton_carpma = tk.Button(text="*",command=carpma,padx=13)
buton_carpma.grid(column=5,row=5)

pencere.mainloop()

Python ile İdeal Kilo Hesaplama



import tkinter as tk
from tkinter import messagebox
pencere = tk.Tk()
pencere.title("İdeal Kilo Hesaplama")
pencere.resizable(0,0)
pencere.geometry(("200x100"))

def hesapla(uznlk):
    maks_kilo = (uznlk ** 2) * 25
    min_kilo = (uznlk ** 2) * 18.5
    return "İdeal kilonuz {} ile {} arasındadır.".format(round(min_kilo,1),round(maks_kilo,1))
def mesaj():
    try:
        messagebox.showinfo(title="Sonuç",message=hesapla(float(uzunluk.get())))
    except ValueError:
        messagebox.showerror(title="Hata!",message="Lütfen sayısal bir değer giriniz.")
uzunluk = tk.Entry()
uzunluk.insert(tk.END,"Boyunuz(m)")
uzunluk.pack()
buton = tk.Button(text="Hesapla",command=mesaj)
buton.pack()
pencere.mainloop()

Python Mors Kodu Oluşturucu/Dönüştürücü

Hazırladığım bu kodda oluşturma ve dönüştürmeye ek olarak winsound modülü aracılığıyla oluşturulan kodlar sese de dönüştürülebiliyor.

import winsound
uzun,kisa = 700,200
menu = """Mors kodu oluşturucu/çevirici
(1)Morsa çevir
(2)Morstan çevir
(3)Çık"""
alfabe = [["a",".-"],["b","-..."],["c","-.-."],["d","-.."],["e","."],["f","..-."],["g","--."],["h","...."],["i",".."],["j",".---"],["k","-.-"],["l",".-.."],["m","--"],["n","-."],["o","---"],["p",".--."],
          ["q","--.-"],["r",".-."],["s","..."],["t","-"],["u","..-"],["v","...-"],["w",".--"],["x","-..-"],["y","-.--"],["z","--.."],["0","-----"],["1",".----"],["2","..---"],["3","...--"],["4","....-"],["5","....."],
          ["6","-...."],["7","--..."],["8","---.."],["9","----."]]
cevirilen_metin = ""
mors = ""
morstan_cevrilen = []
def oynat():
    global mors
    for i in mors:
        if i == "-":
            winsound.Beep(2000,uzun)
        if i == ".":
            winsound.Beep(2000,kisa)
while True:
    print(menu)
    cevirilen_metin = ""
    morstan_cevrilen = []
    secenek = int(input("Seçiminiz:"))
    if secenek == 1:
        metin = input("Çevrilmesini istediğiniz metini giriniz:")
        for i in metin:
            for z,x in alfabe:
                if i == z:
                    cevirilen_metin += x + " "
        mors = cevirilen_metin
        print("Sonuç:",cevirilen_metin)
        oynat()
    if secenek == 2:
        metin = input("Çevrilmesini istediğiniz kodu giriniz:")
        baslangic,indis = 0,0
        while indis < len(metin) - 1:
            indis += 1
            if metin[indis] == " ":
                morstan_cevrilen.append(metin[baslangic:indis])
                baslangic = indis + 1
        morstan_cevrilen.append(metin[baslangic:len(metin)])
        for i in morstan_cevrilen:
            for z,x in alfabe:
                if i == x:
                    cevirilen_metin += z
                    mors += i
        print("Sonuç:",cevirilen_metin)
        oynat()
    if secenek == 3:
        print("Yine bekleriz!")
        exit()

Python Mental Aritmetik Oyunu

Oyunu oynayabilmek için bir editör yerine komut satırını tercih etmelisiniz. Ekranda çıkan sayıları ezberleyin, verilen işlemleri yapın.

import os
import time
import random
can = 3
seviye = 3
standart = 3
sonuc = random.randint(1,50)
puan = 0
while can > 0:
    print(sonuc)
    time.sleep(3)
    while seviye > 0:
        islem = random.randint(0,4)
        if islem == 1:
            sayi = random.randint(1,50)
            sonuc += sayi
            print("+",sayi)
            time.sleep(2)
            seviye -= 1
            os.system("cls")
        if islem == 2:
            sayi = random.randint(1,9)
            sonuc *= sayi
            print("x",sayi)
            time.sleep(2)
            seviye -= 1
            os.system("cls")
        if islem == 3:
            sayi = random.randint(1,50)
            sonuc -= sayi
            print("-",sayi)
            time.sleep(2)
            seviye -= 1
            os.system("cls")
        if islem == 4:
            sayi = random.randint(1,50)
            while sonuc % sayi != 0:
                sayi = random.randint(1,50)
            sonuc /= int(sayi)
            print("/",sayi)
            time.sleep(2)
            seviye -= 1
            os.system("cls")
    yanit = input("Yanıtınız:")
    if yanit == "q":
        break
    if int(yanit) == sonuc:
        print("Doğru yanıt!")
        puan += 30
        time.sleep(3)
        standart += 1
        seviye = standart
        sonuc = random.randint(1,50)
    else:
        print("Yanlış yanıt!",sonuc,"olmalıydı.")
        time.sleep(3)
        puan -= 10
        can -= 1
        seviye = 3
        sonuc = random.randint(1,50)
print("Oyun bitti. Toplam puan:",puan)