Python'da Yazılmış Bazı Uygulamalar
Sayı Tahmin Oyunu
1 - 100 arasında rastgele seçilen sayıyı, belirlediğiniz hak / can sayısı bitmeden bulmaya çalıştığınız bir uygulamadır. Puanınız 100 üzerinden hesaplanır, can sayınız minimum 1, maksimum 10 olabilir.
x# Gerekli kütüphane
import random
print("\t\t---> Sayı Tahmin Oyunu <---\n")
number = random.randint(1, 100) # 1 - 100 arasında rastgele sayı üretir.
can = int(input("--> Kaç hak kullanmak istersiniz (min=1, max=10): "))
while (can < 1 or can > 10):
print("-> Can sayısı 1'den küçük veya 10'dan büyük olamaz! Lütfen tekrar giriniz")
can = int(input("--> Kaç hak kullanmak istersiniz (min=1, max=10): "))
if (can >= 1 and can <= 10):
break
hak = can
sayac = 0
while hak > 0:
hak -= 1
sayac += 1
tahmin = int(input("-> Tahmin: "))
if number == tahmin:
print(
f"--> Tebrikler {sayac}. defada bildiniz. 100 üzerinden Toplam puanınız: {100 - ((int(100 / can)) * (sayac - 1))} <--")
print("\n\t\t---> Oyun Bitti: Kazandınız <---")
break
elif number > tahmin:
print(" > yukarı")
else:
print(" > aşağı")
if hak == 0:
print(f"--> Hakkınız bitti. Hedef sayı: {number}")
print("\n\t\t---> Oyun Bitti: Kaybettiniz <---")
Bankamatik
Oluşturulmuş hesapların 'bakiye' bilgisini öğrenebildiğimiz ve para çekme işlemi yapabildiğimiz bir uygulamadır. Para çekmek için belirtiğimiz tutar bakiyemizin üstünde ise bize ek hesap kullanmak isteyip istemediğimizi soracaktır. Kabul edersek iki miktarı toplayacak ve belirlediğimiz tutar ile karşılaştıracaktır. Yine Belirlediğimiz tutar toplam miktarını üstünde ise para çekme işlemini yaptırmayacaktır.
xxxxxxxxxx
ahmetHesap = {
"ad" : "Ahmet",
"hesapNo" : "11223344",
"bakiye" : 3000,
"ekHesap" : 2000
}
tayyipHesap = {
"ad" : "Tayyip",
"hesapNo" : "12345678",
"bakiye" : 2000,
"ekHesap" : 1000
}
def paraCek(hesap, miktar):
print(f"-> Merhaba {hesap['ad']}")
if (hesap['bakiye'] >= miktar):
hesap["bakiye"] -= miktar
print("-> Paranızı alabilirsiniz.")
bakiyeSorgula(hesap)
else:
toplam = hesap["bakiye"] + hesap["ekHesap"]
if (toplam >= miktar):
ekHesapKullanimi = input("-> Ek hesap kullanılsın mı? (e/h)")
if (ekHesapKullanimi == "e"):
ekHesapKullanilacakMiktar = miktar - hesap["bakiye"]
hesap["bakiye"] = 0
hesap["ekHesap"] -= ekHesapKullanilacakMiktar
print("-> Paranızı alabilirsiniz.")
bakiyeSorgula(hesap)
elif(ekHesapKullanimi == "h"):
print(f"-> {hesap['hesapNo']} nolu hesabınızda {hesap['bakiye']} TL bulunmaktadır.")
else:
print("-> Yanlış giriş yaptınız.")
else:
print("-> Üzgünüz bakiye yetersiz.")
bakiyeSorgula(hesap)
def bakiyeSorgula(hesap):
print(f"-> {hesap['hesapNo']} nolu hesabınızda {hesap['bakiye']} TL bulunmaktadır. Ek hesap limitiniz ise {hesap['ekHesap']} TL'dir.")
print("\t\t---> Bankamatik <---\n")
print(f"--> Hesap sahibi: {ahmetHesap['ad']}")
bakiyeSorgula(ahmetHesap)
paraCek(ahmetHesap, 4000)
print(f"\n--> Hesap sahibi: {tayyipHesap['ad']}")
bakiyeSorgula(tayyipHesap)
paraCek(tayyipHesap, 3100)
Öğrenci Notları Kayıt Programı
Öğrenci ve notlarını girdiğimizde bize harf notunu hesaplayan ve bu bilgileri bir dosyaya kaydeden, daha sonra girdiğimiz bilgileri okumak istediğimizde ekrana yazdıran bir uygulamadır.
xxxxxxxxxx
# 'sinavNotlari.txt' dosyasının içindeki bilgileri parçalayarak öğrencinin notlarına ulaşılır ve ortalaması hesaplanır.
def notHesapla(satir):
satir = satir[ : -1]
liste = satir.split(":")
ogrenciAdi = liste[0]
notlar = liste[1].split(",")
not1 = int(notlar[0])
not2 = int(notlar[1])
not3 = int(notlar[2])
ortalama = (not1 + not2 + not3) / 3
if (ortalama >= 90):
harf = "AA"
elif (ortalama >= 85):
harf = "BA"
elif (ortalama >= 80):
harf = "BB"
elif (ortalama >= 75):
harf = "CB"
elif (ortalama >= 70):
harf = "CC"
elif (ortalama >= 65):
harf = "DC"
elif (ortalama >= 60):
harf = "DD"
elif (ortalama >= 50):
harf = "FD"
elif (ortalama <= 49):
harf = "FF"
return f"{ogrenciAdi}: {harf}\n"
# 1'e basıldığında bu fonksiyon çalışır, 'sinavNotlari.txt' dosyasının içindeki bilgileri 'notHesapla()' fonksiyonuna yollar.
def ortalamalariOku():
with open("sinavNotlari.txt", "r", encoding = "utf-8") as dosya:
for satir in dosya:
print(notHesapla(satir))
# 2'ye basıldığında bu fonksiyon çalışır, öğrencinin notlarını 'sinavNotlari.txt' dosyasına ekler.
def notGir():
ad = input("Öğrenci ad: ")
soyad = input("Öğrenci soyad: ")
not1 = input("Not1: ")
not2 = input("Not2: ")
not3 = input("Not3: ")
with open("sinavNotlari.txt", "a", encoding = "utf-8") as dosya:
dosya.write(f"{ad} {soyad}: {not1}, {not2}, {not3}\n")
# 3'e basıldığında bu fonksiyon çalışır, 'notHesapla()' fonksiyonundan gelen değerler 'sonuclar.txt' dosyasına eklenir.
def notlariKaydet():
with open("sinavNotlari.txt", "r", encoding = "utf-8") as dosya:
liste = []
for i in dosya:
liste.append(notHesapla(i))
print(liste)
with open("sonuclar.txt", "w", encoding = "utf-8") as dosya2:
for i in liste:
dosya2.write(i)
# Menünün oluşturulduğu bölüm
while True:
islem = input("1.) Notları oku\n2.) Not gir\n3.) Notları kaydet\n4.) Çıkış\n")
if islem == "1":
ortalamalariOku()
elif islem == "2":
notGir()
elif islem == "3":
notlariKaydet()
elif islem == "4":
break
else:
print("Yanlış değer girdiniz. Lütfen tekrar deneyiniz.")