├── LICENSE ├── README.md └── python_rehberi.png /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Lect. Ali Cetinkaya (MSc.) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python Programlama Dili Rehberi 2 | 3 | ![alternatif metin](https://github.com/acetinkaya/Python-Programlama-Rehberi/blob/main/python_rehberi.png) 4 | 5 | Bu repo, Python programlama dili üzerine hazırlanmış bir rehberdir. Temel konulardan ileri düzey uygulamalara kadar adım adım ilerleyen örneklerle, Python programlama dilini öğrenme sürecinizi kolaylaştırmayı amaçlamaktayım. 6 | 7 | 🎯 Hedef Kitle 8 | 9 | Python diline yeni başlayan öğrenciler 10 | 11 | Python programlama dilini öğrenmek isteyen herkes 12 | 13 | Gömülü sistem uygulamalarında algoritma geliştirmeyi ve programlamaya ilgi duyan tüm geliştiriciler. 14 | 15 | # 📘 Ders Video İçerikleri: 16 | 17 | Python Programlama Dili Konu Anlatımı - 1 18 | Konusu: Python Programlama Diline Giriş, Değişkenler ve Veri Tipleri, Operatörler 19 | Dersin Videosu :> https://youtu.be/i2QxxYTaaxs 20 | 21 | Python Programlama Dili Konu Anlatımı - 2 22 | Konusu: Kontrol Yapıları (if, if else, if elif else), Döngüler (for, while), Fonksiyonlar, Listeler ve Python Programlama Dili Kütüphaneleri 23 | Dersin Videosu :> https://youtu.be/hHtVqEu7UZY 24 | 25 | Python Programlama Dili Konu Anlatımı - 3 26 | Konusu: Google Colab Üzerinde Python Uygulamaları 27 | Dersin Videosu :> https://youtu.be/3RhAOU-VRXs 28 | 29 | Python Programlama Dili Konu Anlatımı - 4 30 | Konusu: Google Colab Üzerinde Python Uygulamaları 31 | Dersin Videosu :> https://youtu.be/cs44Z0Nnc78 32 | 33 | Python Programlama Dili Konu Anlatımı - 5 34 | Konusu: Google Colab Üzerinde Python Uygulamaları 35 | Dersin Videosu :> https://youtu.be/CF2vbL4d9sM 36 | 37 | Python Programlama Dili Soru Çözüm Videosu :> https://youtu.be/Eyzd5ItzZI0 38 | 39 | # 📘 Ders İçerikleri: 40 | 41 | ## 1. Python Programlama Diline Genel Bakış 42 | 43 | -> Python Nedir? 44 | 45 | * Yüksek seviyeli, okunabilirliği yüksek, çok amaçlı ve yorumlanabilir bir programlama dilidir. Dinamik yapısı ve geniş kütüphane desteği ile veri analitiği, yapay zekâ, web geliştirme, otomasyon gibi birçok alanda kullanılır. 46 | 47 | -> Python Nerelerde Kullanılır? 48 | 49 | * Bilgisayarda Programlama Python, Algoritma & Veri Yapıları, Yapay zeka ve makine öğrenimi, veri analizi, web uygulamaları (Django, Flask), otomasyon scriptleri, gömülü sistemler (MicroPython), bilimsel hesaplamalar, oyun geliştirme konularında python programlama dili kullanılmaktadır. 50 | 51 | -> İlk Python Programı: 52 | 53 | print("Merhaba Hayat") 54 | 55 | ## 2. Python Programlama Diline Giriş 56 | 57 | 2.1 Yorum Satırları 58 | 59 | # Tek satırlık yorum 60 | 61 | """ 62 | Çok satırlı 63 | yorum bloğu 64 | """ 65 | 66 | 2.2 Değişkenler ve Veri Tipleri (int, float, str, bool) 67 | 68 | yas = 25 # int (tam sayı) 69 | sicaklik = 36.5 # float (ondalıklı sayı) 70 | harf = 'A' # string || str (tek karakter de str türündedir) 71 | isim = "Ali" # string || str (metin ifadesi) 72 | degisken = True # bool değişlen türü True || False 73 | 74 | ## 3. Operatörler 75 | 76 | 3.1 Aritmetik Operatörler 77 | 78 | toplam = 5 + 3 # 8 79 | carpim = 4 * 2 # 8 80 | 81 | 3.2 Karşılaştırma Operatörleri 82 | 83 | a = 10 84 | b = 10 85 | 86 | if a == b: 87 | print("Eşittir") 88 | 89 | 3.3 Mantıksal Operatörler 90 | 91 | a = 5 92 | b = 7 93 | 94 | if a > 0 and b > 0: 95 | print("Pozitif sayılar") 96 | 97 | --- 98 | 99 | not1 = 45 100 | not2 = 60 101 | 102 | if not1 >= 50 or not2 >= 50: 103 | print("Ders geçildi.") 104 | 105 | --- 106 | 107 | aktif = False 108 | if not aktif: 109 | print("Kullanıcı pasif.") 110 | 111 | ## 4. Kontrol Yapıları 112 | 113 | 4.1 Koşullu İfadeler 114 | 115 | yas = 17 116 | 117 | if yas > 18: 118 | print("Yetişkin.") 119 | else: 120 | print("Çocuk.") 121 | 122 | --- 123 | 124 | yas = 20 125 | puan = 85 126 | 127 | if yas >= 18 and puan >= 80: 128 | print("Sınava girmeye uygunsunuz.") 129 | else: 130 | print("Şartları sağlamıyorsunuz.") 131 | 132 | 4.2 Döngüler 133 | 134 | 4.2.1 for Döngüsü 135 | 136 | for i in range(5): 137 | print(i) 138 | 139 | 4.2.2 while Döngüsü 140 | 141 | i = 0 142 | while i < 5: 143 | print(i) 144 | i += 1 145 | 146 | ## 5. Fonksiyonlar 147 | 148 | 5.1 Fonksiyon Tanımı ve Kullanımı 149 | 150 | # Toplama yapan fonksiyon 151 | 152 | def topla(a, b): 153 | return a + b 154 | 155 | # Fonksiyon çağrısı 156 | 157 | sonuc = topla(5, 3) 158 | print(sonuc) 159 | 160 | ## 6. Listeler 161 | 162 | 6.1 Tek Boyutlu Liste 163 | 164 | sayilar = [1, 2, 3, 4, 5] 165 | print(sayilar[2]) # 3 166 | 167 | 6.2 Çok Boyutlu Liste 168 | 169 | matris = [ 170 | [1, 2, 3], 171 | [4, 5, 6] 172 | ] 173 | 174 | print(matris[1][2]) # 6 175 | 176 | ## 7. Python Programlama Dili Kütüphaneleri 177 | 178 | 7.1. Python’da Genel Amaçlı Kullanılan Kütüphaneler 179 | 180 | | Modül Adı | Ana İşlev Grubu | Örnek Fonksiyonlar | Kısaca Ne Yapar | 181 | | ---------- | --------------------- | ------------------------------------------------ | ----------------------------------------------------------- | 182 | | `time` | Tarih & Zaman | `time()`, `localtime()`, `strftime()`, `sleep()` | Unix zaman damgası, yerel zaman, bekleme fonksiyonu sağlar. | 183 | | `sys` | Sistem İşlemleri | `argv`, `exit()`, `getsizeof()` | Komut satırı argümanları, çıkış işlemleri. | 184 | | `os` | İşletim Sistemi | `mkdir()`, `remove()`, `system()`, `getcwd()` | Dosya işlemleri, komut çalıştırma. | 185 | | `math` | Matematik | `sqrt()`, `pow()`, `sin()`, `log()`, `ceil()` | Karekök, üstel, trigonometrik işlemler. | 186 | | `random` | Rastgele Sayılar | `random()`, `randint()`, `choice()`, `shuffle()` | Rastgele sayı ve seçim üretimi. | 187 | | `builtins` | Yerleşik Fonksiyonlar | `len()`, `type()`, `input()`, `print()` | Python’ın varsayılan yerleşik işlevleri. | 188 | 189 | 7.2. Python’da Özel Amaçlı Kütüphaneler 190 | 191 | | Modül Adı | Ana İşlev Grubu | Örnek Fonksiyonlar | Kısaca Ne Yapar | 192 | | --------- | ------------------------ | ------------------------------------------- | ------------------------------------------------------------- | 193 | | `string` | Metinsel İfadeler | `ascii_letters`, `digits`, `punctuation` | Hazır karakter kümeleri sağlar. | 194 | | `re` | Düzenli İfadeler (regex) | `match()`, `search()`, `findall()`, `sub()` | Metin arama ve değiştirme işlemleri. | 195 | | `assert` | Hata Ayıklama | `assert` | Koşul doğru değilse hata fırlatır (C’deki `assert.h` gibi). | 196 | | `locale` | Yerelleştirme | `setlocale()`, `localeconv()` | Sayı formatı, para birimi biçimi gibi yerel ayarları yönetir. | 197 | | `errno` | Hata Kodları (dolaylı) | `errno`, `strerror()` (via `os.strerror`) | Sistem hatalarının yorumlanması. | 198 | 199 | ## 8. Python’da try-except Yapısı 200 | 201 | 8.1. Try-Except yapısı 202 | 203 | try: 204 | # Hata çıkarabilecek kod 205 | except HataTuru: 206 | # Hata yakalandığında çalışacak kod 207 | 208 | 8.2. Python Try-Except Hata Türleri 209 | 210 | | Hata Türü | Açıklama | Örnek Kod | 211 | | ------------------- | ---------------------------------------------------------------------- | ------------------------------------- | 212 | | `ValueError` | Uygun olmayan veri tipiyle işlem yapılmaya çalışıldığında oluşur. | `int("merhaba")` | 213 | | `TypeError` | Yanlış türdeki verilerle işlem yapılırsa oluşur. | `"Ali" + 5` | 214 | | `ZeroDivisionError` | Sayı sıfıra bölünmeye çalışıldığında oluşur. | `10 / 0` | 215 | | `IndexError` | Listede olmayan bir indekse erişildiğinde oluşur. | `[1, 2, 3][5]` | 216 | | `KeyError` | Sözlükte olmayan bir anahtara erişildiğinde oluşur. | `{"ad": "Ali"}["soyad"]` | 217 | | `NameError` | Tanımlanmamış bir değişkene erişilmeye çalışıldığında oluşur. | `print(x)` (x tanımlı değilse) | 218 | | `AttributeError` | Nesne üzerinde tanımlı olmayan bir fonksiyon/metoda erişilirse oluşur. | `"Ali".append("x")` | 219 | | `FileNotFoundError` | Açılmak istenen dosya bulunamazsa oluşur. | `open("yok.txt")` | 220 | | `ImportError` | Var olmayan veya yüklenemeyen bir modül çağırıldığında oluşur. | `import yok_modul` | 221 | | `IndentationError` | Kod bloğu girintileme kurallarına uymazsa oluşur. | `if True:\nprint("merhaba")` | 222 | | `SyntaxError` | Yazım hatası varsa oluşur. | `for i in range(5)` (iki nokta eksik) | 223 | | `Exception` | Tüm hata türlerinin üst sınıfıdır (genel hata yakalamada kullanılır). | `except Exception as e:` | 224 | 225 | ## 9. Python Programlama Dili Örnekleri 226 | 227 | 9.1 Kullanıcı Girdisinin Doğruluğunu Kontrol Etme 228 | 229 | try: 230 | sayi = int(input("Bir sayı girin: ")) 231 | print("Girilen sayı:", sayi) 232 | except ValueError: 233 | print("Geçersiz karakter girişi yaptınız.") 234 | 235 | 9.2 Girilen Bir Sayının Negatif mi? Pozitif mi? olduğunu Bulma 236 | 237 | try: 238 | sayi = int(input("Bir sayı girin: ")) 239 | 240 | if sayi < 0: 241 | print(sayi, "Negatif Sayıdır.") 242 | elif sayi > 0: 243 | print(sayi, "Pozitif Sayıdır.") 244 | else: 245 | print("Girilen Sayı 0'dır...") 246 | except ValueError: 247 | print("Lütfen Bir Sayı Giriniz.") 248 | 249 | 9.3. Girilen Bir Değerin Sayı Olduğu Kontrol Edildikten Sonra Tek mi Çift mi Olduğunu Bulma 250 | 251 | try: 252 | sayi = int(input("Bir sayı girin: ")) 253 | 254 | if sayi % 2 == 0: 255 | print(sayi, "çift sayıdır.") 256 | else: 257 | print(sayi, "tek sayıdır.") 258 | 259 | except ValueError: 260 | print("Geçersiz giriş! Lütfen bir tamsayı giriniz.") 261 | 262 | 9.4. Kullanıcıdan Alınan Sayıları Listeye Aktarma ve Yazdırma 263 | 264 | sayilar = [] 265 | 266 | print("Lütfen 6 adet tamsayı giriniz:") 267 | 268 | for i in range(6): 269 | try: 270 | sayi = int(input(str(i + 1) + ". sayı: ")) 271 | sayilar.append(sayi) 272 | except ValueError: 273 | print("Geçersiz giriş! Lütfen tamsayı giriniz.") 274 | 275 | # Girilen sayıları yazdır 276 | 277 | print("Girilen sayılar:", sayilar) 278 | 279 | 280 | 9.5. Kullanıcının Belirlediği Sayı Adedi ile Girilen Sayı Adedinin Karşılaştırılması 281 | 282 | sayilar = [] 283 | 284 | istenen_adet = 6 285 | 286 | print("6 Adet Sayı Giriniz") 287 | 288 | for i in range(istenen_adet): 289 | try: 290 | sayi = int(input(str(i + 1) + ". sayi")) 291 | sayilar.append(sayi) 292 | except ValueError: 293 | print("Geçersiz değer girdiniz") 294 | 295 | print("Kullanıcıdan Gelen Degerler: ",sayilar) 296 | sayi_adeti = len(sayilar) 297 | print("Kullanıcıdan Gelen Sayı Adeti ",sayi_adeti) 298 | 299 | if(istenen_adet>sayi_adeti): 300 | print("Eksik Sayı Girdiniz") 301 | elif(istenen_adet sayilar[j + 1]: 366 | # Elemanları yer değiştiriyoruz 367 | sayilar[j], sayilar[j + 1] = sayilar[j + 1], sayilar[j] 368 | 369 | print("Sıralanmış sayılar (küçükten büyüğe):", sayilar) 370 | 371 | 9.9. Python "random" Kütüphenesi ile Rastgele Belirlenen Sayıyı Tahmin Etme Oyunu 372 | 373 | import random # rastgele sayı üretmek için kullanılan kütüphane 374 | 375 | hedef_sayi = random.randint(1, 10) # 1 ile 10 arasında rastgele belirlenen deger 376 | tahmin = 0 377 | deneme_sayisi = 0 378 | 379 | print("1 ile 10 arasında bir sayı tuttum. Bakalım tahmin edebilecek misin?") 380 | 381 | while tahmin != hedef_sayi: 382 | try: 383 | tahmin = int(input("Tahmininizi giriniz: ")) 384 | deneme_sayisi += 1 385 | 386 | if tahmin < hedef_sayi: 387 | print("Daha büyük bir sayı girin.") 388 | elif tahmin > hedef_sayi: 389 | print("Daha küçük bir sayı girin.") 390 | else: 391 | print("Tebrikler! ", deneme_sayisi , "denemede doğru tahmin ettiniz.") 392 | except ValueError: 393 | print("Lütfen geçerli bir tamsayı girin.") 394 | 395 | 9.10. Taş-Kağıt-Makas Oyunu: Python ile Skor Takipli Taş-Kağıt-Makas Oyunu 396 | 397 | import random 398 | 399 | secenekler = ["taş", "kağıt", "makas"] 400 | kullanici_skor = 0 401 | bilgisayar_skor = 0 402 | 403 | print("Taş - Kağıt - Makas oyununa hoş geldiniz!") 404 | print("Oyunu bitirmek için 'q' tuşuna basın veya 'çık' yazın.\n") 405 | 406 | while True: 407 | oyuncu_secimi = input("Taş, Kağıt veya Makas seçin: ").lower() 408 | 409 | if oyuncu_secimi in ["çık", "q"]: 410 | print("Oyun sonlandırıldı.") 411 | break 412 | 413 | if oyuncu_secimi not in secenekler: 414 | print("Geçersiz seçim! Lütfen taş, kağıt ya da makas girin.") 415 | continue 416 | 417 | bilgisayar_secimi = random.choice(secenekler) 418 | print("Bilgisayar: ", bilgisayar_secimi) 419 | 420 | if oyuncu_secimi == bilgisayar_secimi: 421 | print("Berabere!") 422 | elif ((oyuncu_secimi == "taş" and bilgisayar_secimi == "makas") or 423 | (oyuncu_secimi == "kağıt" and bilgisayar_secimi == "taş") or 424 | (oyuncu_secimi == "makas" and bilgisayar_secimi == "kağıt")): 425 | print("Tebrikler, kazandınız!") 426 | kullanici_skor += 1 427 | else: 428 | print("Bilgisayar kazandı!") 429 | bilgisayar_skor += 1 430 | 431 | # Son durum bilgisi 432 | print("Skor Durumu -> Bilgisayar: ", bilgisayar_skor , " | Kullanıcı: ", kullanici_skor) 433 | print("Oyunu sonlandırmak için 'q' tuşuna bas veya 'çık' yazabilirsiniz.") 434 | 435 | print("Oyun Bitti! Toplam Skorlar:") 436 | print("Bilgisayar: " , bilgisayar_skor) 437 | print("Kullanıcı: " , kullanici_skor) 438 | 439 | 440 | ---- 441 | 442 | ## 📖 Kaynak Kitaplar 443 | 444 | 1. Eftâl Şehirli, Muhammed Kâmil Turan, Python ile Soru Çözüm Kitabı, Nobel Akademik Yayıncılık, Ankara, 2023. 445 | 446 | 2. Prof. Dr. Özlem Türkşen, Optimizasyon Yöntemleri ve Matlab, Python, R Uygulamaları, Nobel Akademik Yayıncılık, 2023. 447 | 448 | ⚡ **Bilgi Paylaştıkça Gelişir!** 🚀 449 | 450 | 451 | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 452 | 453 | ## Bu Github paylaşımının IEEE ve APA formatlarınada atıf verilme şekli: 454 | 455 | IEEE--> A. Cetinkaya, "Python Programlama Dili Rehberi" GitHub, [Online]. Erişim Linki: https://github.com/acetinkaya/Python-Programlama-Rehberi . Son Erişim Tarihi: Gün Ay Yıl. 456 | 457 | APA--> Cetinkaya, A. (2025). Python Programlama Dili Rehberi [GitHub Deposu]. GitHub. Erişim Linki: https://github.com/acetinkaya/Python-Programlama-Rehberi . Son Erişim Tarihi: Gün Ay Yıl. 458 | 459 | --- 460 | 461 | --- 462 | 463 | Yukarıdaki bilgi, resim ve kod çalışmaları açık kaynak paylaşım olarak GitHub "acetinkaya" alanında paylaşımı yapılmıştır. 464 | 465 | Proje Durumu: İlgili paylaşımlar ve Python programlama dilinde yazılmış yazılım kodlarına sürüm güncellemeleri yaptıkça bu paylaşımları güncelleyeceğiz. GitHub bölümünden beğeni bildirimi olarak bir yıldız vererek çalışmalarımı destekleyebilirsiniz. Bilgi paylaşıldıkça büyür ve gelişir. 466 | 467 | Katkıda Bulunma: Fork - Çekme istekleri memnuniyetle karşılanır. Büyük değişiklikler için lütfen önce neyi değiştirmek istediğinizi görüşmek üzere ilgili Python kodunu belirttiğiniz bir soru - yanıt bölümü açın. 468 | Bilgi paylaşıldıkça çoğalır ve gelişir. İyi çalışmalar dilerim. 469 | 470 | Yazar ve Güncelleme Yapan: [Öğr. Gör. Ali Çetinkaya (MSc.)](https://github.com/acetinkaya) - 2025 471 | 472 | --- 473 | 474 | The above information, images, and code examples are shared as open-source content on GitHub under the "acetinkaya" account. 475 | 476 | Project Status: The relevant posts and software codes written in the Python programming language will be updated as new versions are released. You can support my work by giving a star to the repository on GitHub. Knowledge grows and develops as it is shared. 477 | Contributing: Forks and pull requests are warmly welcomed. For major changes, please first open a question-answer thread indicating which Python code you want to modify to discuss your proposal. Knowledge multiplies and improves when shared. Best wishes for your work! 478 | 479 | Author and Maintainer: [Lect. Ali Cetinkaya (MSc.)](https://github.com/acetinkaya) - 2025 480 | 481 | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 482 | -------------------------------------------------------------------------------- /python_rehberi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acetinkaya/Python-Programlama-Rehberi/946082d3f91aa1558ea10947f187dceb469ff7f7/python_rehberi.png --------------------------------------------------------------------------------