0% found this document useful (0 votes)
5 views4 pages

Python Project

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

Python Project

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

import time as t import sys

# Bu değişkenlere programın her yerinden ulaşabilmek için en başta tanımlıy-


oruz. cart = {} SHIPPING_FEE = 35 # 100 TL altı için kargo ücreti
# --- ÜRÜNLER --- # Mağazadaki tüm ürünleri, kategorileri, fiyatları ve
stokları bu sözlükte tutuyoruz. products = { ”Unlu Mamüller”: { ”Ekmek”:
{”fiyat”: 20, ”stok”: 30}, ”Poğaça”: {”fiyat”: 15, ”stok”: 20}, ”Simit”: {”fiyat”:
15, ”stok”: 25} }, ”İçecekler”: { ”Su”: {”fiyat”: 10, ”stok”: 50}, ”Kola”:
{”fiyat”: 35, ”stok”: 40}, ”Fanta”: {”fiyat”: 30, ”stok”: 40}, ”Ayran”: {”fiyat”:
18, ”stok”: 45} }, ”Meyve & Sebze”: { ”Elma”: {”fiyat”: 25, ”stok”: 50},
”Domates”: {”fiyat”: 30, ”stok”: 60}, ”Muz”: {”fiyat”: 45, ”stok”: 35} },
”Temel Gıda”: { ”Makarna”: {”fiyat”: 21, ”stok”: 80}, ”Pirinç”: {”fiyat”: 55,
”stok”: 65}, ”Zeytinyağı”: {”fiyat”: 250, ”stok”: 20} } }
# Bir ürün adıyla arama yapıp o ürünün detaylarını bulan fonksiyon
def find_product(searched_product_name): ””” Verilen ürün adını tüm
kategorilerde arıyoruz Bulursa kategori, ürün adı, detaylar döndürüyoruz
Bulamazsak None döndürücez yapcak bişi yok. ””” for category, product_list
in [Link](): for product_name, details in product_list.items(): if
product_name.lower() == searched_product_name.lower(): return (category,
product_name, details) return None
def list_products(): ”””Tüm ürünleri kategorilerine göre düzenli bir şekilde
listeliyorız””” print(”\n--- MAĞAZADAKİ ÜRÜNLER ---”) for category, prod-
uct_list in [Link](): print(f”\n----- {[Link]()} -----”) for prod-
uct_name, details in product_list.items(): print(f”-> {product_name:<12} |
Fiyat: {details['fiyat']:>5} TL | Stok: {details['stok']:>3} adet”) print(”\n------
---------------------\n”)
def add_to_cart(): ”””Kullanıcıdan ürün adı ve adet alarak sepete ekleme
ve stok kontrolü yapıyoruz””” global cart # Fonksiyonun globaldeki 'cart'
değişkenini değiştireceğini belirtiyoruz.
product_name_input = input(”Eklemek istediğiniz ürünün adını giriniz:
”).strip() found_product = find_product(product_name_input)
if not found_product: print(f”\n!!! HATA: '{product_name_input}' adında
bir ürün bulunamadı. Lütfen tekrar deneyin.\n”) return
category, actual_product_name, details = found_product
# Adet girişi ve kontrolü try: quantity = int(input(f”'{actual_product_name}'
ürününden kaç adet eklemek istiyorsunuz? (Stok: {details['stok']}): ”)) if quan-
tity <= 0: print(”\n!!! HATA: Adet 1 veya daha fazla olmalıdır.\n”) return
if quantity > details['stok']: print(f”\n!!! HATA: Stok yetersiz! Bu ürün-
den en fazla {details['stok']} adet ekleyebilirsiniz.\n”) return except ValueError:
print(”\n!!! HATA: Lütfen sayısal bir değer giriniz.\n”) return
# Sepete ekleme ve güncelleme yaptığımız yer if actual_product_name in cart:
# Ürün sepette zaten varsa, adedini arttır cart[actual_product_name]['adet']

