top of page

25% Discount For All Pricing Plans "welcome"

Python For Data Analysis

Master data analysis with Python and unlock the power of data-driven insights !

Up to 12 Members

Each class is limited to 12 members, ensuring personalized attention and an interactive learning experience.

+20 Projects

Gain hands-on experience with over 20 real-world projects, designed to solidify your data analysis skills.

+30 In Class Works

Participate in more than 30 in-class activities, enhancing your practical understanding through collaborative exercises.

1-1 Support

Receive dedicated 1-on-1 support from experienced mentors, tailored to address your specific learning needs.

Introduction to Python and Programming Basics

Start by learning the fundamentals of Python, covering variables, data types, loops, and conditionals. This foundation is crucial for understanding how to manipulate and analyze data effectively. Whether you're new to coding or just brushing up, this topic sets the stage for success in data analysis.

Functional Programming and Data Manipulation with Numpy

Explore functional programming in Python and gain hands-on experience with the Numpy library. Learn how to handle arrays, perform mathematical operations, and manipulate data structures efficiently, making complex data analysis tasks more approachable.

Data Handling and Analysis with Pandas

Dive deep into Pandas, the go-to library for data analysis in Python. This topic covers how to read, clean, and process datasets, work with DataFrames, and perform essential data operations such as filtering, sorting, and grouping, equipping you with the tools needed for robust data analysis.

Data Cleaning and Handling Missing Data

Data cleaning is one of the most critical steps in any analysis. Learn techniques for dealing with missing values, removing outliers, and preparing datasets for deeper analysis. This topic ensures that you can work confidently with real-world, messy datasets.

Data Visualization with Matplotlib and Seaborn

Master the art of data visualization using Matplotlib and Seaborn. You'll create a wide range of plots, from basic bar and line charts to advanced visualizations like heatmaps and pair plots, helping you present your data insights effectively and clearly.

Exploratory Data Analysis (EDA)

Exploratory Data Analysis (EDA) enables you to uncover patterns, relationships, and anomalies in your datasets. You'll learn how to perform EDA with Python to extract valuable insights that set the foundation for further analysis or modeling.

Introduction to Statistics for Data Analysis

This topic introduces key statistical concepts necessary for data analysis, such as distributions, hypothesis testing, and summary statistics. Through practical applications in Python, you'll learn how to interpret data and make informed, data-driven decisions.

Final Project and Application

Put all your new skills into practice with a comprehensive data analysis project. You’ll choose a dataset, clean and process the data, perform analysis, create visualizations, and present your findings, showcasing the full spectrum of your abilities developed throughout the course.

Topics Covered

Python Fundamentals and Data Structures

  • Python Basics: Introduction to Python programming, covering syntax, variables, data types, and operators.

  • Control Flow and Loops: Learn how to implement loops and conditionals for controlling the flow of programs.

  • Data Structures: Explore essential Python data structures like lists, tuples, sets, and dictionaries for data manipulation.

Program

Proje Açıklaması Sosyal medya, günümüzde bireyler ve işletmeler için önemli bir iletişim ve pazarlama aracı haline gelmiştir. Bu projede, bir sosyal medya platformunun etkileşim verilerini analiz ederek kullanıcı davranışlarını ve platformun performansını değerlendireceğiz. Amacımız, kullanıcıların gönderi etkileşimlerini, beğeni ve yorum aktivitelerini incelemek, popüler içerik türlerini belirlemek ve platformun genel etkileşim seviyesini artırmak için stratejik kararlar almaktır. Bu analiz, sosyal medya yöneticilerine ve pazarlama ekiplerine, etkileşim trendlerini anlamada ve içerik stratejilerini optimize etmede yardımcı olacaktır. Proje Kullanım Alanları Bu proje, sosyal medya platformları ve pazarlama ekipleri için çeşitli kullanım alanlarına sahiptir: Kullanıcı Davranışlarının Analizi:  Kullanıcıların platformdaki etkileşimlerini inceleyerek, hangi tür içeriklerin daha fazla ilgi gördüğünü belirleme. İçerik Stratejileri:  Popüler içerik türlerini ve etkileşim oranlarını analiz ederek, içerik stratejilerini optimize etme. Etkileşim Trendlerinin Belirlenmesi:  Zaman içindeki etkileşim trendlerini belirleyerek, mevsimsel ve dönemsel içerik planlamaları yapma. Kullanıcı Segmentasyonu:  Farklı kullanıcı gruplarının etkileşim davranışlarını analiz ederek, hedef kitleye yönelik özel kampanyalar ve teklifler oluşturma. Pazarlama Kampanyaları:  Sosyal medya etkileşim verilerini kullanarak, etkili pazarlama kampanyaları geliştirme ve müşteri sadakat programları oluşturma. Veriseti Açıklaması Bu projede kullanılacak veri seti, bir sosyal medya platformuna ait etkileşim verilerini içermektedir. Veri seti, toplamda dört ana dosyadan oluşmaktadır: Kullanıcılar (users) UserID:  Kullanıcı kimliği UserName:  Kullanıcı adı JoinDate:  Katılım tarihi Country:  Ülke Gönderiler (posts) PostID:  Gönderi kimliği UserID:  Kullanıcı kimliği PostDate:  Gönderi tarihi Content:  Gönderi içeriği Likes:  Beğeni sayısı Beğeniler (likes) LikeID:  Beğeni kimliği PostID:  Gönderi kimliği UserID:  Kullanıcı kimliği LikeDate:  Beğeni tarihi Yorumlar (comments) CommentID:  Yorum kimliği PostID:  Gönderi kimliği UserID:  Kullanıcı kimliği CommentDate:  Yorum tarihi Content:  Yorum içeriği Bu veri setinde, eksik veriler, aykırı veriler ve yanlış veri tipi gibi çeşitli kirli veri sorunları bulunmaktadır. Bu, gerçek hayatta sıkça karşılaşılan veri temizleme ve işleme süreçlerini deneyimlemek için ideal bir veri setidir. Öğrenci Faydaları Bu proje, öğrenciler için birçok fayda sağlamaktadır: Veri Manipülasyonu:  Öğrenciler, veri setlerini inceleme, temizleme ve analiz etme becerilerini geliştirirler. Pandas Kullanımı:  Pandas kütüphanesinin veri işleme ve analiz yöntemlerini etkin bir şekilde kullanmayı öğrenirler. Veri Temizleme:  Eksik veriler, aykırı veriler ve yanlış veri tiplerini temizleme becerileri kazanırlar. İş Zekası:  Veri setlerini analiz ederek, platform performansını değerlendirme ve stratejik kararlar alabilme yeteneklerini geliştirirler. Raporlama:  Analiz sonuçlarını etkili bir şekilde raporlama ve sunma becerileri kazandırır. Gerçek Hayat Uygulamaları:  Gerçek hayatta karşılaşılan veri sorunları ve analiz süreçleri hakkında pratik bilgi sağlar. Adımlar - Projenin amacını ve hedeflerini belirleyin. - Hangi sorulara cevap aradığınızı ve hangi kararların verilmesine yardımcı olacağını belirleyin. - Hangi şirketin hisse senedi en yüksek kapanış fiyatına sahiptir? - Hangi şirketin işlem hacmi en yüksektir? - Hangi şirketin hisse senedi fiyatı zaman içinde en fazla artış göstermiştir? - Hangi sektör en yüksek toplam piyasa değerine sahiptir? - Hangi sektör en fazla çalışan sayısına sahiptir? - GDP ve hisse senedi fiyatları arasında bir korelasyon var mı? - Enflasyon oranı ve hisse senedi fiyatları arasında bir korelasyon var mı? - İşsizlik oranı ve hisse senedi fiyatları arasında bir korelasyon var mı? - Faiz oranı ve hisse senedi fiyatları arasında bir korelasyon var mı? - Şirket haberlerinin hisse senedi fiyatları üzerindeki etkisi nedir?

Sosyal medya, günümüzde bireyler ve işletmeler için önemli bir iletişim ve pazarlama aracı haline gelmiştir. Bu projede, bir sosyal medya pl

Sosyal Medya Etkileşim Analizi

Proje Açıklaması E-ticaret sektörü, günümüzde hızla büyüyen ve gelişen bir alan olarak öne çıkmaktadır. Bu projede, bir e-ticaret şirketinin satış verilerini analiz ederek, işletmenin performansını değerlendireceğiz. Amacımız, satışların zaman içindeki dağılımını incelemek, en çok satan ürün kategorilerini belirlemek, müşteri davranışlarını analiz etmek ve işletmenin kârlılığını artırmak için stratejik kararlar almaktır. Bu analiz, işletme sahiplerine ve yöneticilere, satış trendlerini anlamada ve iş stratejilerini optimize etmede yardımcı olacaktır. Proje Kullanım Alanları Bu proje, e-ticaret işletmeleri için çeşitli kullanım alanlarına sahiptir: Satış Trendlerinin Analizi:  Satışların belirli dönemler içindeki değişimlerini inceleyerek, mevsimsel trendleri ve satış artış/düşüş nedenlerini belirleme. Ürün Kategorisi Analizi:  En çok satan ürün kategorilerini ve bu kategorilerdeki kârlılığı analiz etme. Müşteri Davranışları:  Müşteri segmentasyonunu yaparak, farklı müşteri gruplarının alışveriş davranışlarını anlama. Pazarlama Stratejileri:  Satış verilerini kullanarak, etkili pazarlama stratejileri geliştirme ve müşteri sadakat programları oluşturma. Stok Yönetimi:  Stokların etkin bir şekilde yönetilmesi için, hangi ürünlerin ne zaman talep gördüğünü belirleme. Kâr Marjı Analizi:  Kâr marjlarını analiz ederek, fiyatlandırma stratejilerini optimize etme ve maliyetleri düşürme. Veri seti Açıklaması Bu projede kullanılacak veri seti, bir e-ticaret şirketine ait satış verilerini içermektedir. Veri seti, toplamda 10.000 satır ve çeşitli sütunlardan oluşmaktadır. Veri setinde yer alan sütunlar şunlardır: Siparişler (orders) OrderID:  Sipariş kimliği CustomerID:  Müşteri kimliği OrderDate:  Sipariş tarihi ShipDate:  Gönderim tarihi ShipMode:  Gönderim modu Ürünler (products) ProductID:  Ürün kimliği ProductCategory:  Ürün kategorisi ProductName:  Ürün adı Satışlar (sales) OrderID:  Sipariş kimliği ProductID:  Ürün kimliği Sales:  Satış tutarı Quantity:  Satış miktarı Discount:  İndirim oranı Profit:  Kâr Müşteriler (customers) CustomerID:  Müşteri kimliği CustomerName:  Müşteri adı CustomerSegment:  Müşteri segmenti Region:  Bölge City:  Şehir State:  Eyalet Country:  Ülke Bu veri setinde, eksik veriler, aykırı veriler ve yanlış veri tipi gibi çeşitli kirli veri sorunları bulunmaktadır. Bu, gerçek hayatta sıkça karşılaşılan veri temizleme ve işleme süreçlerini deneyimlemek için ideal bir veri setidir. Öğrenci Faydaları Bu proje, öğrenciler için birçok fayda sağlamaktadır: Veri Manipülasyonu:  Öğrenciler, veri setlerini inceleme, temizleme ve analiz etme becerilerini geliştirirler. Pandas Kullanımı:  Pandas kütüphanesinin veri işleme ve analiz yöntemlerini etkin bir şekilde kullanmayı öğrenirler. Veri Temizleme:  Eksik veriler, aykırı veriler ve yanlış veri tiplerini temizleme becerileri kazanırlar. İş Zekası:  Veri setlerini analiz ederek, işletme performansını değerlendirme ve stratejik kararlar alabilme yeteneklerini geliştirirler. Raporlama:  Analiz sonuçlarını etkili bir şekilde raporlama ve sunma becerileri kazandırır. Gerçek Hayat Uygulamaları:  Gerçek hayatta karşılaşılan veri sorunları ve analiz süreçleri hakkında pratik bilgi sağlar.  Genel Analiz Soruları: 1. Siparişler ve Satışlar:     - Toplam satış miktarı ve toplam kar nedir?     - En yüksek satış ve kar getiren ürünler ve kategoriler hangileridir?     - Siparişlerin tarihsel dağılımı nasıldır?     - Siparişlerin kargo modlarına göre dağılımı nasıldır? 2. Müşteriler ve Siparişler:     - En fazla sipariş veren müşteriler kimlerdir?     - Müşteri segmentlerine göre sipariş dağılımı nasıldır?     - Bölgesel olarak sipariş dağılımı nasıldır? 3. Ürünler ve Satışlar:     - En çok satan ürünler hangileridir?     - Ürün kategorilerine göre satış dağılımı nasıldır?     - İndirimlerin satışlar üzerindeki etkisi nedir? 4. Aykırı Değerler ve Eksik Veriler:     - Aykırı değerler hangi ürünlerde ve hangi siparişlerde görülmektedir?     - Eksik veriler hangi sütunlarda ve ne kadar orandadır?     - Eksik ve yanlış veri tipi içeren kayıtlar nasıl düzeltilebilir? Spesifik Proje Soruları: 1. Zaman Serisi Analizi:     - Siparişlerin tarihsel trendleri nelerdir?     - Satış miktarları ve karın zaman içindeki değişimi nasıldır?     - Belirli dönemlerdeki (örneğin, tatil sezonu) satış patlamaları nelerdir? 2. Müşteri Davranış Analizi:     - Müşteri segmentlerine göre satın alma davranışları nasıldır?     - En sadık müşteriler kimlerdir ve bunlar hangi ürünleri tercih etmektedir?     - Bölgesel müşteri davranışları nasıl farklılık göstermektedir? 3. Kargo Modu ve Teslimat Performansı:     - Farklı kargo modlarının teslimat süreleri ve müşteri memnuniyeti üzerindeki etkileri nelerdir?     - Kargo modlarına göre maliyet analizi nasıl yapılabilir? 4. Ürün Performans Analizi:     - Hangi ürün kategorileri en yüksek satış ve kar oranlarına sahiptir?     - Yeni ürün önerileri için hangi kategorilerde fırsatlar bulunmaktadır?     - Aykırı değerlerin ürün performansı üzerindeki etkileri nelerdir? 5. İndirim ve Promosyon Analizi:     - İndirimlerin satışlar ve kar üzerindeki etkisi nedir?     - Farklı indirim stratejilerinin performansı nasıl değerlendirilebilir?

