{"id":41709,"date":"2026-05-11T21:01:52","date_gmt":"2026-05-11T18:01:52","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/"},"modified":"2026-05-11T21:01:52","modified_gmt":"2026-05-11T18:01:52","slug":"pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/","title":{"rendered":"Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme"},"content":{"rendered":"<h2>Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme<\/h2>\n<p>Python&#8217;da veri y\u00f6netimi ve dinamik uygulamalar geli\u015ftirmenin temel ta\u015flar\u0131ndan ikisi olan listeler ve rastgelelik mod\u00fcl\u00fc, programc\u0131lar\u0131n i\u015f ak\u0131\u015f\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r. Bu makalede, bu iki g\u00fc\u00e7l\u00fc arac\u0131 s\u0131f\u0131rdan ba\u015flayarak derinlemesine inceleyecek, ger\u00e7ek d\u00fcnya senaryolar\u0131 \u00fczerinden uygulamal\u0131 \u00f6rneklerle peki\u015ftirecek ve ileri d\u00fczey kullan\u0131c\u0131lar i\u00e7in baz\u0131 p\u00fcf noktalar\u0131n\u0131 payla\u015faca\u011f\u0131z. \u00d6zellikle veri setlerini d\u00fczenlemek, \u015fans fakt\u00f6r\u00fcn\u00fc oyunlara dahil etmek veya rastgele se\u00e7imler yapmak gibi konularda Python&#8217;\u0131n sundu\u011fu imkanlar\u0131 ke\u015ffedece\u011fiz.<\/p>\n<h3>Listeler: Python&#8217;\u0131n Esnek Veri Yap\u0131s\u0131<\/h3>\n<p>Python&#8217;daki listeler, farkl\u0131 veri tiplerini (say\u0131lar, metinler, hatta di\u011fer listeler) bir arada bar\u0131nd\u0131rabilen, s\u0131ras\u0131 \u00f6nemli olan ve de\u011fi\u015ftirilebilir (mutable) veri koleksiyonlar\u0131d\u0131r. Di\u011fer programlama dillerindeki dizilere (array) benzese de, Python listeleri \u00e7ok daha esnektir. Bir liste olu\u015fturmak olduk\u00e7a basittir; k\u00f6\u015feli parantezler <code>[]<\/code> i\u00e7ine elemanlar\u0131 virg\u00fclle ay\u0131rarak yerle\u015ftiririz. \u00d6rne\u011fin, bir \u00f6\u011frenci listesi olu\u015fturmak istedi\u011fimizde \u015f\u00f6yle bir yol izleyebiliriz:<\/p>\n<pre><code class=\"language-python\">ogrenciler = [\"Ali\", \"Ay\u015fe\", \"Mehmet\", \"Zeynep\"]\nsayilar = [10, 25, 7, 42, 15]\nkarisik_liste = [\"Merhaba\", 123, True, 3.14, [1, 2, 3]]<\/pre>\n<p><\/code><\/p>\n<p>Listelerin en \u00f6nemli \u00f6zelliklerinden biri, elemanlar\u0131na indeks (index) numaralar\u0131 arac\u0131l\u0131\u011f\u0131yla eri\u015febilmemizdir. \u0130ndeksler 0'dan ba\u015flar. Yani, <code>ogrenciler<\/code> listesindeki ilk elemana (<code>\"Ali\"<\/code>) ula\u015fmak i\u00e7in <code>ogrenciler[0]<\/code> yazar\u0131z. Benzer \u015fekilde, son elemana ula\u015fmak i\u00e7in negatif indeksleme kullanabiliriz; <code>ogrenciler[-1]<\/code> bize <code>\"Zeynep\"<\/code>'i verecektir.<\/p>\n<p>Listelerle yap\u0131labilecek temel i\u015flemler \u015funlard\u0131r:<\/p>\n<p>*   <strong>Eleman Ekleme<\/strong>: <code>append()<\/code> metodu listenin sonuna yeni bir eleman ekler. <code>insert(index, eleman)<\/code> metodu ise belirli bir indekse eleman eklememizi sa\u011flar.<\/p>\n<pre><code class=\"language-python\">ogrenciler.append(\"Can\")\n    print(ogrenciler) # \u00c7\u0131kt\u0131: ['Ali', 'Ay\u015fe', 'Mehmet', 'Zeynep', 'Can']\n    ogrenciler.insert(1, \"Elif\")\n    print(ogrenciler) # \u00c7\u0131kt\u0131: ['Ali', 'Elif', 'Ay\u015fe', 'Mehmet', 'Zeynep', 'Can']<\/pre>\n<p><\/code><br \/>\n*   <strong>Eleman Silme<\/strong>: <code>remove(eleman)<\/code> metodu belirtilen de\u011feri listeden siler (ilk kar\u015f\u0131la\u015ft\u0131\u011f\u0131 eleman\u0131). <code>pop()<\/code> metodu ise belirtilen indeksteki eleman\u0131 siler ve onu d\u00f6nd\u00fcr\u00fcr (varsay\u0131lan olarak son eleman\u0131 siler). <code>del liste[index]<\/code> ile de belirli bir indeksteki eleman\u0131 silebiliriz.<\/p>\n<pre><code class=\"language-python\">ogrenciler.remove(\"Mehmet\")\n    print(ogrenciler) # \u00c7\u0131kt\u0131: ['Ali', 'Elif', 'Ay\u015fe', 'Zeynep', 'Can']\n    silinen_ogrenci = ogrenciler.pop(2) # Ay\u015fe'yi siler\n    print(silinen_ogrenci) # \u00c7\u0131kt\u0131: Ay\u015fe\n    print(ogrenciler) # \u00c7\u0131kt\u0131: ['Ali', 'Elif', 'Zeynep', 'Can']\n    del ogrenciler[0] # Ali'yi siler\n    print(ogrenciler) # \u00c7\u0131kt\u0131: ['Elif', 'Zeynep', 'Can']<\/pre>\n<p><\/code><br \/>\n*   <strong>Listeleri Birle\u015ftirme<\/strong>: <code>+<\/code> operat\u00f6r\u00fc ile iki listeyi birle\u015ftirebiliriz.<\/p>\n<pre><code class=\"language-python\">yeni_ogrenciler = [\"Deniz\", \"Ece\"]\n    tum_ogrenciler = ogrenciler + yeni_ogrenciler\n    print(tum_ogrenciler) # \u00c7\u0131kt\u0131: ['Elif', 'Zeynep', 'Can', 'Deniz', 'Ece']<\/pre>\n<p><\/code><br \/>\n*   <strong>Dilimleme (Slicing)<\/strong>: Listenin belirli bir b\u00f6l\u00fcm\u00fcn\u00fc almak i\u00e7in dilimleme kullan\u0131l\u0131r. <code>liste[baslangic:bitis:adim]<\/code> \u015feklinde bir yap\u0131s\u0131 vard\u0131r. <code>baslangic<\/code> dahil, <code>bitis<\/code> hari\u00e7tir.<\/p>\n<pre><code class=\"language-python\">sayilar = [10, 25, 7, 42, 15, 30, 5, 20]\n    ilk_uc = sayilar[0:3] # veya sayilar[:3]\n    print(ilk_uc) # \u00c7\u0131kt\u0131: [10, 25, 7]\n    ortanca_bes = sayilar[2:7]\n    print(ortanca_bes) # \u00c7\u0131kt\u0131: [7, 42, 15, 30, 5]\n    her_ikinci = sayilar[::2] # Ba\u015ftan sona her ikinci eleman\u0131 al\u0131r\n    print(her_ikinci) # \u00c7\u0131kt\u0131: [10, 7, 15, 5]\n    ters_liste = sayilar[::-1] # Listeyi ters \u00e7evirir\n    print(ters_liste) # \u00c7\u0131kt\u0131: [20, 5, 30, 15, 42, 7, 25, 10]<\/pre>\n<p><\/code><br \/>\n*   <strong>Uzunluk Bulma<\/strong>: <code>len()<\/code> fonksiyonu listenin eleman say\u0131s\u0131n\u0131 verir.<\/p>\n<pre><code class=\"language-python\">print(len(ogrenciler)) # \u00c7\u0131kt\u0131: 3<\/pre>\n<p><\/code><br \/>\n*   <strong>S\u0131ralama<\/strong>: <code>sort()<\/code> metodu listeyi kendi i\u00e7inde s\u0131ralar. <code>sorted()<\/code> fonksiyonu ise orijinal listeyi de\u011fi\u015ftirmeden s\u0131ralanm\u0131\u015f yeni bir liste d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">sayilar.sort()\n    print(sayilar) # \u00c7\u0131kt\u0131: [5, 7, 10, 15, 20, 25, 30, 42]\n    sirali_ogrenciler = sorted(ogrenciler)\n    print(sirali_ogrenciler) # \u00c7\u0131kt\u0131: ['Can', 'Elif', 'Zeynep']<\/pre>\n<p><\/code><\/p>\n<p>Listeler, veri analizi, kullan\u0131c\u0131 girdilerini saklama, ayarlar\u0131n y\u00f6netimi gibi bir\u00e7ok alanda temel bir ara\u00e7t\u0131r. \u00d6rne\u011fin, bir e-ticaret sitesinde sepete eklenen \u00fcr\u00fcnleri bir liste i\u00e7inde saklayabilir, bir oyunun en y\u00fcksek skorlar\u0131n\u0131 bir liste ile takip edebiliriz.<\/p>\n<h3>Rastgelelik: \u015eans Fakt\u00f6r\u00fcn\u00fc Python'a Dahil Etmek<\/h3>\n<p>Python'\u0131n <code>random<\/code> mod\u00fcl\u00fc, rastgele say\u0131lar \u00fcretmek, rastgele se\u00e7imler yapmak ve dizileri kar\u0131\u015ft\u0131rmak gibi \u00e7e\u015fitli rastgelelik i\u015flemleri i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Bu mod\u00fcl, \u00f6zellikle sim\u00fclasyonlar, oyunlar, \u015fifreleme ve veri \u00f6rneklemesi gibi alanlarda kritik \u00f6neme sahiptir.<\/p>\n<p>Temel <code>random<\/code> mod\u00fcl\u00fc fonksiyonlar\u0131ndan baz\u0131lar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong><code>random.random()<\/code><\/strong>: 0.0 (dahil) ile 1.0 (hari\u00e7) aras\u0131nda rastgele bir ondal\u0131k say\u0131 \u00fcretir.<\/p>\n<pre><code class=\"language-python\">import random\n    rastgele_ondalik = random.random()\n    print(rastgele_ondalik) # \u00d6rne\u011fin: 0.783456789<\/pre>\n<p><\/code><br \/>\n*   <strong><code>random.randint(a, b)<\/code><\/strong>: <code>a<\/code> ve <code>b<\/code> (her ikisi de dahil) aras\u0131nda rastgele bir tam say\u0131 \u00fcretir.<\/p>\n<pre><code class=\"language-python\">rastgele_tam_sayi = random.randint(1, 100)\n    print(rastgele_tam_sayi) # \u00d6rne\u011fin: 47<\/pre>\n<p><\/code><br \/>\n*   <strong><code>random.uniform(a, b)<\/code><\/strong>: <code>a<\/code> ve <code>b<\/code> aras\u0131nda rastgele bir ondal\u0131k say\u0131 \u00fcretir. <code>a<\/code> ve <code>b<\/code>'nin dahil olup olmamas\u0131, yuvarlama hassasiyetine ba\u011fl\u0131 olabilir.<\/p>\n<pre><code class=\"language-python\">rastgele_gercek_sayi = random.uniform(10.5, 25.5)\n    print(rastgele_gercek_sayi) # \u00d6rne\u011fin: 18.2345678<\/pre>\n<p><\/code><br \/>\n*   <strong><code>random.choice(sequence)<\/code><\/strong>: Verilen bir diziden (liste, demet vb.) rastgele bir eleman se\u00e7er.<\/p>\n<pre><code class=\"language-python\">meyveler = [\"Elma\", \"Armut\", \"Muz\", \"\u00c7ilek\", \"Portakal\"]\n    rastgele_meyve = random.choice(meyveler)\n    print(rastgele_meyve) # \u00d6rne\u011fin: Muz<\/pre>\n<p><\/code><br \/>\n*   <strong><code>random.choices(sequence, k=n)<\/code><\/strong>: Verilen bir diziden rastgele <code>n<\/code> adet eleman se\u00e7er. Elemanlar tekrarl\u0131 se\u00e7ilebilir. <code>weights<\/code> parametresi ile olas\u0131l\u0131klar\u0131 belirleyebilirsiniz.<\/p>\n<pre><code class=\"language-python\">renkler = [\"K\u0131rm\u0131z\u0131\", \"Mavi\", \"Ye\u015fil\"]\n    rastgele_renkler = random.choices(renkler, k=5)\n    print(rastgele_renkler) # \u00d6rne\u011fin: ['Mavi', 'K\u0131rm\u0131z\u0131', 'Mavi', 'Ye\u015fil', 'K\u0131rm\u0131z\u0131']<\/pre>\n<p><\/code><br \/>\n*   <strong><code>random.sample(population, k)<\/code><\/strong>: Verilen bir pop\u00fclasyondan (liste, k\u00fcme vb.) rastgele <code>k<\/code> adet benzersiz eleman se\u00e7er. Tekrarl\u0131 se\u00e7im yapmaz.<\/p>\n<pre><code class=\"language-python\">sayilar_ornek = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n    rastgele_bes_benzersiz = random.sample(sayilar_ornek, k=5)\n    print(rastgele_bes_benzersiz) # \u00d6rne\u011fin: [7, 2, 10, 4, 1]<\/pre>\n<p><\/code><br \/>\n*   <strong><code>random.shuffle(x)<\/code><\/strong>: Verilen bir listeyi kendi i\u00e7inde rastgele kar\u0131\u015ft\u0131r\u0131r. Orijinal liste de\u011fi\u015ftirilir.<\/p>\n<pre><code class=\"language-python\">kartlar = [\"As\", \"Papaz\", \"K\u0131z\", \"Vale\", \"10\"]\n    random.shuffle(kartlar)\n    print(kartlar) # \u00d6rne\u011fin: ['K\u0131z', '10', 'As', 'Vale', 'Papaz']<\/pre>\n<p><\/code><\/p>\n<p>Bu fonksiyonlar, rastgelelik gerektiren her t\u00fcrl\u00fc senaryoda hayat kurtar\u0131c\u0131d\u0131r.<\/p>\n<h3>Vaka Analizi 1: Basit Bir Zar Oyunu Geli\u015ftirme<\/h3>\n<p>Diyelim ki, iki oyuncunun zar atarak yar\u0131\u015ft\u0131\u011f\u0131 basit bir oyun geli\u015ftirmek istiyoruz. Kim daha y\u00fcksek atarsa o kazan\u0131r. Bu oyunu Python'da <code>random<\/code> mod\u00fcl\u00fcn\u00fc kullanarak kolayca yapabiliriz.<\/p>\n<p>\u00d6ncelikle, her oyuncunun zar atma i\u015flemini sim\u00fcle etmeliyiz. Bir zar\u0131n 1 ile 6 aras\u0131nda rastgele bir say\u0131 \u00fcretti\u011fini biliyoruz.<\/p>\n<pre><code class=\"language-python\">import random\n\ndef zar_at():\n  \"\"\"1 ile 6 aras\u0131nda rastgele bir zar at\u0131\u015f\u0131 sonucu d\u00f6nd\u00fcr\u00fcr.\"\"\"\n  return random.randint(1, 6)\n\ndef oyun_baslat():\n  print(\"Zar Oyununa Ho\u015f Geldiniz!\")\n\n  oyuncu1_zar = zar_at()\n  oyuncu2_zar = zar_at()\n\n  print(f\"Oyuncu 1 zar att\u0131: {oyuncu1_zar}\")\n  print(f\"Oyuncu 2 zar att\u0131: {oyuncu2_zar}\")\n\n  if oyuncu1_zar > oyuncu2_zar:\n    print(\"Oyuncu 1 kazand\u0131!\")\n  elif oyuncu2_zar > oyuncu1_zar:\n    print(\"Oyuncu 2 kazand\u0131!\")\n  else:\n    print(\"Berabere!\")\n\noyun_baslat()<\/pre>\n<p><\/code><\/p>\n<p>Bu kod, her \u00e7al\u0131\u015ft\u0131rmada farkl\u0131 sonu\u00e7lar \u00fcretecek ve rastgeleli\u011fin oyunlara nas\u0131l e\u011flence katabilece\u011fini g\u00f6sterecektir. Oyunu daha da geli\u015ftirebilir, birden fazla tur ekleyebilir, puanlama sistemleri kurabiliriz. \u00d6rne\u011fin, oyuncular\u0131n isimlerini al\u0131p sonu\u00e7lar\u0131 daha ki\u015fisel hale getirebiliriz.<\/p>\n<pre><code class=\"language-python\">import random\n\ndef zar_at():\n  return random.randint(1, 6)\n\ndef oyun_baslat():\n  oyuncu1_adi = input(\"Oyuncu 1'in ad\u0131: \")\n  oyuncu2_adi = input(\"Oyuncu 2'nin ad\u0131: \")\n\n  print(f\"\\n{oyuncu1_adi} ve {oyuncu2_adi} zar at\u0131yor!\")\n\n  oyuncu1_zar = zar_at()\n  oyuncu2_zar = zar_at()\n\n  print(f\"{oyuncu1_adi} zar att\u0131: {oyuncu1_zar}\")\n  print(f\"{oyuncu2_adi} zar att\u0131: {oyuncu2_zar}\")\n\n  if oyuncu1_zar > oyuncu2_zar:\n    print(f\"{oyuncu1_adi} kazand\u0131!\")\n  elif oyuncu2_zar > oyuncu1_zar:\n    print(f\"{oyuncu2_adi} kazand\u0131!\")\n  else:\n    print(\"Berabere kald\u0131n\u0131z!\")\n\noyun_baslat()<\/pre>\n<p><\/code><\/p>\n<p>Bu basit \u00f6rnek, <code>random.randint<\/code> ve kullan\u0131c\u0131 girdisi almay\u0131 birle\u015ftirerek temel bir oyun mekani\u011fi olu\u015fturman\u0131n ne kadar kolay oldu\u011funu g\u00f6steriyor.<\/p>\n<h3>Vaka Analizi 2: Rastgele \u015eifre Olu\u015fturucu<\/h3>\n<p>G\u00fcvenlik a\u00e7\u0131s\u0131ndan g\u00fc\u00e7l\u00fc ve rastgele \u015fifreler olu\u015fturmak \u00f6nemlidir. Python ile bunu otomatikle\u015ftirebiliriz. Bir \u015fifre olu\u015fturucu, b\u00fcy\u00fck ve k\u00fc\u00e7\u00fck harfler, rakamlar ve \u00f6zel karakterlerden olu\u015fan bir havuzdan rastgele se\u00e7imler yaparak benzersiz ve tahmin edilmesi zor \u015fifreler \u00fcretebilir.<\/p>\n<pre><code class=\"language-python\">import random\nimport string\n\ndef rastgele_sifre_olustur(uzunluk=12):\n  \"\"\"Belirtilen uzunlukta rastgele bir \u015fifre olu\u015fturur.\"\"\"\n  karakterler = string.ascii_letters + string.digits + string.punctuation\n  # string.ascii_letters: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'\n  # string.digits: '0123456789'\n  # string.punctuation: '!\"#$%&\\'()*+,-.\/:;<=>?@[\\\\]^_<code>{|}~'\n\n  if uzunluk < 4:\n    print(\"\u015eifre uzunlu\u011fu en az 4 olmal\u0131d\u0131r.\")\n    return None\n\n  # \u015eifrenin en az bir b\u00fcy\u00fck harf, bir k\u00fc\u00e7\u00fck harf, bir rakam ve bir \u00f6zel karakter i\u00e7ermesini sa\u011flamak\n  sifre_listesi = []\n  sifre_listesi.append(random.choice(string.ascii_uppercase))\n  sifre_listesi.append(random.choice(string.ascii_lowercase))\n  sifre_listesi.append(random.choice(string.digits))\n  sifre_listesi.append(random.choice(string.punctuation))\n\n  # Kalan karakterleri rastgele doldur\n  for _ in range(uzunluk - 4):\n    sifre_listesi.append(random.choice(karakterler))\n\n  # Listeyi kar\u0131\u015ft\u0131rarak karakterlerin yerini rastgelele\u015ftir\n  random.shuffle(sifre_listesi)\n\n  # Listeyi birle\u015ftirerek \u015fifreyi string'e d\u00f6n\u00fc\u015ft\u00fcr\n  return \"\".join(sifre_listesi)\n\n# 16 karakterli rastgele bir \u015fifre olu\u015ftural\u0131m\nyeni_sifre = rastgele_sifre_olustur(16)\nif yeni_sifre:\n  print(f\"Olu\u015fturulan rastgele \u015fifre: {yeni_sifre}\")<\/code><\/pre>\n<p>Bu \u00f6rnekte<\/code>string<code>mod\u00fcl\u00fcnden faydaland\u0131k.<\/code>string.ascii_letters<code>,<\/code>string.digits<code>ve<\/code>string.punctuation<code>gibi sabitler, yayg\u0131n olarak kullan\u0131lan karakter k\u00fcmelerini kolayca elde etmemizi sa\u011flar. \u015eifrenin en az birer adet b\u00fcy\u00fck harf, k\u00fc\u00e7\u00fck harf, rakam ve \u00f6zel karakter i\u00e7ermesini sa\u011flamak i\u00e7in \u00f6nce bu karakterlerden birer tane ekleyip, ard\u0131ndan kalan uzunlu\u011fu rastgele karakterlerle tamamlad\u0131k. Son olarak<\/code>random.shuffle<code>ile karakterlerin s\u0131ras\u0131n\u0131 kar\u0131\u015ft\u0131rarak daha g\u00fcvenli bir \u015fifre elde ettik.<\/p>\n<h3>Listeleri ve Rastgeleli\u011fi Birlikte Kullanma<\/h3>\n<p>Listeler ve<\/code>random<code>mod\u00fcl\u00fc, birbirini tamamlayan g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Listeler veriyi yap\u0131land\u0131r\u0131rken,<\/code>random<code>mod\u00fcl\u00fc bu yap\u0131land\u0131r\u0131lm\u0131\u015f veriye dinamizm ve \u00f6ng\u00f6r\u00fclemezlik katar.<\/p>\n<p>\u00d6rne\u011fin, bir anket uygulamas\u0131nda rastgele sorular sormak isteyebiliriz. Sorular\u0131 bir listeye koyup, her seferinde listeden rastgele bir soru se\u00e7ebiliriz.<\/p>\n<pre><code class=\"language-python\">import random\n\nsorular = [\n  \"En sevdi\u011finiz renk nedir?\",\n  \"Hafta sonu en \u00e7ok ne yapmaktan ho\u015flan\u0131rs\u0131n\u0131z?\",\n  \"Python \u00f6\u011frenmek size ne hissettiriyor?\",\n  \"En son okudu\u011funuz kitap hangisiydi?\",\n  \"Hayalinizdeki tatil yeri neresi?\"\n]\n\ndef rastgele_soru_sor():\n  secilen_soru = random.choice(sorular)\n  print(f\"Soru: {secilen_soru}\")\n  cevap = input(\"Cevab\u0131n\u0131z: \")\n  print(f\"Te\u015fekk\u00fcrler, cevab\u0131n\u0131z kaydedildi: {cevap}\\n\")\n\n# Kullan\u0131c\u0131ya 5 farkl\u0131 rastgele soru soral\u0131m\nfor i in range(5):\n  rastgele_soru_sor()\n\n# E\u011fer ayn\u0131 sorunun tekrar sorulmas\u0131n\u0131 istemiyorsak,\n# sorular listesinden se\u00e7ilen soruyu \u00e7\u0131karabiliriz.\n# Ancak bu durumda sorular listesi zamanla k\u0131salacakt\u0131r.\n# Alternatif olarak, sorulan sorular\u0131 ayr\u0131 bir listede takip edebiliriz.\n\nsorulan_sorular = []\ndef rastgele_benzersiz_soru_sor(mevcut_sorular):\n    if not mevcut_sorular:\n        print(\"T\u00fcm sorular soruldu!\")\n        return None\n\n    secilen_soru = random.choice(mevcut_sorular)\n    print(f\"Soru: {secilen_soru}\")\n    cevap = input(\"Cevab\u0131n\u0131z: \")\n    print(f\"Te\u015fekk\u00fcrler, cevab\u0131n\u0131z kaydedildi: {cevap}\\n\")\n    return secilen_soru\n\n# Benzersiz soru sorma \u00f6rne\u011fi\nkalan_sorular = list(sorular) # Orijinal listeyi kopyal\u0131yoruz ki orijinali bozulmas\u0131n\nfor _ in range(len(sorular)): # T\u00fcm sorular sorulana kadar d\u00f6ng\u00fc\n    sorulan = rastgele_benzersiz_soru_sor(kalan_sorular)\n    if sorulan:\n        kalan_sorular.remove(sorulan)\n    else:\n        break<\/code><\/pre>\n<p>Bu \u00f6rnek,<\/code>random.choice<code>ile bir listeden rastgele eleman se\u00e7menin ne kadar basit oldu\u011funu g\u00f6steriyor. Ayr\u0131ca,<\/code>kalan_sorular<code>listesini kullanarak ayn\u0131 sorunun tekrar sorulmas\u0131n\u0131 engelleme mant\u0131\u011f\u0131n\u0131 da ekledik. Bu, veri setlerinden rastgele \u00f6rnekler \u00e7ekerken veya bir testteki sorular\u0131 rastgele s\u0131ralarken s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan bir durumdur.<\/p>\n<h3>Veri Analizi ve Manip\u00fclasyonunda Listeler<\/h3>\n<p>Ger\u00e7ek d\u00fcnya veri analizi senaryolar\u0131nda, veriler genellikle listeler (veya daha karma\u015f\u0131k veri yap\u0131lar\u0131 olan DataFrame'ler) halinde gelir. Bu verileri i\u015flemek, filtrelemek, s\u0131ralamak ve \u00f6zetlemek i\u00e7in listeler ve listeler \u00fczerinde \u00e7al\u0131\u015fan fonksiyonlar kullan\u0131l\u0131r.<\/p>\n<p>\u00d6rne\u011fin, bir \u015firketin ayl\u0131k sat\u0131\u015flar\u0131n\u0131 tutan bir listemiz oldu\u011funu varsayal\u0131m:<\/p>\n<pre><code class=\"language-python\">aylik_satislar = [15000, 18000, 22000, 20000, 25000, 23000, 28000, 30000, 29000, 32000, 35000, 33000]\n\n# Ortalama sat\u0131\u015f\u0131 hesaplama\ntoplam_satis = sum(aylik_satislar)\nay_sayisi = len(aylik_satislar)\nortalama_satis = toplam_satis \/ ay_sayisi\nprint(f\"Y\u0131ll\u0131k Ortalama Sat\u0131\u015f: {ortalama_satis:.2f} TL\")\n\n# En y\u00fcksek ve en d\u00fc\u015f\u00fck sat\u0131\u015flar\u0131 bulma\nen_yuksek_satis = max(aylik_satislar)\nen_dusuk_satis = min(aylik_satislar)\nprint(f\"En Y\u00fcksek Ayl\u0131k Sat\u0131\u015f: {en_yuksek_satis} TL\")\nprint(f\"En D\u00fc\u015f\u00fck Ayl\u0131k Sat\u0131\u015f: {en_dusuk_satis} TL\")\n\n# Belirli bir sat\u0131\u015f\u0131n (\u00f6rne\u011fin 25000 TL) ka\u00e7\u0131nc\u0131 ayda ger\u00e7ekle\u015fti\u011fini bulma\ntry:\n    ay_index = aylik_satislar.index(25000)\n    print(f\"25000 TL'lik sat\u0131\u015f {ay_index + 1}. ayda ger\u00e7ekle\u015fmi\u015ftir.\") # Index 0'dan ba\u015flad\u0131\u011f\u0131 i\u00e7in +1 ekliyoruz\nexcept ValueError:\n    print(\"25000 TL'lik sat\u0131\u015f bulunamad\u0131.\")\n\n# Sat\u0131\u015flar\u0131 azalan s\u0131rada s\u0131ralama\naylik_satislar.sort(reverse=True)\nprint(f\"Ayl\u0131k Sat\u0131\u015flar (Azalan S\u0131ra): {aylik_satislar}\")<\/code><\/pre>\n<p>Bu \u00f6rnek,<\/code>sum()<code>,<\/code>len()<code>,<\/code>max()<code>,<\/code>min()<code>gibi yerle\u015fik Python fonksiyonlar\u0131n\u0131n ve listelerin<\/code>index()<code>,<\/code>sort()<code>gibi metotlar\u0131n\u0131n veri analizi i\u00e7in ne kadar g\u00fc\u00e7l\u00fc oldu\u011funu g\u00f6steriyor. Ayr\u0131ca,<\/code>try-except<code>blo\u011fu ile<\/code>index()<code>metodunun eleman bulunamad\u0131\u011f\u0131nda<\/code>ValueError<code>hatas\u0131 verme durumunu ele ald\u0131k.<\/p>\n<h3>\u0130leri D\u00fczey: List Comprehensions ve Rastgelelik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Deneyimli Python kullan\u0131c\u0131lar\u0131 i\u00e7in, list comprehension'lar listelerle \u00e7al\u0131\u015fmay\u0131 daha verimli ve okunabilir hale getirir. Bu s\u00f6z dizimi, d\u00f6ng\u00fcler ve<\/code>append<code>metotlar\u0131 yerine tek bir sat\u0131rda liste olu\u015fturmay\u0131 sa\u011flar.<\/p>\n<p>\u00d6rne\u011fin, 1'den 10'a kadar olan say\u0131lar\u0131n karelerini i\u00e7eren bir liste olu\u015fturmak i\u00e7in:<\/p>\n<p><strong>Klasik Y\u00f6ntem:<\/strong><\/p>\n<pre><code class=\"language-python\">kareler = []\nfor i in range(1, 11):\n  kareler.append(i**2)\nprint(kareler) # \u00c7\u0131kt\u0131: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]<\/code><\/pre>\n<p><strong>List Comprehension ile:<\/strong><\/p>\n<pre><code class=\"language-python\">kareler_lc = [i**2 for i in range(1, 11)]\nprint(kareler_lc) # \u00c7\u0131kt\u0131: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]<\/code><\/pre>\n<p>List comprehension'lar, ko\u015fullu ifadelerle de kullan\u0131labilir:<\/p>\n<pre><code class=\"language-python\"># Sadece \u00e7ift say\u0131lar\u0131n karelerini alal\u0131m\ncift_kareler = [i**2 for i in range(1, 11) if i % 2 == 0]\nprint(cift_kareler) # \u00c7\u0131kt\u0131: [4, 16, 36, 64, 100]<\/code><\/pre>\n<p>Rastgelelik konusunda ise baz\u0131 \u00f6nemli noktalar vard\u0131r:<\/p>\n<p>*   <strong>Rastgelelik Tohumu (Seed)<\/strong>:<\/code>random.seed(a)<code>fonksiyonu, rastgele say\u0131 \u00fcretecinin ba\u015flang\u0131\u00e7 noktas\u0131n\u0131 belirler. Ayn\u0131 tohum de\u011feriyle ba\u015flat\u0131lan rastgele say\u0131 dizileri her zaman ayn\u0131 olacakt\u0131r. Bu, testlerde veya hata ay\u0131klama s\u00fcre\u00e7lerinde tekrarlanabilir sonu\u00e7lar elde etmek i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">import random\n\n    random.seed(42) # Tohumu belirle\n    print(random.randint(1, 100)) # Her zaman ayn\u0131 say\u0131y\u0131 \u00fcretir (\u00f6rn: 82)\n    print(random.randint(1, 100)) # Her zaman ayn\u0131 say\u0131y\u0131 \u00fcretir (\u00f6rn: 14)\n\n    random.seed(42) # Ayn\u0131 tohumu tekrar ayarla\n    print(random.randint(1, 100)) # Yine 82 \u00fcretir<\/code><\/pre>\n<p>*   <strong>Kriptografik G\u00fcvenlik<\/strong>:<\/code>random<code>mod\u00fcl\u00fc genel ama\u00e7l\u0131 rastgelelik i\u00e7in uygundur ancak y\u00fcksek g\u00fcvenlik gerektiren kriptografik uygulamalar i\u00e7in<\/code>secrets<code>mod\u00fcl\u00fcn\u00fc kullanmak daha do\u011frudur.<\/code>secrets<code>mod\u00fcl\u00fc, i\u015fletim sisteminin g\u00fcvenli rastgele kaynaklar\u0131n\u0131 kullanarak daha g\u00fcvenli rastgele say\u0131lar \u00fcretir.<\/p>\n<pre><code class=\"language-python\">import secrets\n\n    guvenli_rastgele_sayi = secrets.randbelow(100) # 0 ile 99 aras\u0131nda g\u00fcvenli rastgele say\u0131\n    print(guvenli_rastgele_sayi)\n\n    guvenli_token = secrets.token_hex(16) # 16 byte'l\u0131k g\u00fcvenli hex token\n    print(guvenli_token)<\/code><\/pre>\n<h3>Sonu\u00e7<\/h3>\n<p>Python'da listeler, verileri d\u00fczenlemek, saklamak ve i\u015flemek i\u00e7in temel ve \u00e7ok y\u00f6nl\u00fc bir veri yap\u0131s\u0131d\u0131r.<\/code>random<code>mod\u00fcl\u00fc ise bu listelere ve genel olarak programlar\u0131n\u0131za rastgelelik, dinamizm ve \u00f6ng\u00f6r\u00fclemezlik katman\u0131n en etkili yoludur. Basit bir zar oyunundan karma\u015f\u0131k veri analizi g\u00f6revlerine kadar, bu iki konsepti iyi anlamak, daha g\u00fc\u00e7l\u00fc ve ilgi \u00e7ekici Python uygulamalar\u0131 geli\u015ftirmenizi sa\u011flayacakt\u0131r. List comprehension'lar gibi ileri d\u00fczey teknikler, kodunuzu daha verimli hale getirirken, rastgelelik tohumu gibi kavramlar test ve hata ay\u0131klama s\u00fcre\u00e7lerinizde size yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>*   <strong>Python'da liste ile dizi (array) aras\u0131ndaki fark nedir?<\/strong><br \/>\n    Python'da \"dizi\" terimi genellikle<\/code>array<code>mod\u00fcl\u00fcndeki veri yap\u0131lar\u0131 veya NumPy k\u00fct\u00fcphanesindeki diziler i\u00e7in kullan\u0131l\u0131r. Standart Python listeleri daha esnektir; farkl\u0131 veri tiplerini bar\u0131nd\u0131rabilirler ve boyutlar\u0131 dinamik olarak de\u011fi\u015febilir.<\/code>array<code>mod\u00fcl\u00fcndeki diziler ise yaln\u0131zca tek bir veri tipini bar\u0131nd\u0131r\u0131r ve daha haf\u0131za verimlidir. NumPy dizileri ise say\u0131sal hesaplamalar i\u00e7in optimize edilmi\u015ftir.<br \/>\n*   <strong><\/code>random.shuffle()<code>neden orijinal listeyi de\u011fi\u015ftirir?<\/strong><\/code>random.shuffle()<code>fonksiyonu, bir listeyi \"yerinde\" (in-place) kar\u0131\u015ft\u0131r\u0131r. Bu, orijinal listenin kendisinin de\u011fi\u015ftirildi\u011fi anlam\u0131na gelir. E\u011fer orijinal listeyi korumak istiyorsan\u0131z, \u00f6nce listenin bir kopyas\u0131n\u0131 olu\u015fturup sonra bu kopya \u00fczerinde<\/code>shuffle<code>i\u015flemini yapmal\u0131s\u0131n\u0131z. \u00d6rne\u011fin:<\/code>karistirilmismis_liste = list(orijinal_liste); random.shuffle(karistirilmismis_liste)<code>.<br \/>\n*   <strong><\/code>random.sample()<code>ve<\/code>random.choices()<code>aras\u0131ndaki temel fark nedir?<\/strong><\/code>random.sample(population, k)<code>metodu,<\/code>population<code>'dan<\/code>k<code>adet *benzersiz* eleman se\u00e7er. Yani, se\u00e7ilen elemanlar tekrar etmez.<\/code>random.choices(population, k=n)<code>metodu ise<\/code>population<code>'dan<\/code>n<code>adet eleman se\u00e7er ve bu se\u00e7imler *tekrarl\u0131* olabilir. Ayr\u0131ca<\/code>choices<code>metodu,<\/code>weights<code>parametresi ile her eleman\u0131n se\u00e7ilme olas\u0131l\u0131\u011f\u0131n\u0131 belirlemenize olanak tan\u0131r.<br \/>\n*   <strong>Rastgele \u015fifre olu\u015ftururken neden<\/code>secrets<code>mod\u00fcl\u00fc daha iyidir?<\/strong><br \/>\n    Standart<\/code>random<code>mod\u00fcl\u00fc, tahmin edilebilir rastgelelik algoritmalar\u0131 kullan\u0131r ve genellikle sim\u00fclasyonlar veya oyunlar gibi genel ama\u00e7l\u0131 rastgelelik gerektiren durumlar i\u00e7in yeterlidir. Ancak, parola \u00fcretimi, g\u00fcvenlik token'lar\u0131 veya kriptografik anahtarlar gibi y\u00fcksek g\u00fcvenlik gerektiren durumlar i\u00e7in<\/code>secrets<code>mod\u00fcl\u00fc, i\u015fletim sisteminin sa\u011flad\u0131\u011f\u0131 daha g\u00fcvenli ve tahmin edilemez rastgele kaynaklar\u0131 kullan\u0131r. Bu nedenle, g\u00fcvenlik a\u00e7\u0131s\u0131ndan kritik uygulamalarda<\/code>secrets` mod\u00fcl\u00fc tercih edilmelidir.<br \/>\n*   <strong>Listeleri kullanarak b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015fmak performans sorunlar\u0131na yol a\u00e7ar m\u0131?<\/strong><br \/>\n    Evet, \u00e7ok b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken standart Python listeleri performans darbo\u011fazlar\u0131na neden olabilir. Bunun birka\u00e7 nedeni vard\u0131r: dinamik boyutland\u0131rma, farkl\u0131 veri tiplerini destekleme ve bellek y\u00f6netimi. \u00c7ok b\u00fcy\u00fck veri setleri i\u00e7in NumPy dizileri veya Pandas DataFrame'leri gibi daha optimize edilmi\u015f veri yap\u0131lar\u0131 kullanmak genellikle daha iyi performans sa\u011flar. Ancak, orta \u00f6l\u00e7ekli veri setleri veya belirli veri i\u015fleme g\u00f6revleri i\u00e7in listeler hala olduk\u00e7a etkilidir.<\/p>\n<p>#Python #Listeler #Rastgelelik #VeriYap\u0131lar\u0131 #Programlama #WebGeli\u015ftirme<\/p>\n","protected":false},"excerpt":{"rendered":"Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme Python&#8217;da veri y\u00f6netimi ve dinamik uygulamalar geli\u015ftirmenin temel ta\u015flar\u0131ndan ikisi olan listeler ve rastgelelik mod\u00fcl\u00fc, programc\u0131lar\u0131n i\u015f ak\u0131\u015f\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-41709","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python&#039;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python&#039;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme\" \/>\n<meta property=\"og:description\" content=\"Python&#039;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme Python&#039;da veri y\u00f6netimi ve dinamik uygulamalar geli\u015ftirmenin temel ta\u015flar\u0131ndan ikisi olan listeler ve rastgelelik mod\u00fcl\u00fc, programc\u0131lar\u0131n i\u015f ak\u0131\u015f\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-11T18:01:52+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme\",\"datePublished\":\"2026-05-11T18:01:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\"},\"wordCount\":1008,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\",\"name\":\"Python'da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-05-11T18:01:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python'da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/","og_locale":"tr_TR","og_type":"article","og_title":"Python'da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme","og_description":"Python'da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme Python'da veri y\u00f6netimi ve dinamik uygulamalar geli\u015ftirmenin temel ta\u015flar\u0131ndan ikisi olan listeler ve rastgelelik mod\u00fcl\u00fc, programc\u0131lar\u0131n i\u015f ak\u0131\u015f\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-05-11T18:01:52+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme","datePublished":"2026-05-11T18:01:52+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/"},"wordCount":1008,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/","url":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/","name":"Python'da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-05-11T18:01:52+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/pythonda-listeler-ve-rastgelelik-veri-yonetimi-ve-oyun-gelistirme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python&#8217;da Listeler ve Rastgelelik: Veri Y\u00f6netimi ve Oyun Geli\u015ftirme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=41709"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41709\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=41709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=41709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=41709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}