1
+= quantity else: # Ürün sepette yoksa, yeni olarak ekliyoz cart[actual_product_name]
= { 'adet': quantity, 'fiyat': details['fiyat'] }
# Stoktan düşme products[category][actual_product_name]['stok'] -= quan-
tity print(f”\n� '{actual_product_name}' ürününden {quantity} adet başarıyla
sepete eklendi.\n”)
def view_cart(): ”””Sepetteki ürünleri, adetlerini, toplam fiyatlarını ve
genel toplamı gösteriyoruz””” print(”\n--- SEPETİNİZ ---”) if not cart:
print(”Sepetiniz şu anda boş.\n”) return
total_amount = 0 for product_name, details in [Link](): product_total
= details['adet'] * details['fiyat'] total_amount += product_total print(f”->
{product_name:<12} | {details['adet']:>2} adet x {details['fiyat']:>5} TL =
{product_total:>6} TL”)
print(”-----------------”) print(f”TOPLAM TUTAR: {total_amount} TL\n”)
def remove_from_cart(): ”””Kullanıcının sepetinden ürün çıkarmasını sağlıyor
ve stoğu geri güncelliyoruz hemen.””” global cart view_cart() # Önce sepeti
gösteriyoruz ki kullanıcı ne çıkaracağını bilebilsin hakkıdır
if not cart: return
product_name_input = input(”Sepetten çıkarmak istediğiniz ürünün adını
giriniz: ”).title()
if product_name_input not in cart: print(f”\n!!! HATA: '{product_name_input}'
adında bir ürün sepetinizde bulunmuyor.\n”) return
# Adet girişi ve kontrolü try: quantity = int(input( f”'{product_name_input}'
ürününden kaç adet çıkarmak istiyorsunuz? (Sepette {cart[product_name_input]['adet']}
adet var): ”)) if quantity <= 0: print(”\n!!! HATA: Adet 1 veya daha
fazla olmalıdır.\n”) return if quantity > cart[product_name_input]['adet']:
print(f”\n!!! HATA: Sepetinizde bu üründen sadece {cart[product_name_input]['adet']}
adet var!\n”) return except ValueError: print(”\n!!! HATA: Lütfen sayısal bir
değer giriniz.\n”) return
# Stoğu geri ekleme found_product = find_product(product_name_input)
category, actual_product_name, details = found_product products[category][actual_product_name]['stok']
+= quantity
# Sepetten çıkarma if quantity == cart[actual_product_name]['adet']: # İste-
nen adet sepettekiyle aynıysa ürünü tamamen siliyoruz del cart[actual_product_name]
print(f”\n� '{actual_product_name}' ürünü sepetten tamamen kaldırıldı.\n”)
else: # Ürün adedini azaltıyoruuz cart[actual_product_name]['adet'] -=
quantity print(f”\n� '{actual_product_name}' ürününün adedi {quantity}
azaltıldı.\n”)
def process_payment(): ”””Sepet tutarını hesaplayıp kargo ücretiyle kazık- ek-
liyoruz sonra da onay alıyoruz””” global cart view_cart()