E-ticaret sektörü, günümüzde hızla büyüyen ve gelişen bir alan olarak öne çıkmaktadır. Bu projede, bir e-ticaret şirketinin satış verilerini

E-Ticaret Satış Analizi

Coffee Machine Nedir? Coffee Machine (Kahve Makinesi), kullanıcıların belirli bir tür kahve seçip, seçilen kahve türüne göre gerekli malzemeleri ve maliyeti hesaplayan bir uygulamadır. Kullanıcı, kahve seçimini yapar ve makine, kullanıcının seçimine göre kahve hazırlar. Bu tür uygulamalar, temel programlama ve kullanıcı etkileşimi konularında pratik yapmak için idealdir. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve veri işleme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir kahve makinesi uygulaması oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek kahve hazırlama işlemlerini yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Kahve seçeneklerini ve malzemeleri tanımlama. Kullanıcıdan kahve seçimini alma. Seçilen kahveye göre gerekli malzemeleri kontrol etme ve kahveyi hazırlama. Sonucu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Fonksiyonsuz Çözüm Adım 1: Kahve Seçeneklerini ve Malzemeleri Tanımlama İlk adımda, kahve seçenekleri ve malzemeler tanımlanacaktır. # Kahve seçeneklerini ve malzemeleri tanımlama
kahveler = {
    "espresso": {"su": 50, "süt": 0, "kahve": 18, "fiyat": 1.5},
    "latte": {"su": 200, "süt": 150, "kahve": 24, "fiyat": 2.5},
    "cappuccino": {"su": 250, "süt": 100, "kahve": 24, "fiyat": 3.0}
}

stok = {"su": 1000, "süt": 500, "kahve": 100, "para": 0}

 Bu kod parçası, kahve seçeneklerini ve gerekli malzemeleri tanımlar. Ayrıca, stoktaki malzemeleri de tanımlar. Adım 2: Kullanıcıdan Kahve Seçimini Alma İkinci adımda, kullanıcıdan kahve seçimi alınacaktır. # Kullanıcıdan kahve seçimini alma
secim = input("Hangi kahveyi istersiniz? (espresso/latte/cappuccino): ").lower()

 Bu kod parçası, kullanıcıdan kahve seçimini alır. Adım 3: Seçilen Kahveye Göre Gerekli Malzemeleri Kontrol Etme ve Kahveyi Hazırlama Üçüncü adımda, seçilen kahveye göre gerekli malzemeler kontrol edilecek ve kahve hazırlanacaktır. # Seçilen kahveye göre gerekli malzemeleri kontrol etme ve kahveyi hazırlama
if secim in kahveler:
    yeterli_malzeme = True
    for malzeme in kahveler[secim]:
        if malzeme != "fiyat" and kahveler[secim][malzeme] > stok[malzeme]:
            print(f"Yeterli {malzeme} yok.")
            yeterli_malzeme = False
            break

    if yeterli_malzeme:
        for malzeme in kahveler[secim]:
            if malzeme != "fiyat":
                stok[malzeme] -= kahveler[secim][malzeme]
        stok["para"] += kahveler[secim]["fiyat"]
        print(f"{secim} hazır! Afiyet olsun.")
else:
    print("Geçersiz seçim.")

 Bu kod parçası, seçilen kahve için gerekli malzemeleri kontrol eder, yeterli malzeme varsa kahveyi hazırlar ve stokları günceller. Adım 4: Sonucu Ekrana Yazdırma Dördüncü adımda, sonuç ekrana yazdırılacaktır. # Sonucu ekrana yazdırma
print("Kalan stok:")
for malzeme, miktar in stok.items():
    print(f"{malzeme}: {miktar}")

 Bu kod parçası, güncellenen stokları ekrana yazdırır. Fonksiyonlarla Çözüm Adım 1: Kahve Seçeneklerini ve Malzemeleri Tanımlama Fonksiyonu İlk adımda, kahve seçenekleri ve malzemeler tanımlanacaktır. def kahve_secimleri_ve_stok_tanimla():
    """Kahve seçeneklerini ve stokları tanımlar."""
    kahveler = {
        "espresso": {"su": 50, "süt": 0, "kahve": 18, "fiyat": 1.5},
        "latte": {"su": 200, "süt": 150, "kahve": 24, "fiyat": 2.5},
        "cappuccino": {"su": 250, "süt": 100, "kahve": 24, "fiyat": 3.0}
    }

    stok = {"su": 1000, "süt": 500, "kahve": 100, "para": 0}
    return kahveler, stok

 Bu fonksiyon, kahve seçeneklerini ve stokları tanımlar ve döndürür. Adım 2: Kullanıcıdan Kahve Seçimini Alma Fonksiyonu İkinci adımda, kullanıcıdan kahve seçimi alınacaktır. def kullanici_secimi_al():
    """Kullanıcıdan kahve seçimini alır."""
    secim = input("Hangi kahveyi istersiniz? (espresso/latte/cappuccino): ").lower()
    return secim

 Bu fonksiyon, kullanıcıdan kahve seçimini alır ve döndürür. Adım 3: Seçilen Kahveye Göre Gerekli Malzemeleri Kontrol Etme ve Kahveyi Hazırlama Fonksiyonu Üçüncü adımda, seçilen kahveye göre gerekli malzemeler kontrol edilecek ve kahve hazırlanacaktır. def kahve_hazirla(kahveler, stok, secim):
    """Seçilen kahveye göre gerekli malzemeleri kontrol eder ve kahveyi hazırlar."""
    if secim in kahveler:
        yeterli_malzeme = True
        for malzeme in kahveler[secim]:
            if malzeme != "fiyat" and kahveler[secim][malzeme] > stok[malzeme]:
                print(f"Yeterli {malzeme} yok.")
                yeterli_malzeme = False
                break

        if yeterli_malzeme:
            for malzeme in kahveler[secim]:
                if malzeme != "fiyat":
                    stok[malzeme] -= kahveler[secim][malzeme]
            stok["para"] += kahveler[secim]["fiyat"]
            print(f"{secim} hazır! Afiyet olsun.")
        return yeterli_malzeme
    else:
        print("Geçersiz seçim.")
        return False

 Bu fonksiyon, seçilen kahve için gerekli malzemeleri kontrol eder, yeterli malzeme varsa kahveyi hazırlar ve stokları günceller. Adım 4: Sonucu Ekrana Yazdırma Fonksiyonu Dördüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. def sonucu_yazdir(stok):
    """Güncellenen stokları ekrana yazdırır."""
    print("Kalan stok:")
    for malzeme, miktar in stok.items():
        print(f"{malzeme}: {miktar}")

 Bu fonksiyon, güncellenen stokları ekrana yazdırır. Adım 5: Kahve Makinesi Uygulamasını Başlatma Fonksiyonu Bu fonksiyon, Coffee Machine uygulamasını başlatır ve uygulamanın akışını yönetir. def kahve_makinesi_baslat():
    """Coffee Machine uygulamasını başlatır."""
    kahveler, stok = kahve_secimleri_ve_stok_tanimla()
    secim = kullanici_secimi_al()
    kahve_hazirla(kahveler, stok, secim)
    sonucu_yazdir(stok)

# Uygulamayı başlatma
kahve_makinesi_baslat()

 Bu fonksiyon, Coffee Machine uygulamasını başlatır ve uygulamanın akışını yönetir. Kullanıcıdan gerekli verileri alır, kahve hazırlar ve güncellenen stokları ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, sözlükler (kahve seçenekleri, stoklar) ve stringler (kullanıcı girişi) kullanılmıştır. Koşullu İfadeler:  if-else yapıları, kullanıcıdan alınan kahve seçimini kontrol etmek ve doğru işlemi gerçekleştirmek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  for döngüsü, malzemeleri kontrol etmek ve güncellemek için kullanılmıştır.

Coffee Machine (Kahve Makinesi), kullanıcıların belirli bir tür kahve seçip, seçilen kahve türüne göre gerekli malzemeleri ve maliyeti hesap

Coffee Machine Programı

Caesar Cipher Nedir? Caesar Cipher (Sezar Şifreleme), antik Roma İmparatoru Julius Caesar tarafından kullanılan basit bir şifreleme yöntemidir. Bu yöntem, her harfin alfabedeki belirli bir sayıda kaydırılmasıyla oluşturulur. Örneğin, bir harfi üç pozisyon sağa kaydırarak şifreleyebilirsiniz: A -> D, B -> E, C -> F vb. Bu tür şifreleme, bilgi güvenliğini artırmak için kullanılır ve kriptografi dünyasında temel bir kavramdır. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, şifreleme ve veri işleme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir şifreleme uygulaması oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek şifreleme ve şifre çözme işlemlerini yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alma. Kullanıcıdan kaydırma miktarını ve metni alma. Şifreleme veya şifre çözme işlemini gerçekleştirme. Sonucu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Fonksiyonsuz Çözüm Adım 1: Kullanıcıdan Şifreleme veya Şifre Çözme İşlemi İçin Girdi Alma İlk adımda, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alınacaktır. # Kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alma
islem = input("Şifreleme (e) veya Şifre Çözme (d) işlemi seçin: ").lower()
kaydirma = int(input("Kaydırma miktarını girin: "))
metin = input("Metni girin: ")

 Bu kod parçası, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alır. Adım 2: Şifreleme veya Şifre Çözme İşlemini Gerçekleştirme İkinci adımda, kullanıcı tarafından seçilen işlem gerçekleştirilir. # Şifreleme veya şifre çözme işlemini gerçekleştirme
sonuc = ""
for harf in metin:
    if harf.isalpha():
        ascii_offset = 65 if harf.isupper() else 97
        if islem == 'e':
            yeni_harf = chr((ord(harf) - ascii_offset + kaydirma) % 26 + ascii_offset)
        elif islem == 'd':
            yeni_harf = chr((ord(harf) - ascii_offset - kaydirma) % 26 + ascii_offset)
        sonuc += yeni_harf
    else:
        sonuc += harf

 Bu kod parçası, şifreleme veya şifre çözme işlemini gerçekleştirir ve sonucu oluşturur. Adım 3: Sonucu Ekrana Yazdırma Üçüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. # Sonucu ekrana yazdırma
print("Sonuç:", sonuc)

 Bu kod parçası, hesaplanan sonucu ekrana yazdırır. Fonksiyonlarla Çözüm Adım 1: Kullanıcıdan Şifreleme veya Şifre Çözme İşlemi İçin Girdi Alma Fonksiyonu İlk adımda, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alınacaktır. def veri_al():
    """Kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alır."""
    islem = input("Şifreleme (e) veya Şifre Çözme (d) işlemi seçin: ").lower()
    kaydirma = int(input("Kaydırma miktarını girin: "))
    metin = input("Metni girin: ")
    return islem, kaydirma, metin

 Bu fonksiyon, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alır ve döndürür. Adım 2: Şifreleme veya Şifre Çözme İşlemini Gerçekleştirme Fonksiyonu İkinci adımda, kullanıcı tarafından seçilen işlem gerçekleştirilir. def sezar_sifrele(islem, kaydirma, metin):
    """Şifreleme veya şifre çözme işlemini gerçekleştirir."""
    sonuc = ""
    for harf in metin:
        if harf.isalpha():
            ascii_offset = 65 if harf.isupper() else 97
            if islem == 'e':
                yeni_harf = chr((ord(harf) - ascii_offset + kaydirma) % 26 + ascii_offset)
            elif islem == 'd':
                yeni_harf = chr((ord(harf) - ascii_offset - kaydirma) % 26 + ascii_offset)
            sonuc += yeni_harf
        else:
            sonuc += harf
    return sonuc

 Bu fonksiyon, şifreleme veya şifre çözme işlemini gerçekleştirir ve sonucu döndürür. Adım 3: Sonucu Ekrana Yazdırma Fonksiyonu Üçüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. def sonucu_yazdir(sonuc):
    """Hesaplanan sonucu ekrana yazdırır."""
    print("Sonuç:", sonuc)

 Bu fonksiyon, hesaplanan sonucu ekrana yazdırır. Adım 4: Şifreleme Uygulamasını Başlatma Fonksiyonu Bu fonksiyon, Caesar Cipher uygulamasını başlatır ve uygulamanın akışını yönetir. def sifreleme_uygulamasini_baslat():
    """Caesar Cipher uygulamasını başlatır."""
    islem, kaydirma, metin = veri_al()
    sonuc = sezar_sifrele(islem, kaydirma, metin)
    sonucu_yazdir(sonuc)

# Uygulamayı başlatma
sifreleme_uygulamasini_baslat()

 Bu fonksiyon, Caesar Cipher uygulamasını başlatır ve uygulamanın akışını yönetir. Kullanıcıdan gerekli verileri alır, şifreleme veya şifre çözme işlemini gerçekleştirir ve sonucu ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, stringler (kullanıcı girişi, metin) ve tam sayılar (kaydırma miktarı) kullanılmıştır. Koşullu İfadeler:  if-else yapıları, kullanıcıdan alınan işlemi belirlemek ve doğru işlemi gerçekleştirmek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  for döngüsü, metindeki her bir harfi işlemek için kullanılmıştır.

Caesar Cipher (Sezar Şifreleme), antik Roma İmparatoru Julius Caesar tarafından kullanılan basit bir şifreleme yöntemidir. Bu yöntem, her ha

Caesar Cipher

Currency Calculator Nedir? Currency Calculator (Döviz Hesaplayıcı), kullanıcıların bir para birimini diğerine dönüştürmelerini sağlayan bir uygulamadır. Kullanıcılar, dönüştürmek istedikleri miktarı ve hedef para birimini belirleyerek, güncel döviz kuru üzerinden dönüşüm işlemi gerçekleştirebilirler. Bu tür uygulamalar, döviz piyasalarını takip eden ve farklı para birimleri arasında işlem yapan kişiler için oldukça yararlıdır. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve veri işleme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir döviz hesaplayıcı uygulaması oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek döviz dönüşüm işlemlerini yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Döviz kurlarını tanımlama. Kullanıcıdan dönüştürmek istediği miktarı ve hedef para birimini alma. Döviz dönüşümünü gerçekleştirme ve sonucu hesaplama. Sonucu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Fonksiyonsuz Çözüm Adım 1: Döviz Kurlarını Tanımlama İlk adımda, döviz kurları tanımlanacaktır. # Döviz kurlarını tanımlama
doviz_kurlari = {
    "USD": 1.0,  # Referans olarak USD kullanılıyor
    "EUR": 0.85,
    "GBP": 0.75,
    "JPY": 110.0,
    "TRY": 8.5
}

 Bu kod parçası, döviz kurlarını tanımlar. USD'yi referans olarak kullanır ve diğer para birimlerinin USD cinsinden değerini belirtir. Adım 2: Kullanıcıdan Dönüştürmek İstediği Miktarı ve Hedef Para Birimini Alma İkinci adımda, kullanıcıdan dönüştürmek istediği miktar ve hedef para birimi alınacaktır. # Kullanıcıdan dönüştürmek istediği miktarı ve hedef para birimini alma
miktar = float(input("Dönüştürmek istediğiniz miktarı girin: "))
hedef_birim = input("Hedef para birimini girin (USD, EUR, GBP, JPY, TRY): ").upper()

 Bu kod parçası, kullanıcıdan dönüştürmek istediği miktarı ve hedef para birimini alır. Adım 3: Döviz Dönüşümünü Gerçekleştirme ve Sonucu Hesaplama Üçüncü adımda, döviz dönüşümü gerçekleştirilir ve sonucu hesaplanır. # Döviz dönüşümünü gerçekleştirme ve sonucu hesaplama
if hedef_birim in doviz_kurlari:
    sonuc = miktar * doviz_kurlari[hedef_birim]
else:
    sonuc = "Geçersiz para birimi"

 Bu kod parçası, döviz dönüşümünü gerçekleştirir ve sonucu hesaplar. Hedef para birimi geçerli değilse, kullanıcıya hata mesajı döndürür. Adım 4: Sonucu Ekrana Yazdırma Dördüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. # Sonucu ekrana yazdırma
print("Sonuç:", sonuc)

 Bu kod parçası, hesaplanan sonucu ekrana yazdırır. Fonksiyonlarla Çözüm Adım 1: Döviz Kurlarını Tanımlama Fonksiyonu İlk adımda, döviz kurları tanımlanacaktır. def doviz_kurlarini_tanimla():
    """Döviz kurlarını tanımlar."""
    return {
        "USD": 1.0,  # Referans olarak USD kullanılıyor
        "EUR": 0.85,
        "GBP": 0.75,
        "JPY": 110.0,
        "TRY": 8.5
    }

 Bu fonksiyon, döviz kurlarını tanımlar ve döndürür. Adım 2: Kullanıcıdan Dönüştürmek İstediği Miktarı ve Hedef Para Birimini Alma Fonksiyonu İkinci adımda, kullanıcıdan dönüştürmek istediği miktar ve hedef para birimi alınacaktır. def veri_al():
    """Kullanıcıdan dönüştürmek istediği miktarı ve hedef para birimini alır."""
    miktar = float(input("Dönüştürmek istediğiniz miktarı girin: "))
    hedef_birim = input("Hedef para birimini girin (USD, EUR, GBP, JPY, TRY): ").upper()
    return miktar, hedef_birim

 Bu fonksiyon, kullanıcıdan dönüştürmek istediği miktarı ve hedef para birimini alır ve döndürür. Adım 3: Döviz Dönüşümünü Gerçekleştirme ve Sonucu Hesaplama Fonksiyonu Üçüncü adımda, döviz dönüşümü gerçekleştirilir ve sonucu hesaplanır. def doviz_donusumu(doviz_kurlari, miktar, hedef_birim):
    """Döviz dönüşümünü gerçekleştirir ve sonucu hesaplar."""
    if hedef_birim in doviz_kurlari:
        return miktar * doviz_kurlari[hedef_birim]
    else:
        return "Geçersiz para birimi"

 Bu fonksiyon, döviz dönüşümünü gerçekleştirir ve sonucu hesaplar. Adım 4: Sonucu Ekrana Yazdırma Fonksiyonu Dördüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. def sonucu_yazdir(sonuc):
    """Hesaplanan sonucu ekrana yazdırır."""
    print("Sonuç:", sonuc)

 Bu fonksiyon, hesaplanan sonucu ekrana yazdırır. Adım 5: Döviz Hesaplayıcı Uygulamasını Başlatma Fonksiyonu Bu fonksiyon, Currency Calculator uygulamasını başlatır ve uygulamanın akışını yönetir. def hesap_makinesi_baslat():
    """Currency Calculator uygulamasını başlatır."""
    doviz_kurlari = doviz_kurlarini_tanimla()
    miktar, hedef_birim = veri_al()
    sonuc = doviz_donusumu(doviz_kurlari, miktar, hedef_birim)
    sonucu_yazdir(sonuc)

# Uygulamayı başlatma
hesap_makinesi_baslat()

 Bu fonksiyon, Currency Calculator uygulamasını başlatır ve uygulamanın akışını yönetir. Kullanıcıdan gerekli verileri alır, döviz dönüşümünü gerçekleştirir ve sonucu ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, sayılar (float, int) ve stringler (kullanıcı girişi) kullanılmıştır. Koşullu İfadeler:  if-else yapıları, döviz dönüşümünü gerçekleştirmek ve doğru işlemi belirlemek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Sözlükler:  Döviz kurları sözlük şeklinde tutulmuştur.

Currency Calculator Nedir? Currency Calculator (Döviz Hesaplayıcı), kullanıcıların bir para birimini diğerine dönüştürmelerini sağlayan...

Currency Calculator

Advanced Calculator Nedir? Advanced Calculator (Gelişmiş Hesap Makinesi), kullanıcılara çeşitli matematiksel işlemleri gerçekleştirme imkanı veren bir uygulamadır. Temel aritmetik işlemlerinin yanı sıra, karekök, üs alma ve trigonometri gibi daha gelişmiş işlemleri de destekler. Bu tür uygulamalar, hesaplama yeteneklerini genişletmek ve matematiksel becerileri geliştirmek için kullanılır. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve matematiksel hesaplama konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir hesap makinesi uygulaması oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek hesaplama işlemlerini yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Kullanıcıdan işlem türünü ve gerekli verileri alma. İşlemi gerçekleştirme ve sonucu hesaplama. Sonucu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Fonksiyonsuz Çözüm Adım 1: Kullanıcıdan İşlem Türünü ve Gerekli Verileri Alma İlk adımda, kullanıcıdan yapılacak işlemi ve gerekli verileri alınacaktır. # Kullanıcıdan işlem türünü ve gerekli verileri alma
print("İşlem türünü seçin:")
print("1. Toplama")
print("2. Çıkarma")
print("3. Çarpma")
print("4. Bölme")
print("5. Karekök")
print("6. Üs Alma")
print("7. Sinüs")
print("8. Kosinüs")
print("9. Tanjant")

islem_turu = int(input("İşlem türünü girin (1-9): "))

if islem_turu in [1, 2, 3, 4, 6]:
    sayi1 = float(input("Birinci sayıyı girin: "))
    sayi2 = float(input("İkinci sayıyı girin: "))
elif islem_turu == 5:
    sayi1 = float(input("Sayıyı girin: "))
elif islem_turu in [7, 8, 9]:
    import math
    derece = float(input("Dereceyi girin: "))
    radyan = math.radians(derece)

 Bu kod parçası, kullanıcıdan yapılacak işlemi ve gerekli verileri alır. Adım 2: İşlemi Gerçekleştirme ve Sonucu Hesaplama İkinci adımda, kullanıcı tarafından seçilen işlem gerçekleştirilir ve sonucu hesaplanır. # İşlemi gerçekleştirme ve sonucu hesaplama
if islem_turu == 1:
    sonuc = sayi1 + sayi2
elif islem_turu == 2:
    sonuc = sayi1 - sayi2
elif islem_turu == 3:
    sonuc = sayi1 * sayi2