2
if not cart: return False # Sepet boşsa ödeme yapılamaz. Doğal olarak yani...
total_amount = 0 for details in [Link](): total_amount += details['adet']
* details['fiyat']
print(f”Sepet Ara Toplamı: {total_amount} TL”)
# Kargo ücreti if total_amount >= 100: print(”� 100 TL ve üzeri alışveriş yap-
tığınız için kargonuz ücretsiz!”) amount_to_pay = total_amount else: print(f”�
Kargo Ücreti: +{SHIPPING_FEE} TL”) amount_to_pay = total_amount +
SHIPPING_FEE
print(”----------------------------”) print(f”ÖDENECEK TOPLAM TUTAR:
{amount_to_pay:.2f} TL”)
confirmation = input(”\nÖdemeyi onaylıyor musunuz? (evet/hayır): ”).lower()
if confirmation == 'evet': print(”\nÖdemeniz başarıyla alındı. Siparişiniz hazır-
lanıyor...”) [Link](2) # Program sonlanacağı için sepeti temizlemeye gerek yok
zaten her şey gidicek return True # Ödemenin başarılı olduğunu ana döngüye
bildiriyoruz else: print(”\nÖdeme işlemi iptal edildi. Alışverişe devam ede-
bilirsiniz.\n”) return False # Ödemenin iptal edildiğini döndürüyoruz
def add_new_product(): ”””Yöneticiden bilgi alarak ürün veritabanına
yeni ürün ekleyeceğiz””” print(”\n--- YENİ ÜRÜN EKLEME EKRANI ---
”) print(”Mevcut Kategoriler:”, ”, ”.join([Link]())) category_input
= input(”Ürünün kategorisini girin (yoksa yeni kategori oluşturulur):
”).strip().title() product_name_input = input(”Yeni ürünün adını girin:
”).strip().capitalize() try: price = float(input(”Ürün fiyatını girin (örn: 25.5):
”)) stock = int(input(”Ürün stok adedini girin: ”)) if price <= 0 or stock
< 0: print(”\n!!! HATA: Fiyat ve stok negatif veya sıfır olamaz.\n”) return
except ValueError: print(”\n!!! HATA: Fiyat ve stok için lütfen sayısal değer
giriniz.\n”) return if category_input not in products: products[category_input]
= {} print(f”Bilgi: '{category_input}' adında yeni bir kategori oluşturuldu.”)
if product_name_input in products[category_input]: print(f”\n!!! HATA:
'{product_name_input}' ürünü '{category_input}' kategorisinde zaten mev-
cut!\n”) else: products[category_input][product_name_input] = {'fiyat': price,
'stok': stock} print(f”\n� '{product_name_input}' ürünü '{category_input}'
kategorisine başarıyla eklendi.\n”)
# --- ANA UYGULAMA DÖNGÜSÜ --- try: name = str(input(”Lütfen
isminizi giriniz: ”)).title() print(f”\nMenüye yönlendiriliyorsunuz sayın
{name}...”) [Link](1)
while True: print(f”--- YILDIZ MARKET'E HOŞ GELDİNİZ, {name} ---”)
print(” 1) Ürünleri Listele”) print(” 2) Sepete Ekle”) print(” 3) Sepeti Gör”)
print(” 4) Sepetten Ürün Çıkar”) print(” 5) Ödeme”) print(” 6) Yeni Ürün Ekle
(admin)”) print(” 7) Çıkış”)
try: choice = int(input(”Lütfen seçiminizi giriniz (1-7): ”))

3
if choice == 1: list_products() elif choice == 2: add_to_cart() elif choice
== 3: view_cart() elif choice == 4: remove_from_cart() elif choice == 5: #
process_payment() fonksiyonu True dönerse (ödeme başarılıysa) döngüyü kır
ve programı bitir. if process_payment(): print(f”\nBizi tercih ettiğiniz için
teşekkür ederiz, iyi günler {name}!”) break elif choice == 6: password = in-
put(”Yönetim paneline erişmeye çalışıyorsun. Lütfen şifreyi gir: ”) if password
== ”12345”: add_new_product() else: print(”Şifre yanlış. Ana menüye yön-
lendiriliyorsunuz...”) [Link](1) elif choice == 7: print(f”\nBizi tercih ettiğiniz
için teşekkür ederiz, yine bekleriz {name}!”) break # Döngüyü kırarak pro-
gramı sonlandırıyruz else: print(”\n!!! Lütfen 1 ile 7 arasında geçerli bir seçim
yapınız.\n”)
except ValueError: print(”\n!!! Geçersiz giriş. Lütfen sadece menüdeki sayıları
giriniz.\n”)
except KeyboardInterrupt: print(f”\nProgram sonlandırıldı. İyi günler,
{name}!”) [Link](0)

You might also like