elif islem_turu == 4:
    if sayi2 != 0:
        sonuc = sayi1 / sayi2
    else:
        sonuc = "Tanımsız (0'a bölme)"
elif islem_turu == 5:
    sonuc = math.sqrt(sayi1)
elif islem_turu == 6:
    sonuc = sayi1 ** sayi2
elif islem_turu == 7:
    sonuc = math.sin(radyan)
elif islem_turu == 8:
    sonuc = math.cos(radyan)
elif islem_turu == 9:
    sonuc = math.tan(radyan)

 Bu kod parçası, kullanıcı tarafından seçilen işlemi gerçekleştirir ve sonucu hesaplar. Adım 3: Sonucu Ekrana Yazdırma Üçüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. # Sonucu ekrana yazdırma
print("Sonuç:", sonuc)

 Bu kod parçası, hesaplanan sonucu ekrana yazdırır. Fonksiyonlarla Çözüm Adım 1: Kullanıcıdan İşlem Türünü ve Gerekli Verileri Alma Fonksiyonu İlk adımda, kullanıcıdan yapılacak işlemi ve gerekli verileri alınacaktır. def veri_al(islem_turu):
    """Kullanıcıdan gerekli verileri alır."""
    if islem_turu in [1, 2, 3, 4, 6]:
        sayi1 = float(input("Birinci sayıyı girin: "))
        sayi2 = float(input("İkinci sayıyı girin: "))
        return sayi1, sayi2
    elif islem_turu == 5:
        sayi1 = float(input("Sayıyı girin: "))
        return sayi1, None
    elif islem_turu in [7, 8, 9]:
        import math
        derece = float(input("Dereceyi girin: "))
        radyan = math.radians(derece)
        return radyan, None

 Bu fonksiyon, kullanıcıdan gerekli verileri alır ve döndürür. Adım 2: İşlemi Gerçekleştirme ve Sonucu Hesaplama Fonksiyonu İkinci adımda, kullanıcı tarafından seçilen işlem gerçekleştirilir ve sonucu hesaplanır. def hesapla(islem_turu, sayi1, sayi2=None):
    """İşlemi gerçekleştirir ve sonucu hesaplar."""
    import math
    if islem_turu == 1:
        return sayi1 + sayi2
    elif islem_turu == 2:
        return sayi1 - sayi2
    elif islem_turu == 3:
        return sayi1 * sayi2
    elif islem_turu == 4:
        if sayi2 != 0:
            return sayi1 / sayi2
        else:
            return "Tanımsız (0'a bölme)"
    elif islem_turu == 5:
        return math.sqrt(sayi1)
    elif islem_turu == 6:
        return sayi1 ** sayi2
    elif islem_turu == 7:
        return math.sin(sayi1)
    elif islem_turu == 8:
        return math.cos(sayi1)
    elif islem_turu == 9:
        return math.tan(sayi1)

 Bu fonksiyon, kullanıcı tarafından seçilen işlemi gerçekleştirir ve sonucu hesaplar. Adım 3: Sonucu Ekrana Yazdırma Fonksiyonu Üçüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır. def sonucu_yazdir(sonuc):
    """Hesaplanan sonucu ekrana yazdırır."""
    print("Sonuç:", sonuc)

 Bu fonksiyon, hesaplanan sonucu ekrana yazdırır. Adım 4: Hesap Makinesi Uygulamasını Başlatma Fonksiyonu Bu fonksiyon, Advanced Calculator uygulamasını başlatır ve uygulamanın akışını yönetir. def hesap_makinesi_baslat():
    """Advanced Calculator uygulamasını başlatır."""
    print("İşlem türünü seçin:")
    print("1. Toplama")
    print("2. Çıkarma")
    print("3. Çarpma")
    print("4. Bölme")
    print("5. Karekök")
    print("6. Üs Alma")
    print("7. Sinüs")
    print("8. Kosinüs")
    print("9. Tanjant")

    islem_turu = int(input("İşlem türünü girin (1-9): "))
    sayi1, sayi2 = veri_al(islem_turu)
    sonuc = hesapla(islem_turu, sayi1, sayi2)
    sonucu_yazdir(sonuc)

# Uygulamayı başlatma
hesap_makinesi_baslat()

 Bu fonksiyon, Advanced Calculator uygulamasını başlatır ve uygulamanın akışını yönetir. Kullanıcıdan işlem türünü ve gerekli verileri alır, işlemi gerçekleştirir ve sonucu ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, sayılar (float, int) ve stringler (kullanıcı girişi) kullanılmıştır. Koşullu İfadeler:  if-else yapıları, kullanıcıdan alınan işlemi belirlemek ve doğru işlemi gerçekleştirmek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Matematiksel Hesaplamalar:  math modülü kullanılarak karekök, üs alma ve trigonometri işlemleri gerçekleştirilmiştir.

Advanced Calculator (Gelişmiş Hesap Makinesi), kullanıcılara çeşitli matematiksel işlemleri gerçekleştirme imkanı veren bir uygulamadır. Tem

Advanced Calculator

Secret Auction Nedir? Secret Auction (Gizli Müzayede), bir grup katılımcının gizli tekliflerde bulunduğu bir açık artırma oyunudur. Katılımcılar tekliflerini sunar ve en yüksek teklifi veren kazanır. Bu oyun, tekliflerin gizli tutulması nedeniyle stratejik düşünmeyi teşvik eder ve genellikle eğlence amaçlı düzenlenir. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve veri işleme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir gizli müzayede uygulaması oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek müzayede akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Katılımcılardan teklifleri alma. En yüksek teklifi belirleme. Kazananı ve teklifini ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Fonksiyonsuz Çözüm Adım 1: Katılımcılardan Teklifleri Alma İlk adımda, katılımcılardan teklifleri alınacaktır. # Katılımcılardan teklifleri alma
teklifler = {}
devam = True

while devam:
    isim = input("İsminizi girin: ")
    teklif = int(input("Teklifinizi girin: "))
    teklifler[isim] = teklif
    devam_mi = input("Başka teklif var mı? (evet/hayır): ").lower()
    if devam_mi == 'hayır':
        devam = False

 Bu kod parçası, kullanıcıdan isim ve teklif alır ve teklifleri teklifler sözlüğüne ekler. Kullanıcı, başka teklif olup olmadığını belirterek devam edip etmeyeceğine karar verir. Adım 2: En Yüksek Teklifi Belirleme İkinci adımda, en yüksek teklifi veren belirlenir. # En yüksek teklifi belirleme
en_yuksek_teklif = 0
kazanan = ""

for isim, teklif in teklifler.items():
    if teklif > en_yuksek_teklif:
        en_yuksek_teklif = teklif
        kazanan = isim

 Bu kod parçası, en yüksek teklifi ve bu teklifi veren katılımcıyı belirler. Adım 3: Kazananı ve Teklifini Ekrana Yazdırma Üçüncü adımda, kazanan ve teklifi ekrana yazdırılacaktır. # Kazananı ve teklifini ekrana yazdırma
print(f"Kazanan: {kazanan}, Teklif: {en_yuksek_teklif}")

 Bu kod parçası, kazananın ismini ve teklifini ekrana yazdırır. Fonksiyonlarla Çözüm Adım 1: Katılımcılardan Teklifleri Alma Fonksiyonu İlk adımda, katılımcılardan teklifleri alınacaktır. def teklifleri_al():
    """Katılımcılardan teklifleri alır."""
    teklifler = {}
    devam = True

    while devam:
        isim = input("İsminizi girin: ")
        teklif = int(input("Teklifinizi girin: "))
        teklifler[isim] = teklif
        devam_mi = input("Başka teklif var mı? (evet/hayır): ").lower()
        if devam_mi == 'hayır':
            devam = False

    return teklifler

 Bu fonksiyon, katılımcılardan isim ve teklif alır ve teklifleri teklifler sözlüğüne ekleyerek döndürür. Adım 2: En Yüksek Teklifi Belirleme Fonksiyonu İkinci adımda, en yüksek teklifi veren belirlenir. def en_yuksek_teklifi_belirle(teklifler):
    """En yüksek teklifi belirler."""
    en_yuksek_teklif = 0
    kazanan = ""

    for isim, teklif in teklifler.items():
        if teklif > en_yuksek_teklif:
            en_yuksek_teklif = teklif
            kazanan = isim

    return kazanan, en_yuksek_teklif

 Bu fonksiyon, en yüksek teklifi ve bu teklifi veren katılımcıyı belirler ve döndürür. Adım 3: Kazananı ve Teklifini Ekrana Yazdırma Fonksiyonu Üçüncü adımda, kazanan ve teklifi ekrana yazdırılacaktır. def sonucu_yazdir(kazanan, en_yuksek_teklif):
    """Kazananı ve teklifini ekrana yazdırır."""
    print(f"Kazanan: {kazanan}, Teklif: {en_yuksek_teklif}")

 Bu fonksiyon, kazananın ismini ve teklifini ekrana yazdırır. Adım 4: Oyunu Başlatma Fonksiyonu Bu fonksiyon, Secret Auction oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat():
    """Secret Auction oyununu başlatır."""
    teklifler = teklifleri_al()
    kazanan, en_yuksek_teklif = en_yuksek_teklifi_belirle(teklifler)
    sonucu_yazdir(kazanan, en_yuksek_teklif)

# Oyunu başlatma
oyunu_baslat()

 Bu fonksiyon, Secret Auction oyununu başlatır ve oyunun akışını yönetir. Kullanıcı tekliflerini alır, en yüksek teklifi belirler ve sonucu ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, sözlükler (teklifler) ve stringler (katılımcı isimleri, teklif) kullanılmıştır. Sözlükler:  Teklifler sözlük şeklinde tutulmuştur. Koşullu İfadeler:  if-else yapıları, en yüksek teklifi belirlemek ve kullanıcıdan başka teklif olup olmadığını sormak için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  while döngüsü, kullanıcı tekliflerini almak için kullanılmıştır.

Secret Auction (Gizli Müzayede), bir grup katılımcının gizli tekliflerde bulunduğu bir açık artırma oyunudur. Katılımcılar tekliflerini suna

Secret Auction

Quiz App Nedir? Quiz App, kullanıcılara bir dizi soru sorarak bilgi düzeylerini test eden bir uygulamadır. Kullanıcı, her soruya cevap verdikten sonra doğru veya yanlış olduğunu öğrenir ve sonunda toplam puanı hesaplanır. Bu tür uygulamalar eğitimde sıkça kullanılır ve bilgi ölçme ve değerlendirme amacı taşır. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve veri işleme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir quiz uygulaması oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek quiz akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Soruları ve cevapları tanımlama. Kullanıcıdan cevap alma. Kullanıcının cevabını kontrol etme ve geri bildirim sağlama. Kullanıcının puanını hesaplama ve ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Fonksiyonsuz Çözüm Adım 1: Soruları ve Cevapları Tanımlama İlk adım olarak, sorular ve cevaplar tanımlanacaktır. # Soruları ve cevapları tanımlama
sorular = [
    {"soru": "Python'un yaratıcısı kimdir?", "cevap": "Guido van Rossum"},
    {"soru": "Python'da liste oluşturmak için hangi semboller kullanılır?", "cevap": "[]"},
    {"soru": "Python hangi yıl ortaya çıkmıştır?", "cevap": "1991"}
]

 Bu kod parçası, quizde kullanılacak olan soruları ve cevapları tanımlar. Adım 2: Kullanıcıdan Cevap Alma İkinci adımda, kullanıcıdan bir cevap alınacaktır. # Kullanıcıdan cevap alma
kullanici_cevaplari = []
for soru in sorular:
    cevap = input(soru["soru"] + " ")
    kullanici_cevaplari.append(cevap)

 Bu kod parçası, her bir soru için kullanıcıdan cevap alır ve kullanici_cevaplari listesine ekler. Adım 3: Kullanıcının Cevabını Kontrol Etme ve Geri Bildirim Sağlama Üçüncü adımda, kullanıcının cevabı kontrol edilecek ve geri bildirim sağlanacaktır. # Kullanıcının cevabını kontrol etme ve geri bildirim sağlama
dogru_cevap_sayisi = 0
for i in range(len(sorular)):
    if kullanici_cevaplari[i].lower() == sorular[i]["cevap"].lower():
        print(f"Soru {i + 1}: Doğru!")
        dogru_cevap_sayisi += 1
    else:
        print(f"Soru {i + 1}: Yanlış! Doğru cevap: {sorular[i]['cevap']}")

 Bu kod parçası, kullanıcının cevaplarını kontrol eder ve her bir soru için doğru veya yanlış olduğunu ekrana yazdırır. Adım 4: Kullanıcının Puanını Hesaplama ve Ekrana Yazdırma Dördüncü adımda, kullanıcının toplam puanı hesaplanacak ve ekrana yazdırılacaktır. # Kullanıcının puanını hesaplama ve ekrana yazdırma
toplam_soru_sayisi = len(sorular)
print(f"Toplam doğru cevap sayınız: {dogru_cevap_sayisi}/{toplam_soru_sayisi}")

 Bu kod parçası, kullanıcının toplam doğru cevap sayısını hesaplar ve ekrana yazdırır. Fonksiyonlarla Çözüm Adım 1: Soruları ve Cevapları Tanımlama Fonksiyonu İlk adım olarak, sorular ve cevaplar tanımlanacaktır. def sorulari_tanimla():
    """Soruları ve cevapları tanımlar."""
    return [
        {"soru": "Python'un yaratıcısı kimdir?", "cevap": "Guido van Rossum"},
        {"soru": "Python'da liste oluşturmak için hangi semboller kullanılır?", "cevap": "[]"},
        {"soru": "Python hangi yıl ortaya çıkmıştır?", "cevap": "1991"}
    ]

 Bu fonksiyon, quizde kullanılacak olan soruları ve cevapları tanımlar ve döndürür. Adım 2: Kullanıcıdan Cevap Alma Fonksiyonu İkinci adımda, kullanıcıdan bir cevap alınacaktır. def cevaplari_al(sorular):
    """Kullanıcıdan cevapları alır."""
    kullanici_cevaplari = []
    for soru in sorular:
        cevap = input(soru["soru"] + " ")
        kullanici_cevaplari.append(cevap)
    return kullanici_cevaplari

 Bu fonksiyon, her bir soru için kullanıcıdan cevap alır ve kullanici_cevaplari listesine ekleyerek döndürür. Adım 3: Kullanıcının Cevabını Kontrol Etme ve Geri Bildirim Sağlama Fonksiyonu Üçüncü adımda, kullanıcının cevabı kontrol edilecek ve geri bildirim sağlanacaktır. def cevaplari_kontrol_et(sorular, kullanici_cevaplari):
    """Kullanıcının cevaplarını kontrol eder ve geri bildirim sağlar."""
    dogru_cevap_sayisi = 0
    for i in range(len(sorular)):
        if kullanici_cevaplari[i].lower() == sorular[i]["cevap"].lower():
            print(f"Soru {i + 1}: Doğru!")
            dogru_cevap_sayisi += 1
        else:
            print(f"Soru {i + 1}: Yanlış! Doğru cevap: {sorular[i]['cevap']}")
    return dogru_cevap_sayisi

 Bu fonksiyon, kullanıcının cevaplarını kontrol eder ve her bir soru için doğru veya yanlış olduğunu ekrana yazdırır. Ayrıca, toplam doğru cevap sayısını döndürür. Adım 4: Kullanıcının Puanını Hesaplama ve Ekrana Yazdırma Fonksiyonu Dördüncü adımda, kullanıcının toplam puanı hesaplanacak ve ekrana yazdırılacaktır. def puani_hesapla_ve_yazdir(dogru_cevap_sayisi, toplam_soru_sayisi):
    """Kullanıcının puanını hesaplar ve ekrana yazdırır."""
    print(f"Toplam doğru cevap sayınız: {dogru_cevap_sayisi}/{toplam_soru_sayisi}")

 Bu fonksiyon, kullanıcının toplam doğru cevap sayısını hesaplar ve ekrana yazdırır. Adım 5: Oyunu Başlatma Fonksiyonu Bu fonksiyon, Quiz App oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat():
    """Quiz App oyununu başlatır."""
    sorular = sorulari_tanimla()
    kullanici_cevaplari = cevaplari_al(sorular)
    dogru_cevap_sayisi = cevaplari_kontrol_et(sorular, kullanici_cevaplari)
    toplam_soru_sayisi = len(sorular)
    puani_hesapla_ve_yazdir(dogru_cevap_sayisi, toplam_soru_sayisi)

# Oyunu başlatma
oyunu_baslat()

 Bu fonksiyon, Quiz App oyununu başlatır ve oyunun akışını yönetir. Kullanıcı cevaplarını alır, cevapları kontrol eder ve kullanıcının puanını hesaplar ve ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, listeler (sorular, cevaplar) ve stringler (kullanıcı cevapları) kullanılmıştır. Listeler:  Sorular ve cevaplar listeler şeklinde tutulmuştur. Koşullu İfadeler:  if-else yapıları, kullanıcı cevaplarını kontrol etmek ve geri bildirim sağlamak için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  for döngüsü, soruların üzerinden geçmek ve kullanıcı cevaplarını almak için kullanılmıştır.

Quiz App, kullanıcılara bir dizi soru sorarak bilgi düzeylerini test eden bir uygulamadır. Kullanıcı, her soruya cevap verdikten sonra doğru

Quiz Application

Number Guessing Game Nedir? Number Guessing Game (Sayı Tahmin Oyunu), bir oyuncunun belirli bir aralıkta rastgele seçilen bir sayıyı tahmin etmeye çalıştığı basit bir oyundur. Oyuncuya her tahminden sonra, tahminin doğru olup olmadığı, seçilen sayıdan büyük mü yoksa küçük mü olduğu söylenir. Oyuncu doğru sayıyı bulana kadar tahmin etmeye devam eder. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kullanıcı etkileşimi ve rastgele sayı üretimi konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir oyun simülasyonu oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek oyun akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Rastgele bir sayı seçme. Kullanıcıdan tahmin alma. Kullanıcının tahminini kontrol etme ve geri bildirim sağlama. Kullanıcı doğru tahmini yapana kadar oyunu devam ettirme. Oyunun sonucunu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Adım 1: Rastgele Bir Sayı Seçme İlk adım olarak, belirli bir aralıkta rastgele bir sayı seçilecektir. import random

# Rastgele bir sayı seçme
rastgele_sayi = random.randint(1, 100)

 Bu kod parçası, 1 ile 100 arasında rastgele bir sayı seçer ve rastgele_sayi değişkenine atar. random.randint() fonksiyonu, belirtilen aralıktaki rastgele bir tam sayı döndürür. Adım 2: Kullanıcıdan Tahmin Alma İkinci adımda, kullanıcıdan bir tahmin alınacaktır. # Kullanıcıdan tahmin alma
def tahmin_al():
    """Kullanıcıdan bir tahmin alır."""
    tahmin = int(input("1 ile 100 arasında bir sayı tahmin edin: "))
    return tahmin

 Bu fonksiyon, kullanıcıdan bir tahmin alır ve döndürür. Adım 3: Kullanıcının Tahminini Kontrol Etme ve Geri Bildirim Sağlama Üçüncü adımda, kullanıcının tahmini kontrol edilecek ve geri bildirim sağlanacaktır. # Kullanıcının tahminini kontrol etme ve geri bildirim sağlama
def tahmini_kontrol_et(tahmin, rastgele_sayi):
    """Kullanıcının tahminini kontrol eder ve geri bildirim sağlar."""
    if tahmin < rastgele_sayi:
        print("Daha büyük bir sayı tahmin edin.")
        return False
    elif tahmin > rastgele_sayi:
        print("Daha küçük bir sayı tahmin edin.")
        return False
    else:
        print("Tebrikler! Doğru tahmin.")
        return True

 Bu fonksiyon, kullanıcının tahminini kontrol eder ve geri bildirim sağlar. Tahmin doğruysa True, değilse False döndürür. Adım 4: Kullanıcı Doğru Tahmini Yapana Kadar Oyunu Devam Ettirme Dördüncü adımda, kullanıcı doğru tahmini yapana kadar oyun devam ettirilecektir. # Kullanıcı doğru tahmini yapana kadar oyunu devam ettirme
def oyun_devam_et(rastgele_sayi):
    """Kullanıcı doğru tahmini yapana kadar oyunu devam ettirir."""
    dogru_tahmin = False
    while not dogru_tahmin:
        tahmin = tahmin_al()
        dogru_tahmin = tahmini_kontrol_et(tahmin, rastgele_sayi)

 Bu fonksiyon, kullanıcı doğru tahmini yapana kadar oyunu devam ettirir. Adım 5: Oyunun Sonucunu Ekrana Yazdırma Beşinci adımda, oyunun sonucu ekrana yazdırılacaktır. # Oyunun sonucunu ekrana yazdırma
def oyun_sonu():
    """Oyunun sonucunu ekrana yazdırır."""
    print("Oyun sona erdi. Tekrar oynamak ister misiniz? (e/h)")
    karar = input().lower()
    return karar == 'e'

 Bu fonksiyon, oyunun sonucunu ekrana yazdırır ve kullanıcıya oyunu tekrar oynamak isteyip istemediğini sorar. Adım 6: Fonksiyonlarla Çözüm Oyunu Başlatma Fonksiyonu Bu fonksiyon, Number Guessing Game oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat():
    """Number Guessing Game oyununu başlatır."""
    while True:
        rastgele_sayi = random.randint(1, 100)
        print("1 ile 100 arasında bir sayı seçildi.")
        oyun_devam_et(rastgele_sayi)
        if not oyun_sonu():
            break

# Oyunu başlatma
oyunu_baslat()

 Bu fonksiyon, Number Guessing Game oyununu başlatır ve oyunun akışını yönetir. Kullanıcı tahminlerini alır, tahminleri kontrol eder ve oyunun sonucunu belirler. Kullanılan Konular Veri Tipleri:  Bu projede, tam sayılar (rastgele sayı, kullanıcı tahmini) ve stringler (kullanıcı girişi) kullanılmıştır. Koşullu İfadeler:  if-else yapıları, kullanıcının tahminini kontrol etmek ve geri bildirim sağlamak için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  while döngüsü, kullanıcı doğru tahmini yapana kadar oyunu devam ettirmek için kullanılmıştır. Random Modülü:  random.randint() fonksiyonu, belirtilen aralıktaki rastgele bir tam sayı seçmek için kullanılmıştır.

Number Guessing Game (Sayı Tahmin Oyunu), bir oyuncunun belirli bir aralıkta rastgele seçilen bir sayıyı tahmin etmeye çalıştığı basit bir o

Number Guessing Game

Tic-Tac-Toe Nedir? Tic-Tac-Toe, iki oyuncu arasında oynanan basit bir masa oyunudur. Oyuncular sırayla 3x3'lük bir tahtaya "X" veya "O" yerleştirirler. Amaç, yatay, dikey veya çapraz olarak üçlü bir sıra oluşturmaktır. Eğer tüm kareler dolduğunda hiçbir oyuncu üçlü sıra oluşturamamışsa, oyun berabere biter. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, oyun simülasyonları ve kullanıcı etkileşimi konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir oyun simülasyonu oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek oyun akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Tahta oluşturma ve başlangıç durumunu ayarlama. Tahtayı ekrana yazdırma. Kullanıcıdan hamle alma ve hamlenin geçerliliğini kontrol etme. Hamleyi tahtaya yerleştirme. Oyunun kazanıp kazanılmadığını veya berabere olup olmadığını kontrol etme. Oyunun sonucunu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Adım 1: Tahta Oluşturma ve Başlangıç Durumunu Ayarlama İlk adım olarak, oyun tahtası oluşturulacak ve başlangıç durumu ayarlanacaktır. # Tahta oluşturma ve başlangıç durumu
tahta = [[" " for _ in range(3)] for _ in range(3)]

 Bu kod parçası, 3x3'lük bir oyun tahtası oluşturur ve tüm kareleri boş olarak ayarlar. Adım 2: Tahtayı Ekrana Yazdırma İkinci adımda, tahtanın mevcut durumu ekrana yazdırılacaktır. # Tahtayı ekrana yazdırma
def tahta_yazdir(tahta):
    """Tahtayı ekrana yazdırır."""
    for satir in tahta:
        print("|".join(satir))
        print("-" * 5)

 Bu fonksiyon, tahtanın mevcut durumunu ekrana yazdırır. Adım 3: Kullanıcıdan Hamle Alma ve Hamlenin Geçerliliğini Kontrol Etme Üçüncü adımda, kullanıcıdan bir hamle alınacak ve hamlenin geçerliliği kontrol edilecektir. # Kullanıcıdan hamle alma ve hamlenin geçerliliğini kontrol etme
def hamle_al(oyuncu):
    """Kullanıcıdan geçerli bir hamle alır."""
    while True:
        hamle = input(f"Oyuncu {oyuncu}, hamlenizi girin (satır ve sütun arasında boşluk olacak şekilde): ").split()
        if len(hamle) != 2:
            print("Geçersiz giriş. Lütfen satır ve sütun arasında boşluk olacak şekilde girin.")
            continue
        satir, sutun = hamle
        if not (satir.isdigit() and sutun.isdigit()):
            print("Geçersiz giriş. Lütfen sayı girin.")
            continue
        satir, sutun = int(satir), int(sutun)
        if satir < 0 or satir > 2 or sutun < 0 or sutun > 2:
            print("Geçersiz giriş. Lütfen 0 ile 2 arasında bir sayı girin.")
            continue
        if tahta[satir][sutun] != " ":
            print("Bu kare zaten dolu. Başka bir kare seçin.")
            continue
        return satir, sutun

 Bu fonksiyon, kullanıcıdan geçerli bir hamle alır ve döndürür. Adım 4: Hamleyi Tahtaya Yerleştirme Dördüncü adımda, kullanıcı hamlesi tahtaya yerleştirilecektir. # Hamleyi tahtaya yerleştirme
def hamle_yerles(taha, satir, sutun, oyuncu):
    """Hamleyi tahtaya yerleştirir."""
    tahta[satir][sutun] = oyuncu

 Bu fonksiyon, kullanıcı hamlesini tahtaya yerleştirir. Adım 5: Oyunun Kazanıp Kazanılmadığını veya Berabere Olup Olmadığını Kontrol Etme Beşinci adımda, oyunun kazanıp kazanılmadığı veya berabere olup olmadığı kontrol edilecektir. # Oyunun kazanıp kazanılmadığını veya berabere olup olmadığını kontrol etme
def kazanan_kontrol(tahta, oyuncu):
    """Oyunun kazanıp kazanılmadığını veya berabere olup olmadığını kontrol eder."""
    # Satırları kontrol etme
    for satir in tahta:
        if all([h == oyuncu for h in satir]):
            return True

    # Sütunları kontrol etme
    for sutun in range(3):
        if all([tahta[satir][sutun] == oyuncu for satir in range(3)]):
            return True

    # Çaprazları kontrol etme
    if all([tahta[i][i] == oyuncu for i in range(3)]) or all([tahta[i][2 - i] == oyuncu for i in range(3)]):
        return True

    return False

def berabere_kontrol(tahta):
    """Oyunun berabere olup olmadığını kontrol eder."""
    for satir in tahta:
        if " " in satir:
            return False
    return True

 Bu fonksiyonlar, oyunun kazanıp kazanılmadığını veya berabere olup olmadığını kontrol eder. Adım 6: Oyunun Sonucunu Ekrana Yazdırma Altıncı adımda, oyunun sonucu ekrana yazdırılacaktır. # Oyunun sonucunu ekrana yazdırma
def oyun_sonu(tahta, oyuncu):
    """Oyunun sonucunu ekrana yazdırır."""
    if kazanan_kontrol(tahta, oyuncu):
        print(f"Oyuncu {oyuncu} kazandı!")
        return True
    if berabere_kontrol(tahta):
        print("Oyun berabere!")
        return True
    return False

 Bu fonksiyon, oyunun sonucunu ekrana yazdırır. Adım 7: Fonksiyonlarla Çözüm Oyunu Başlatma Fonksiyonu Bu fonksiyon, Tic-Tac-Toe oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat():
    """Tic-Tac-Toe oyununu başlatır."""
    tahta = [[" " for _ in range(3)] for _ in range(3)]
    oyuncu = "X"

    while True:
        tahta_yazdir(tahta)
        satir, sutun = hamle_al(oyuncu)
        hamle_yerles(tahta, satir, sutun, oyuncu)

        if oyun_sonu(tahta, oyuncu):
            tahta_yazdir(tahta)
            break

        oyuncu = "O" if oyuncu == "X" else "X"

# Oyunu başlatma
oyunu_baslat()

 Bu fonksiyon, Tic-Tac-Toe oyununu başlatır ve oyunun akışını yönetir. Oyuncu hamlelerini alır, hamleleri tahtaya yerleştirir ve oyunun sonucunu kontrol eder. Kullanılan Konular Veri Tipleri:  Bu projede, listeler (tahta) ve stringler (oyuncu hamlesi) kullanılmıştır. Listeler:  Oyun tahtası ve hamleler listeler şeklinde tutulmuştur. Koşullu İfadeler:  if-else yapıları, kullanıcı hamlelerini kontrol etmek ve oyunun sonucunu belirlemek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  while döngüleri, oyunun akışını yönetmek ve kullanıcı hamlelerini almak için kullanılmıştır.

Tic-Tac-Toe, iki oyuncu arasında oynanan basit bir masa oyunudur. Oyuncular sırayla 3x3'lük bir tahtaya "X" veya "O" yerleştirirler. Amaç, y

Tic-Tac-Toe Oyunu

Rock-Paper-Scissors Nedir? Rock-Paper-Scissors (Taş-Kağıt-Makas), iki oyuncu arasında oynanan basit bir el oyunudur. Oyuncular aynı anda üç şekilden birini seçer: taş, kağıt veya makas. Kazanan, aşağıdaki kurallara göre belirlenir: Taş makası kırar (taş kazanır) Makas kağıdı keser (makas kazanır) Kağıt taşı sarar (kağıt kazanır) Eğer oyuncular aynı şekli seçerse oyun berabere biter. Bu oyun, karar verme veya anlaşmazlıkları çözme amacıyla da kullanılabilir. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, oyun simülasyonları ve kullanıcı etkileşimi konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir oyun simülasyonu oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek oyun akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Olası hamleleri tanımlama. Kullanıcıdan hamle alma. Bilgisayardan rastgele bir hamle seçme. Kullanıcı ve bilgisayar hamlelerini karşılaştırarak sonucu belirleme. Oyunun sonucunu ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Adım 1: Olası Hamleleri Tanımlama İlk adım olarak, oyunda kullanılacak olası hamleler tanımlanacaktır. # Olası hamleler
hamleler = ["taş", "kağıt", "makas"]

 Bu kod parçası, oyunda kullanılacak olan olası hamleleri tanımlar. Adım 2: Kullanıcıdan Hamle Alma İkinci adımda, kullanıcıdan bir hamle alınacaktır. # Kullanıcıdan hamle alma
kullanici_hamlesi = input("Taş, kağıt veya makas seçin: ").lower()
while kullanici_hamlesi not in hamleler:
    kullanici_hamlesi = input("Geçersiz hamle! Taş, kağıt veya makas seçin: ").lower()

 Bu kod parçası, kullanıcıdan bir hamle alır ve geçerli bir hamle olup olmadığını kontrol eder. Kullanıcı geçerli bir hamle seçene kadar hamle istemeye devam eder. Adım 3: Bilgisayardan Rastgele Bir Hamle Seçme Üçüncü adımda, bilgisayardan rastgele bir hamle seçilecektir. import random

# Bilgisayardan rastgele bir hamle seçme
bilgisayar_hamlesi = random.choice(hamleler)
print(f"Bilgisayarın hamlesi: {bilgisayar_hamlesi}")

 Bu kod parçası, bilgisayardan rastgele bir hamle seçer ve ekrana yazdırır. random.choice() fonksiyonu, hamleler listesinden rastgele bir eleman seçmek için kullanılır. Adım 4: Kullanıcı ve Bilgisayar Hamlelerini Karşılaştırarak Sonucu Belirleme Dördüncü adımda, kullanıcı ve bilgisayar hamleleri karşılaştırılarak oyunun sonucu belirlenecektir. # Kullanıcı ve bilgisayar hamlelerini karşılaştırarak sonucu belirleme
if kullanici_hamlesi == bilgisayar_hamlesi:
    sonuc = "Berabere!"
elif (kullanici_hamlesi == "taş" and bilgisayar_hamlesi == "makas") or \\\\
     (kullanici_hamlesi == "makas" and bilgisayar_hamlesi == "kağıt") or \\\\
     (kullanici_hamlesi == "kağıt" and bilgisayar_hamlesi == "taş"):
    sonuc = "Kazandınız!"
else:
    sonuc = "Kaybettiniz!"

 Bu kod parçası, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler. Kullanıcı ve bilgisayar hamlelerinin eşleşmesine göre sonuç belirlenir. Adım 5: Oyunun Sonucunu Ekrana Yazdırma Beşinci adımda, oyunun sonucu ekrana yazdırılacaktır. # Oyunun sonucunu ekrana yazdırma
print(sonuc)

 Bu kod parçası, oyunun sonucunu ekrana yazdırır. Adım 6: Fonksiyonlarla Çözüm Kullanıcı Hamlesini Alma Fonksiyonu Bu fonksiyon, kullanıcıdan geçerli bir hamle alır. def kullanici_hamlesi_al():
    """Kullanıcıdan geçerli bir hamle alır."""
    hamleler = ["taş", "kağıt", "makas"]
    kullanici_hamlesi = input("Taş, kağıt veya makas seçin: ").lower()
    while kullanici_hamlesi not in hamleler:
        kullanici_hamlesi = input("Geçersiz hamle! Taş, kağıt veya makas seçin: ").lower()
    return kullanici_hamlesi

 Bu fonksiyon, kullanıcıdan geçerli bir hamle alır ve döndürür. Bilgisayar Hamlesini Seçme Fonksiyonu Bu fonksiyon, bilgisayardan rastgele bir hamle seçer. def bilgisayar_hamlesi_sec(hamleler):
    """Bilgisayardan rastgele bir hamle seçer."""
    return random.choice(hamleler)

 Bu fonksiyon, bilgisayardan rastgele bir hamle seçer ve döndürür. Oyunun Sonucunu Belirleme Fonksiyonu Bu fonksiyon, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler. def sonucu_belirle(kullanici_hamlesi, bilgisayar_hamlesi):
    """Kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler."""
    if kullanici_hamlesi == bilgisayar_hamlesi:
        return "Berabere!"
    elif (kullanici_hamlesi == "taş" and bilgisayar_hamlesi == "makas") or \\\\
         (kullanici_hamlesi == "makas" and bilgisayar_hamlesi == "kağıt") or \\\\
         (kullanici_hamlesi == "kağıt" and bilgisayar_hamlesi == "taş"):
        return "Kazandınız!"
    else:
        return "Kaybettiniz!"

 Bu fonksiyon, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirler ve döndürür. Oyunu Başlatma Fonksiyonu Bu fonksiyon, Rock-Paper-Scissors oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat():
    """Rock-Paper-Scissors oyununu başlatır."""
    hamleler = ["taş", "kağıt", "makas"]

    kullanici_hamlesi = kullanici_hamlesi_al()
    bilgisayar_hamlesi = bilgisayar_hamlesi_sec(hamleler)

    print(f"Bilgisayarın hamlesi: {bilgisayar_hamlesi}")

    sonuc = sonucu_belirle(kullanici_hamlesi, bilgisayar_hamlesi)

    print(sonuc)

# Oyunu başlatma
oyunu_baslat()

 Bu fonksiyon, Rock-Paper-Scissors oyununu başlatır ve oyunun akışını yönetir. Kullanıcı ve bilgisayar hamlelerini alır, hamleleri karşılaştırır ve oyunun sonucunu ekrana yazdırır. Kullanılan Konular Veri Tipleri:  Bu projede, listeler (hamleler) ve stringler (kullanıcı hamlesi, bilgisayar hamlesi) kullanılmıştır. Listeler:  Olası hamleler listeler şeklinde tutulmuştur. Koşullu İfadeler:  if-else yapıları, kullanıcı ve bilgisayar hamlelerini karşılaştırarak oyunun sonucunu belirlemek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Random Modülü:  random.choice() fonksiyonu, hamleler listesinden rastgele bir eleman seçmek için kullanılmıştır.

Rock-Paper-Scissors (Taş-Kağıt-Makas), iki oyuncu arasında oynanan basit bir el oyunudur. Oyuncular aynı anda üç şekilden birini seçer: taş,

Rock-Paper-Scissors Oyunu

Hangman Nedir? Hangman, kelime tahminine dayalı bir oyundur. Oyuncu, gizli bir kelimenin harflerini tahmin etmeye çalışır. Yanlış tahminler yapıldıkça, bir "adam" asılma tehlikesiyle karşı karşıya gelir. Oyunun amacı, adam tamamen asılmadan önce kelimeyi doğru tahmin etmektir. Hangman, eğlenceli ve eğitici bir oyun olarak bilinir ve özellikle kelime dağarcığını geliştirmek için oynanır. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, metin tabanlı oyunların nasıl kodlandığını anlayarak, oyun simülasyonu ve algoritma geliştirme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir oyun simülasyonu oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek oyun akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Kelime listesi oluşturma ve rastgele bir kelime seçme. Oyunun başlatılması ve gerekli değişkenlerin tanımlanması. Oyuncunun harf tahmin etmesi ve tahminlerin kontrol edilmesi. Oyunun ilerleyişini ve oyuncunun durumunu ekrana yazdırma. Oyunun sonucunu belirleme ve ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Adım 1: Kelime Listesi Oluşturma ve Rastgele Bir Kelime Seçme İlk adım olarak, kullanılacak kelimelerin listesi oluşturulacak ve bu listeden rastgele bir kelime seçilecektir. import random

# Kelime listesi
kelime_listesi = ["python", "hangman", "challenge", "programming", "development"]

# Rastgele bir kelime seçme
gizli_kelime = random.choice(kelime_listesi)

 Bu kod parçası, oyunda kullanılacak kelime listesini oluşturur ve bu listeden rastgele bir kelime seçer. Adım 2: Oyunun Başlatılması ve Gerekli Değişkenlerin Tanımlanması İkinci adımda, oyun başlatılacak ve gerekli değişkenler tanımlanacaktır. # Oyunun başlatılması ve gerekli değişkenlerin tanımlanması
tahmin_edilenler = []  # Oyuncunun tahmin ettiği harfler
yanlis_tahmin_sayisi = 0  # Yanlış tahmin sayısı
maksimum_yanlis_tahmin = 6  # İzin verilen maksimum yanlış tahmin sayısı
oyun_bitti = False

print(f"Kelime {len(gizli_kelime)} harften oluşuyor.")

 Bu kod parçası, oyun için gerekli değişkenleri tanımlar ve oyuncuya gizli kelimenin kaç harften oluştuğunu bildirir. Adım 3: Oyuncunun Harf Tahmin Etmesi ve Tahminlerin Kontrol Edilmesi Üçüncü adımda, oyuncunun harf tahmin etmesi ve bu tahminlerin kontrol edilmesi işlemleri gerçekleştirilecektir. # Oyuncunun harf tahmin etmesi ve tahminlerin kontrol edilmesi
while not oyun_bitti:
    tahmin = input("Bir harf tahmin edin: ").lower()

    if tahmin in tahmin_edilenler:
        print("Bu harfi zaten tahmin ettiniz. Başka bir harf deneyin.")
        continue

    tahmin_edilenler.append(tahmin)

    if tahmin in gizli_kelime:
        print("Doğru tahmin!")
    else:
        print("Yanlış tahmin!")
        yanlis_tahmin_sayisi += 1

    kelime_durumu = [harf if harf in tahmin_edilenler else "_" for harf in gizli_kelime]
    print("Kelime: ", " ".join(kelime_durumu))
    print(f"Yanlış tahmin sayısı: {yanlis_tahmin_sayisi}")

    if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
        print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
        oyun_bitti = True
    elif "_" not in kelime_durumu:
        print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
        oyun_bitti = True

 Bu kod parçası, oyuncunun harf tahmin etmesini ve bu tahminlerin kontrol edilmesini sağlar. Doğru ve yanlış tahminler ekrana yazdırılır ve oyuncunun mevcut durumu güncellenir. Adım 4: Oyunun İlerleyişini ve Oyuncunun Durumunu Ekrana Yazdırma Dördüncü adımda, oyunun ilerleyişi ve oyuncunun durumu ekrana yazdırılacaktır.     kelime_durumu = [harf if harf in tahmin_edilenler else "_" for harf in gizli_kelime]
    print("Kelime: ", " ".join(kelime_durumu))
    print(f"Yanlış tahmin sayısı: {yanlis_tahmin_sayisi}")

    if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
        print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
        oyun_bitti = True
    elif "_" not in kelime_durumu:
        print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
        oyun_bitti = True

 Bu kod parçası, oyuncunun mevcut durumunu ve kelimenin tahmin edilen kısımlarını ekrana yazdırır. Oyunun bitip bitmediği kontrol edilir ve oyun sona erdirilir. Adım 5: Sonuçların Belirlenmesi ve Ekrana Yazdırılması Beşinci adımda, oyunun sonuçları belirlenir ve ekrana yazdırılır.     if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
        print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
        oyun_bitti = True
    elif "_" not in kelime_durumu:
        print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
        oyun_bitti = True

 Bu kod parçası, oyuncunun kazanıp kazanmadığını veya kaybedip kaybetmediğini kontrol eder ve sonucu ekrana yazdırır. Adım 6: Fonksiyonlarla Çözüm Rastgele Kelime Seçme Fonksiyonu Bu fonksiyon, kelime listesinden rastgele bir kelime seçilmesini sağlar. def rastgele_kelime_sec(kelime_listesi):
    """Kelime listesinden rastgele bir kelime seçer."""
    return random.choice(kelime_listesi)

 Kelime listesinden rastgele bir kelime seçer ve döndürür. Bu fonksiyon, oyunun başında kullanılacak kelimeyi belirlemek için kullanılır. Kelime Durumunu Güncelleme Fonksiyonu Bu fonksiyon, tahmin edilen harflere göre kelimenin mevcut durumunu günceller. def kelime_durumunu_guncelle(gizli_kelime, tahmin_edilenler):
    """Tahmin edilen harflere göre kelimenin mevcut durumunu günceller."""
    return [harf if harf in tahmin_edilenler else "_" for harf in gizli_kelime]

 Gizli kelime ve tahmin edilen harflere göre kelimenin mevcut durumunu günceller ve döndürür. Bu fonksiyon, oyuncunun doğru tahminlerini takip etmek için kullanılır. Oyuncu Tahminini Kontrol Etme Fonksiyonu Bu fonksiyon, oyuncunun tahmin ettiği harfi kontrol eder ve doğru veya yanlış olduğunu belirler. def tahmini_kontrol_et(tahmin, gizli_kelime, tahmin_edilenler, yanlis_tahmin_sayisi):
    """Oyuncunun tahmin ettiği harfi kontrol eder ve doğru veya yanlış olduğunu belirler."""
    if tahmin in tahmin_edilenler:
        return "Bu harfi zaten tahmin ettiniz. Başka bir harf deneyin.", yanlis_tahmin_sayisi

    tahmin_edilenler.append(tahmin)

    if tahmin in gizli_kelime:
        return "Doğru tahmin!", yanlis_tahmin_sayisi
    else:
        return "Yanlış tahmin!", yanlis_tahmin_sayisi + 1

 Oyuncunun tahmin ettiği harfi kontrol eder ve doğru veya yanlış olduğunu belirler. Ayrıca, tahmin edilen harfleri günceller ve yanlış tahmin sayısını artırır. Oyunu Başlatma Fonksiyonu Bu fonksiyon, Hangman oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat(kelime_listesi):
    """Hangman oyununu başlatır."""
    gizli_kelime = rastgele_kelime_sec(kelime_listesi)
    tahmin_edilenler = []
    yanlis_tahmin_sayisi = 0
    maksimum_yanlis_tahmin = 6
    oyun_bitti = False

    print(f"Kelime {len(gizli_kelime)} harften oluşuyor.")

    while not oyun_bitti:
        tahmin = input("Bir harf tahmin edin: ").lower()
        mesaj, yanlis_tahmin_sayisi = tahmini_kontrol_et(tahmin, gizli_kelime, tahmin_edilenler, yanlis_tahmin_sayisi)
        print(mesaj)

        kelime_durumu = kelime_durumunu_guncelle(gizli_kelime, tahmin_edilenler)
        print("Kelime: ", " ".join(kelime_durumu))
        print(f"Yanlış tahmin sayısı: {yanlis_tahmin_sayisi}")

        if yanlis_tahmin_sayisi >= maksimum_yanlis_tahmin:
            print("Maalesef kaybettiniz! Gizli kelime:", gizli_kelime)
            oyun_bitti = True
        elif "_" not in kelime_durumu:
            print("Tebrikler! Kelimeyi doğru tahmin ettiniz:", gizli_kelime)
            oyun_bitti = True

# Kelime listesi oluşturma
kelime_listesi = ["python", "hangman", "challenge", "programming", "development"]

# Oyunu başlatma
oyunu_baslat(kelime_listesi)

 Bu fonksiyon, Hangman oyununu başlatır ve oyunun akışını yönetir. Oyuncunun tahminlerini alır, tahminlerin doğru veya yanlış olduğunu kontrol eder ve oyunun sonucunu belirler. Kullanılan Konular Veri Tipleri:  Bu projede, listeler (kelime listesi, tahmin edilen harfler) ve stringler (gizli kelime, tahmin) kullanılmıştır. Listeler:  Tahmin edilen harfler ve kelime durumu listeler şeklinde tutulmuştur. Koşullu İfadeler:  if-else yapıları, oyuncunun tahminlerini ve oyun durumunu kontrol etmek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  while döngüleri, oyuncunun tahminlerini almak ve oyunun akışını yönetmek için kullanılmıştır. Random Modülü:  random.choice() fonksiyonu, kelime listesinden rastgele bir kelime seçmek için kullanılmıştır.

Hangman, kelime tahminine dayalı bir oyundur. Oyuncu, gizli bir kelimenin harflerini tahmin etmeye çalışır. Yanlış tahminler yapıldıkça, bir

Hangman Oyunu

Blackjack Nedir? Blackjack, bir deste veya daha fazla deste kart ile oynanan bir şans oyunudur. Oyunun amacı, kartların toplam değeri 21'e ulaşarak veya mümkün olduğunca 21'e yakın bir değer alarak krupiyeyi yenmektir. Blackjack, genellikle casinoların vazgeçilmez oyunlarından biridir ve hem eğlenceli hem de stratejik bir oyun olarak bilinir. Oyunun kökeni 18. yüzyıl Fransa'sına dayanır ve oradan tüm dünyaya yayılmıştır. Proje Hedefleri ve Öğrenci Faydaları Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, kart oyunları gibi popüler uygulamaların nasıl kodlandığını anlayarak, oyun simülasyonu ve algoritma geliştirme konularında deneyim kazanacaklardır. Projenin Hedef Çıktıları Temel Python yapıları ve kontrol akışlarını kullanarak bir oyun simülasyonu oluşturma. Kullanıcıdan veri alma ve bu verileri işleyerek oyun akışını yönetme. Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma. Projenin Adım Adım Görevleri Kart destesi oluşturma ve kartların değerlerini tanımlama. Oyuncu ve krupiye için başlangıç kartlarını dağıtma. Oyuncunun kart çekme işlemlerini yönetme. Krupiyenin kart çekme işlemlerini yönetme. Oyun sonuçlarını belirleme ve ekrana yazdırma. Fonksiyonlar kullanarak kodu daha modüler hale getirme. Adım 1: Kart Destesi Oluşturma ve Başlangıç Ayarları İlk adım olarak, kart destesi oluşturulacak ve oyunun başlangıç ayarları yapılacaktır. import random

# Kart destesi oluşturma
kartlar = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11] * 4  # As: 11, Papaz/Kız/Vale: 10

# Oyun başlama durumu
oyun_bitti = False
oyuncu_el = []
krupiye_el = []

 Bu kod parçası, oyun için gerekli olan kart destesini oluşturur ve oyunun başlangıç durumunu ayarlar. random modülü, kartların rastgele seçilmesi için kullanılır. Adım 2: İlk Kartların Dağıtılması İkinci adımda, oyuncu ve krupiyeye ilk kartlar dağıtılacaktır. # İlk kartları dağıtma
oyuncu_el.append(random.choice(kartlar))  # Oyuncu için bir kart seç ve ekle
oyuncu_el.append(random.choice(kartlar))  # Oyuncu için ikinci kartı seç ve ekle
krupiye_el.append(random.choice(kartlar))  # Krupiye için bir kart seç ve ekle
krupiye_el.append(random.choice(kartlar))  # Krupiye için ikinci kartı seç ve ekle

print(f"Oyuncu'nun kartları: {oyuncu_el}, toplam: {sum(oyuncu_el)}")  # Oyuncunun kartlarını ve toplamını yazdır
print(f"Krupiye'nin kartları: [{krupiye_el[0]}, ?]")  # Krupiyenin kartlarından birini ve gizli olanı yazdır

# Oyuncu veya krupiyenin ilk iki kartının toplamı 21 ise oyunu kazandı
if sum(oyuncu_el) == 21:
    print("Blackjack! Oyuncu kazandı!")
    oyun_bitti = True
elif sum(krupiye_el) == 21:
    print("Blackjack! Krupiye kazandı!")
    oyun_bitti = True

 Bu kod parçası, oyuncu ve krupiyeye başlangıç kartlarını dağıtır ve ilk durumu ekrana yazdırır. Ayrıca, oyuncu veya krupiyenin ilk iki kartının toplamı 21 olduğunda oyunu kazandığını belirtir. Adım 3: Oyuncunun Kart Çekme İşlemleri Üçüncü adımda, oyuncunun kart çekme işlemleri gerçekleştirilecektir. # Oyuncu kart çekmeye devam etme
while not oyun_bitti and sum(oyuncu_el) < 21:  # Oyuncunun kartlarının toplamı 21'den küçükse ve oyun bitmediyse devam et
    karar = input("Kart çekmek ister misiniz? (e/h): ")  # Oyuncuya kart çekmek isteyip istemediğini sor
    if karar == 'e':  # Eğer evet derse
        oyuncu_el.append(random.choice(kartlar))  # Yeni bir kart çek ve oyuncuya ekle
        print(f"Oyuncu'nun yeni kartı: {oyuncu_el[-1]}")  # Oyuncunun yeni kartını yazdır
        print(f"Oyuncu'nun kartları: {oyuncu_el}, toplam: {sum(oyuncu_el)}")  # Oyuncunun tüm kartlarını ve toplamını yazdır
        if sum(oyuncu_el) == 21:  # Oyuncu toplamı 21 olursa
            print("Oyuncu 21 yaptı! Oyuncu kazandı!")
            oyun_bitti = True
        elif sum(oyuncu_el) > 21:  # Oyuncu toplamı 21'i geçerse
            print("Oyuncu battı! Krupiye kazandı.")
            oyun_bitti = True
    else:
        break  # Hayır derse döngüden çık

 Bu kod parçası, oyuncunun kart çekme işlemlerini yönetir. Oyuncunun toplam kart değeri 21'i geçmediği sürece, oyuncu kart çekmeye devam edebilir. Oyuncu 21 yaparsa oyunu kazanır, 21'i geçerse kaybeder. Adım 4: Krupiyenin Kart Çekme İşlemleri Dördüncü adımda, krupiyenin kart çekme işlemleri gerçekleştirilecektir. # Krupiye kart çekme
while not oyun_bitti and sum(krupiye_el) < 17:  # Krupiyenin kartlarının toplamı 17'den küçükse ve oyun bitmediyse devam et
    krupiye_el.append(random.choice(kartlar))  # Yeni bir kart çek ve krupiyeye ekle

print(f"Krupiye'nin kartları: {krupiye_el}, toplam: {sum(krupiye_el)}")  # Krupiyenin tüm kartlarını ve toplamını yazdır

 Bu kod parçası, krupiyenin kart çekme işlemlerini yönetir. Krupiyenin toplam kart değeri 17'den küçükse, krupiye kart çekmeye devam eder. Adım 5: Sonuçların Belirlenmesi Beşinci adımda, oyunun sonuçları belirlenerek ekrana yazdırılacaktır. # Sonuç belirleme
if not oyun_bitti:
    if sum(krupiye_el) > 21:
        print("Krupiye battı! Oyuncu kazandı.")
    elif sum(krupiye_el) == 21:
        print("Krupiye 21 yaptı! Krupiye kazandı.")
    elif sum(krupiye_el) > sum(oyuncu_el):
        print("Krupiye kazandı!")
    elif sum(krupiye_el) < sum(oyuncu_el):
        print("Oyuncu kazandı!")
    else:
        print("Berabere!")

 Bu kod parçası, oyunun sonuçlarını belirler ve ekrana yazdırır. Krupiyenin toplam kart değeri 21'den büyükse kaybeder, 21 olursa kazanır, oyuncudan büyükse kazanır, küçükse kaybeder, eşitse berabere kalır. Adım 6: Fonksiyonlarla Çözüm Kart Çekme Fonksiyonu Bu fonksiyon, desteden rastgele bir kart çekilmesini sağlar. def kart_cek(destesi):
    """Desteden rastgele bir kart çeker."""
    return random.choice(destesi)

 Kart çekme işlemi için desteden rastgele bir kart seçer ve döndürür. Bu fonksiyon, destedeki kartların rastgele seçilmesini sağlamak için kullanılır. Kart Dağıtma Fonksiyonu Bu fonksiyon, oyuncu ve krupiyeye iki kart dağıtır. def kart_dagit():
    """Oyuncu ve krupiye için iki kart dağıtır."""
    return [kart_cek(kartlar), kart_cek(kartlar)]

 Oyuncu ve krupiyeye başlangıçta iki kart verir. Bu fonksiyon, oyunun başlangıcında her iki tarafa da kart dağıtmak için kullanılır. Kartları Gösterme Fonksiyonu Bu fonksiyon, eldeki kartları gösterir. Krupiyenin kartlarından biri gizli olabilir. 
python
def kartlari_goster(el, gizli=False):
    """Eldeki kartları gösterir. Krupiyenin kartlarından biri gizli olabilir."""
    if gizli:
        return f"[{el[0]}, ?]"
    return f"{el}, toplam: {sum(el)}"

 Verilen eldeki kartları gösterir. Krupiyenin kartlarından biri gizli olabileceği için, gizli kartı "?" ile gösterir. Bu fonksiyon, oyun durumunu ekrana yazdırmak için kullanılır. El Toplamını Hesaplama Fonksiyonu Bu fonksiyon, eldeki kartların toplamını hesaplar. def el_toplami(el):
    """Eldeki kartların toplamını hesaplar."""
    return sum(el)

 Verilen eldeki kartların toplamını hesaplar ve döndürür. Bu fonksiyon, oyuncunun ve krupiyenin toplam kart değerlerini belirlemek için kullanılır. Oyuncu Kart Çekme Fonksiyonu Bu fonksiyon, oyuncunun yeni bir kart çekmesini sağlar. def oyuncu_kart_cek(el, destesi):
    """Oyuncunun yeni bir kart çekmesini sağlar."""
    el.append(kart_cek(destesi))
    print(f"Oyuncu'nun yeni kartı: {el[-1]}")
    print(f"Oyuncu'nun kartları: {kartlari_goster(el)}")

 Oyuncunun yeni bir kart çekmesini sağlar ve yeni kartı oyuncunun eline ekler. Bu fonksiyon, oyuncunun kart çekme işlemini yönetmek için kullanılır. Krupiye Kart Çekme Fonksiyonu Bu fonksiyon, krupiyenin kart çekme işlemini gerçekleştirir. def krupiye_kart_cek(el, destesi):
    """Krupiyenin kart çekme işlemini gerçekleştirir."""
    while el_toplami(el) < 17:
        el.append(kart_cek(destesi))
    print(f"Krupiye'nin kartları: {kartlari_goster(el)}")

 Krupiyenin kart çekme işlemini yönetir. Krupiyenin toplam kart değeri 17'den küçükse, krupiye kart çekmeye devam eder. Bu fonksiyon, krupiyenin oyun kurallarına uygun şekilde kart çekmesini sağlar. Oyunu Başlatma Fonksiyonu Bu fonksiyon, Blackjack oyununu başlatır ve oyunun akışını yönetir. def oyunu_baslat():
    """Blackjack oyununu başlatır."""
    oyuncu_el = kart_dagit()
    krupiye_el = kart_dagit()

    print(f"Oyuncu'nun kartları: {kartlari_goster(oyuncu_el)}")
    print(f"Krupiye'nin kartları: {kartlari_goster(krupiye_el, gizli=True)}")

    # Oyuncu veya krupiyenin ilk iki kartının toplamı 21 ise oyunu kazandı
    if el_toplami(oyuncu_el) == 21:
        print("Blackjack! Oyuncu kazandı!")
        return
    elif el_toplami(krupiye_el) == 21:
        print("Blackjack! Krupiye kazandı!")
        return

    while el_toplami(oyuncu_el) < 21:
        karar = input("Kart çekmek ister misiniz? (e/h): ")
        if karar == 'e':
            oyuncu_kart_cek(oyuncu_el, kartlar)
            if el_toplami(oyuncu_el) == 21:
                print("Oyuncu 21 yaptı! Oyuncu kazandı!")
                return
            elif el_toplami(oyuncu_el) > 21:
                print("Oyuncu battı! Krupiye kazandı.")
                return
        else:
            break

    krupiye_kart_cek(krupiye_el, kartlar)

    if el_toplami(krupiye_el) > 21:
        print("Krupiye battı! Oyuncu kazandı.")
    elif el_toplami(krupiye_el) == 21:
        print("Krupiye 21 yaptı! Krupiye kazandı.")
    elif el_toplami(krupiye_el) > el_toplami(oyuncu_el):
        print("Krupiye kazandı!")
    elif el_toplami(krupiye_el) < el_toplami(oyuncu_el):
        print("Oyuncu kazandı!")
    else:
        print("Berabere!")

# Kart destesi oluşturma
kartlar = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11] * 4  # As: 11, Papaz/Kız/Vale: 10

oyunu_baslat()

 Kullanılan Konular Veri Tipleri:  Bu projede, tamsayılar (kart değerleri) ve listeler (kart destesi, el kartları) kullanılmıştır. Listeler:  Kart destesi ve oyuncu/krupiye el kartları listeler şeklinde tutulmuştur. Koşullu İfadeler:  if-else yapıları, oyun sonuçlarını belirlemek ve oyuncu/krupiyenin kart çekme kararlarını işlemek için kullanılmıştır. Fonksiyonlar:  Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır. Döngüler:  while döngüleri, oyuncu ve krupiyenin kart çekme işlemlerini yönetmek için kullanılmıştır. Random Modülü:  random.choice() fonksiyonu, kartların rastgele seçilmesini sağlamıştır.

Blackjack, bir deste veya daha fazla deste kart ile oynanan bir şans oyunudur. Oyunun amacı, kartların toplam değeri 21'e ulaşarak veya mümk

Blackjack Oyunu

Projects

Your last degree :

Contact Us for More Details

If you have any questions or would like more information about the Python for Data Analysis training program, feel free to reach out to us. We’re happy to assist you with any inquiries, registration details, or clarifications about the course content and structure.

Program Details

Python For Data Analysis is an intensive, hands-on training program designed for beginners who want to develop skills in data analysis using Python. This course covers essential Python libraries and techniques for analyzing, cleaning, and visualizing data, making it ideal for those pursuing a career in data science or business analytics.

By the end of this course, participants will be able to confidently analyze datasets, perform data cleaning, and create insightful visualizations, all while preparing themselves for more advanced data science concepts.

Dates

A new class is opened every month for this training program.

Duration

This training program consists of 4 weeks of intensive study.

Way to Learn

Lessons are held completely online and live via Google Meet or Zoom.

Method

This consists of 12 courses in total, including theoretical, practical sessions.

bottom of page