{"id":36670,"date":"2025-12-21T12:40:52","date_gmt":"2025-12-21T09:40:52","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36670"},"modified":"2025-12-21T12:40:52","modified_gmt":"2025-12-21T09:40:52","slug":"python-3te-veri-tipleri-nasil-donusturulur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/","title":{"rendered":"Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?"},"content":{"rendered":"<p><body><\/p>\n<h2>Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>Python, dinamik tipli bir programlama dilidir. Bu, de\u011fi\u015fkenlerin tan\u0131mlan\u0131rken belirli bir veri tipine sahip olmak zorunda olmad\u0131\u011f\u0131, tipin de\u011fer atamas\u0131 s\u0131ras\u0131nda otomatik olarak belirlendi\u011fi anlam\u0131na gelir. Ancak, \u00e7o\u011fu zaman bir veri tipini ba\u015fka bir veri tipine d\u00f6n\u00fc\u015ft\u00fcrme ihtiyac\u0131 duyar\u0131z. Bu i\u015flem, &#8220;veri tipi d\u00f6n\u00fc\u015ft\u00fcrme&#8221; veya &#8220;tip d\u00f6n\u00fc\u015ft\u00fcrme&#8221; (type casting) olarak bilinir. Python 3, bu d\u00f6n\u00fc\u015f\u00fcmleri kolayla\u015ft\u0131ran g\u00fc\u00e7l\u00fc ve esnek mekanizmalar sunar.<\/p>\n<p>Bu makale, Python 3&#8217;teki veri tipi d\u00f6n\u00fc\u015f\u00fcmlerinin neden gerekli oldu\u011funu, nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131, temelden ileri seviyeye kadar farkl\u0131 senaryolar\u0131 ve kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlar\u0131 detayl\u0131 bir \u015fekilde ele alacakt\u0131r. Say\u0131sal tiplerden string&#8217;e, string&#8217;den say\u0131sala, koleksiyon tipleri aras\u0131 d\u00f6n\u00fc\u015f\u00fcmlerden bytes ve bytearray gibi daha \u00f6zel d\u00f6n\u00fc\u015f\u00fcmlere kadar geni\u015f bir yelpazeyi kapsayaca\u011f\u0131z. Amac\u0131m\u0131z, Python&#8217;da veri tipi d\u00f6n\u00fc\u015f\u00fcmlerini tam anlam\u0131yla anlaman\u0131z\u0131 ve projelerinizde etkin bir \u015fekilde kullanman\u0131z\u0131 sa\u011flamakt\u0131r.<\/p>\n<h2>Neden Veri Tipi D\u00f6n\u00fc\u015f\u00fcm\u00fcne \u0130htiya\u00e7 Duyar\u0131z?<\/h2>\n<p>Veri tipi d\u00f6n\u00fc\u015f\u00fcm\u00fc, programlaman\u0131n temel ta\u015flar\u0131ndan biridir ve bir\u00e7ok farkl\u0131 senaryoda hayati bir rol oynar. \u0130\u015fte ba\u015fl\u0131ca nedenler:<\/p>\n<h3>Veri Uyumlulu\u011fu ve \u0130\u015flemler<\/h3>\n<p>\u00c7o\u011fu programlama dilinde oldu\u011fu gibi, Python&#8217;da da belirli i\u015flemlerin ger\u00e7ekle\u015ftirilebilmesi i\u00e7in verilerin uyumlu tiplerde olmas\u0131 gerekir. \u00d6rne\u011fin, bir string ile bir say\u0131y\u0131 do\u011frudan toplayamazs\u0131n\u0131z. Bu durumda, ya say\u0131y\u0131 string&#8217;e ya da string&#8217;i say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmeniz gerekir. Matematiksel i\u015flemler genellikle say\u0131sal tipler gerektirirken, metin birle\u015ftirme i\u015flemleri (concatenation) string tipler gerektirir.<\/p>\n<pre><code class=\"language-python\">sayi = 10\nmetin = \"merhaba\"\n\n<h2>Hata verecektir: TypeError: unsupported operand type(s) for +: 'int' and 'str'<\/h2>\n<h2>sonuc = sayi + metin<\/h2>\n\n<h2>D\u00f6n\u00fc\u015f\u00fcm ile do\u011fru i\u015flem:<\/h2>\nsonuc_str = str(sayi) + metin # \"10merhaba\"\nsonuc_int = sayi + int(\"5\")  # 15\nprint(sonuc_str)\nprint(sonuc_int)<\/code><\/pre>\n<h3>Kullan\u0131c\u0131 Girdisi Y\u00f6netimi<\/h3>\n<p>Python&#8217;daki <code>input()<\/code> fonksiyonu, kullan\u0131c\u0131dan al\u0131nan t\u00fcm girdileri varsay\u0131lan olarak string tipinde d\u00f6nd\u00fcr\u00fcr. E\u011fer kullan\u0131c\u0131dan say\u0131sal bir de\u011fer al\u0131p bununla matematiksel i\u015flemler yapmak istiyorsak, bu string girdiyi say\u0131sal bir tipe (int veya float) d\u00f6n\u00fc\u015ft\u00fcrmemiz gerekir.<\/p>\n<pre><code class=\"language-python\">kullanici_yasi_str = input(\"Ya\u015f\u0131n\u0131z\u0131 giriniz: \") # '30' gibi bir string\n<h2>print(kullanici_yasi_str + 5) # Hata: string ve int toplanamaz<\/h2>\n\nkullanici_yasi_int = int(kullanici_yasi_str) # '30' -> 30 (integer)\nprint(f\"Gelecek y\u0131l ya\u015f\u0131n\u0131z: {kullanici_yasi_int + 1}\")<\/code><\/pre>\n<h3>Veri Yap\u0131lar\u0131 Aras\u0131 Ge\u00e7i\u015f<\/h3>\n<p>Bazen bir veri koleksiyonunu (\u00f6rne\u011fin bir liste) farkl\u0131 bir veri yap\u0131s\u0131na (\u00f6rne\u011fin bir tuple veya set) d\u00f6n\u00fc\u015ft\u00fcrmek isteyebiliriz. Her veri yap\u0131s\u0131n\u0131n kendine \u00f6zg\u00fc \u00f6zellikleri ve kullan\u0131m alanlar\u0131 vard\u0131r. \u00d6rne\u011fin, bir liste de\u011fi\u015ftirilebilirken (mutable), bir tuple de\u011fi\u015ftirilemez (immutable) ve bir set yaln\u0131zca benzersiz elemanlar i\u00e7erir. Bu yap\u0131lar aras\u0131nda ge\u00e7i\u015f yapmak, belirli algoritmalar\u0131 uygulamak veya veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in \u00f6nemlidir.<\/p>\n<pre><code class=\"language-python\">liste = [1, 2, 2, 3, 4]\ntuple_veri = tuple(liste) # (1, 2, 2, 3, 4)\nset_veri = set(liste)     # {1, 2, 3, 4} (benzersiz elemanlar)\n\nprint(f\"Liste: {liste}\")\nprint(f\"Tuple: {tuple_veri}\")\nprint(f\"Set: {set_veri}\")<\/code><\/pre>\n<h2>Python&#8217;da Veri Tipi D\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fcn Temelleri<\/h2>\n<p>Python&#8217;da veri tipi d\u00f6n\u00fc\u015f\u00fcmleri iki ana kategoriye ayr\u0131l\u0131r: \u00f6rt\u00fcl\u00fc (implicit) ve a\u00e7\u0131k (explicit) d\u00f6n\u00fc\u015f\u00fcmler.<\/p>\n<h3>\u00d6rt\u00fcl\u00fc (Implicit) D\u00f6n\u00fc\u015f\u00fcm<\/h3>\n<p>\u00d6rt\u00fcl\u00fc d\u00f6n\u00fc\u015f\u00fcm, Python yorumlay\u0131c\u0131s\u0131n\u0131n otomatik olarak, programc\u0131dan a\u00e7\u0131k bir m\u00fcdahale olmaks\u0131z\u0131n ger\u00e7ekle\u015ftirdi\u011fi d\u00f6n\u00fc\u015f\u00fcmlerdir. Bu t\u00fcr d\u00f6n\u00fc\u015f\u00fcmler genellikle daha k\u00fc\u00e7\u00fck veri tiplerini daha b\u00fcy\u00fck veri tiplerine d\u00f6n\u00fc\u015ft\u00fcrerek veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in yap\u0131l\u0131r. \u00d6rne\u011fin, bir tam say\u0131 (int) ile bir ondal\u0131kl\u0131 say\u0131 (float) aras\u0131nda i\u015flem yap\u0131ld\u0131\u011f\u0131nda, tam say\u0131 otomatik olarak ondal\u0131kl\u0131 say\u0131ya d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr.<\/p>\n<pre><code class=\"language-python\">sayi_int = 10     # int\nsayi_float = 5.5  # float\n\nsonuc = sayi_int + sayi_float\nprint(f\"Sonu\u00e7: {sonuc}\")\nprint(f\"Sonucun tipi: {type(sonuc)}\") # <class 'float'><\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte, <code>sayi_int<\/code> otomatik olarak <code>10.0<\/code> gibi bir float&#8217;a d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f ve ard\u0131ndan <code>sayi_float<\/code> ile toplanm\u0131\u015ft\u0131r. Bu, veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in tasarlanm\u0131\u015ft\u0131r, \u00e7\u00fcnk\u00fc bir float&#8217;\u0131 int&#8217;e d\u00f6n\u00fc\u015ft\u00fcrmek ondal\u0131k k\u0131sm\u0131n kayb\u0131na neden olabilir.<\/p>\n<p>Ancak, Python&#8217;da \u00f6rt\u00fcl\u00fc d\u00f6n\u00fc\u015f\u00fcmler di\u011fer baz\u0131 dillere g\u00f6re daha s\u0131n\u0131rl\u0131d\u0131r. \u00d6rne\u011fin, bir int ile bir string&#8217;i do\u011frudan toplayamazs\u0131n\u0131z; bu bir <code>TypeError<\/code> ile sonu\u00e7lan\u0131r. Bu durum, Python&#8217;\u0131n tip g\u00fcvenli\u011fine verdi\u011fi \u00f6nemi g\u00f6sterir.<\/p>\n<h3>A\u00e7\u0131k (Explicit) D\u00f6n\u00fc\u015f\u00fcm (Type Casting)<\/h3>\n<p>A\u00e7\u0131k d\u00f6n\u00fc\u015f\u00fcm, programc\u0131n\u0131n belirli bir veri tipini ba\u015fka bir tipe d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in a\u00e7\u0131k\u00e7a bir fonksiyon \u00e7a\u011f\u0131rd\u0131\u011f\u0131 durumdur. Bu, en s\u0131k kar\u015f\u0131la\u015f\u0131lan ve kullan\u0131lan d\u00f6n\u00fc\u015f\u00fcm t\u00fcr\u00fcd\u00fcr. Python, temel veri tipleri i\u00e7in yerle\u015fik (built-in) d\u00f6n\u00fc\u015ft\u00fcrme fonksiyonlar\u0131 sa\u011flar: <code>int()<\/code>, <code>float()<\/code>, <code>str()<\/code>, <code>bool()<\/code>, <code>list()<\/code>, <code>tuple()<\/code>, <code>set()<\/code>, <code>dict()<\/code>, <code>bytes()<\/code>, <code>bytearray()<\/code>.<\/p>\n<p>A\u00e7\u0131k d\u00f6n\u00fc\u015f\u00fcmlerde, veri kayb\u0131 veya hata olas\u0131l\u0131\u011f\u0131 programc\u0131n\u0131n sorumlulu\u011fundad\u0131r. \u00d6rne\u011fin, bir float&#8217;\u0131 int&#8217;e d\u00f6n\u00fc\u015ft\u00fcr\u00fcrken ondal\u0131k k\u0131s\u0131m at\u0131l\u0131r. Ge\u00e7ersiz bir string&#8217;i say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmeye \u00e7al\u0131\u015fmak ise bir <code>ValueError<\/code> ile sonu\u00e7lan\u0131r.<\/p>\n<pre><code class=\"language-python\">sayi_float = 10.7\nsayi_int = int(sayi_float) # 10 (ondal\u0131k k\u0131s\u0131m at\u0131l\u0131r)\nprint(f\"Float'tan int'e: {sayi_int}\")\n\nmetin_sayi = \"123\"\ngercek_sayi = int(metin_sayi) # 123\nprint(f\"String'ten int'e: {gercek_sayi}\")\n\nmetin_gecersiz = \"abc\"\n<h2>gecersiz_sayi = int(metin_gecersiz) # ValueError: invalid literal for int() with base 10: 'abc'<\/code><\/pre>\n<\/h2>\n<h2>Temel Say\u0131sal Tipler Aras\u0131 D\u00f6n\u00fc\u015f\u00fcmler<\/h2>\n<p>Python&#8217;da ba\u015fl\u0131ca say\u0131sal tipler <code>int<\/code> (tam say\u0131), <code>float<\/code> (ondal\u0131kl\u0131 say\u0131) ve <code>complex<\/code> (karma\u015f\u0131k say\u0131)&#8217;d\u0131r. Bu tipler aras\u0131nda d\u00f6n\u00fc\u015f\u00fcmler s\u0131k\u00e7a kullan\u0131l\u0131r.<\/p>\n<h3><code>int()<\/code> Fonksiyonu<\/h3>\n<p><code>int()<\/code> fonksiyonu, bir de\u011feri tam say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Float&#8217;tan int&#8217;e:<\/strong> Ondal\u0131k k\u0131sm\u0131 atar (yuvarlama yapmaz).<br \/>\n*   <strong>String&#8217;ten int&#8217;e:<\/strong> String&#8217;in ge\u00e7erli bir tam say\u0131 temsili olmas\u0131 gerekir. Bo\u015fluklar ba\u015ftan ve sondan temizlenir.<br \/>\n*   <strong>Boolean&#8217;dan int&#8217;e:<\/strong> <code>True<\/code> 1&#8217;e, <code>False<\/code> 0&#8217;a d\u00f6n\u00fc\u015f\u00fcr.<\/p>\n<pre><code class=\"language-python\"># Float'tan int'e\nprint(int(3.14))    # 3\nprint(int(-2.7))    # -2\n\n<h2>String'ten int'e<\/h2>\nprint(int(\"123\"))   # 123\nprint(int(\"-45\"))   # -45\nprint(int(\"   200   \")) # 200\n<h2>print(int(\"12.3\")) # ValueError: invalid literal for int()<\/h2>\n<h2>print(int(\"on\"))  # ValueError: invalid literal for int()<\/h2>\n\n<h2>Boolean'dan int'e<\/h2>\nprint(int(True))    # 1\nprint(int(False))   # 0<\/code><\/pre>\n<p><code>int()<\/code> fonksiyonu ayr\u0131ca ikinci bir arg\u00fcman olarak taban (base) de\u011feri alabilir, bu da farkl\u0131 say\u0131 sistemlerindeki (binary, octal, hexadecimal) string&#8217;leri tam say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(int(\"101\", 2))  # Binary (ikili) \"101\" -> 5\nprint(int(\"12\", 8))   # Octal (sekizli) \"12\" -> 10\nprint(int(\"A\", 16))   # Hexadecimal (onalt\u0131l\u0131) \"A\" -> 10<\/code><\/pre>\n<h3><code>float()<\/code> Fonksiyonu<\/h3>\n<p><code>float()<\/code> fonksiyonu, bir de\u011feri ondal\u0131kl\u0131 say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Int&#8217;ten float&#8217;a:<\/strong> Tam say\u0131n\u0131n sonuna <code>.0<\/code> ekler.<br \/>\n*   <strong>String&#8217;ten float&#8217;a:<\/strong> String&#8217;in ge\u00e7erli bir ondal\u0131kl\u0131 say\u0131 temsili olmas\u0131 gerekir.<br \/>\n*   <strong>Boolean&#8217;dan float&#8217;a:<\/strong> <code>True<\/code> 1.0&#8217;a, <code>False<\/code> 0.0&#8217;a d\u00f6n\u00fc\u015f\u00fcr.<\/p>\n<pre><code class=\"language-python\"># Int'ten float'a\nprint(float(10))    # 10.0\nprint(float(-5))    # -5.0\n\n<h2>String'ten float'a<\/h2>\nprint(float(\"3.14\"))  # 3.14\nprint(float(\"-0.5\"))  # -0.5\nprint(float(\"1e-3\"))  # 0.001 (bilimsel g\u00f6sterim)\nprint(float(\"   100.0   \")) # 100.0\n<h2>print(float(\"abc\")) # ValueError: could not convert string to float<\/h2>\n\n<h2>Boolean'dan float'a<\/h2>\nprint(float(True))  # 1.0\nprint(float(False)) # 0.0<\/code><\/pre>\n<h3><code>complex()<\/code> Fonksiyonu<\/h3>\n<p><code>complex()<\/code> fonksiyonu, bir de\u011feri karma\u015f\u0131k say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131l\u0131r. Karma\u015f\u0131k say\u0131lar, bir reel (ger\u00e7ek) ve bir imajiner (sanal) k\u0131s\u0131mdan olu\u015fur (a + bj \u015feklinde).<br \/>\n*   Tek arg\u00fcmanla \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda: Arg\u00fcman reel k\u0131s\u0131m olur, imajiner k\u0131s\u0131m 0&#8217;d\u0131r.<br \/>\n*   \u0130ki arg\u00fcmanla \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda: \u0130lk arg\u00fcman reel k\u0131s\u0131m, ikincisi imajiner k\u0131s\u0131m olur.<\/p>\n<pre><code class=\"language-python\"># Tek arg\u00fcman (reel k\u0131s\u0131m)\nprint(complex(5))       # (5+0j)\nprint(complex(3.14))    # (3.14+0j)\nprint(complex(\"2.5\"))   # (2.5+0j)\n\n<h2>\u0130ki arg\u00fcman (reel ve imajiner k\u0131s\u0131m)<\/h2>\nprint(complex(5, 2))    # (5+2j)\nprint(complex(2.5, -1.0)) # (2.5-1j)\n\n<h2>String'ten karma\u015f\u0131k say\u0131ya<\/h2>\nprint(complex(\"3+4j\"))  # (3+4j)\nprint(complex(\"-2-j\"))  # (-2-1j) (j tek ba\u015f\u0131na -1j anlam\u0131na gelir)<\/code><\/pre>\n<h2>String ve Say\u0131sal Tipler Aras\u0131 D\u00f6n\u00fc\u015f\u00fcmler<\/h2>\n<p>Bu d\u00f6n\u00fc\u015f\u00fcmler, kullan\u0131c\u0131 etkile\u015fimi ve dosya i\u015flemleri gibi durumlarda olduk\u00e7a yayg\u0131nd\u0131r.<\/p>\n<h3>Say\u0131sal Tiplerden String&#8217;e: <code>str()<\/code><\/h3>\n<p><code>str()<\/code> fonksiyonu, herhangi bir Python nesnesini string temsiline d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Bu, bir say\u0131y\u0131 ekranda g\u00f6stermek veya ba\u015fka stringlerle birle\u015ftirmek istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">sayi_int = 123\nsayi_float = 45.67\nsayi_complex = 2 + 3j\nliste = [1, 2, 3]\n\nprint(str(sayi_int))    # \"123\"\nprint(str(sayi_float))  # \"45.67\"\nprint(str(sayi_complex))# \"(2+3j)\"\nprint(str(liste))       # \"[1, 2, 3]\"\n\n<h2>String birle\u015ftirme<\/h2>\nprint(\"Say\u0131: \" + str(sayi_int))<\/code><\/pre>\n<h3>String&#8217;den Say\u0131sal Tiplere: <code>int()<\/code>, <code>float()<\/code><\/h3>\n<p>Bu fonksiyonlar\u0131 yukar\u0131da zaten detayl\u0131ca inceledik. \u00d6nemli olan, string&#8217;in d\u00f6n\u00fc\u015ft\u00fcr\u00fclmek istenen say\u0131sal tip i\u00e7in ge\u00e7erli bir formatta olmas\u0131 gerekti\u011fidir. Aksi takdirde <code>ValueError<\/code> hatas\u0131 al\u0131rs\u0131n\u0131z.<\/p>\n<pre><code class=\"language-python\">metin_tam_sayi = \"100\"\nmetin_ondalikli_sayi = \"98.6\"\n\nsayi1 = int(metin_tam_sayi)\nsayi2 = float(metin_ondalikli_sayi)\n\nprint(f\"D\u00f6n\u00fc\u015ft\u00fcr\u00fclen tam say\u0131: {sayi1}, Tipi: {type(sayi1)}\")\nprint(f\"D\u00f6n\u00fc\u015ft\u00fcr\u00fclen ondal\u0131kl\u0131 say\u0131: {sayi2}, Tipi: {type(sayi2)}\")\n\n<h2>Hata durumu<\/h2>\n<h2>print(int(\"3.14\")) # ValueError<\/h2>\n<h2>print(float(\"hello\")) # ValueError<\/code><\/pre>\n<\/h2>\n<h2>Boolean Tipler Aras\u0131 D\u00f6n\u00fc\u015f\u00fcmler<\/h2>\n<h3><code>bool()<\/code> Fonksiyonu<\/h3>\n<p><code>bool()<\/code> fonksiyonu, bir de\u011feri Boolean (True veya False) tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Python&#8217;da baz\u0131 de\u011ferler &#8220;do\u011fru&#8221; (truthy), baz\u0131lar\u0131 ise &#8220;yanl\u0131\u015f&#8221; (falsy) olarak kabul edilir.<br \/>\n*   <strong>Falsy De\u011ferler:<\/strong><br \/>\n    *   Say\u0131sal tiplerde: <code>0<\/code>, <code>0.0<\/code>, <code>0j<\/code><br \/>\n    *   Bo\u015f string: <code>\"\"<\/code><br \/>\n    *   Bo\u015f koleksiyonlar: <code>[]<\/code> (liste), <code>()<\/code> (tuple), <code>{}<\/code> (set\/dict)<br \/>\n    *   <code>None<\/code><br \/>\n*   <strong>Truthy De\u011ferler:<\/strong> Yukar\u0131dakilerin d\u0131\u015f\u0131ndaki t\u00fcm di\u011fer de\u011ferler <code>True<\/code> olarak kabul edilir.<\/p>\n<pre><code class=\"language-python\">print(bool(1))          # True\nprint(bool(0))          # False\nprint(bool(10.5))       # True\nprint(bool(0.0))        # False\nprint(bool(\"Hello\"))    # True\nprint(bool(\"\"))         # False\nprint(bool([1, 2]))     # True\nprint(bool([]))         # False\nprint(bool(None))       # False<\/code><\/pre>\n<h2>Koleksiyon Tipleri Aras\u0131 D\u00f6n\u00fc\u015f\u00fcmler (Listeler, Tuple&#8217;lar, K\u00fcmeler)<\/h2>\n<p>Python&#8217;da yayg\u0131n olarak kullan\u0131lan koleksiyon tipleri listeler (<code>list<\/code>), tuple&#8217;lar (<code>tuple<\/code>) ve k\u00fcmeler (<code>set<\/code>)&#8217;dir. Bu yap\u0131lar aras\u0131nda d\u00f6n\u00fc\u015f\u00fcm yapmak, verileri farkl\u0131 \u015fekillerde manip\u00fcle etmek veya belirli \u00f6zelliklerinden yararlanmak i\u00e7in \u00f6nemlidir.<\/p>\n<h3><code>list()<\/code> Fonksiyonu<\/h3>\n<p><code>list()<\/code> fonksiyonu, bir iterable (yinelenebilir) nesneyi (string, tuple, set, dict&#8217;in anahtarlar\u0131 vb.) listeye d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\"># Tuple'dan listeye\nmy_tuple = (1, 2, 3)\nmy_list = list(my_tuple) # [1, 2, 3]\nprint(f\"Tuple'dan liste: {my_list}\")\n\n<h2>Set'ten listeye (s\u0131ra garanti edilmez)<\/h2>\nmy_set = {3, 1, 2}\nmy_list_from_set = list(my_set) # [1, 2, 3] veya [2, 1, 3] vb.\nprint(f\"Set'ten liste: {my_list_from_set}\")\n\n<h2>String'ten listeye (her karakter bir eleman olur)<\/h2>\nmy_string = \"Python\"\nmy_list_from_string = list(my_string) # ['P', 'y', 't', 'h', 'o', 'n']\nprint(f\"String'ten liste: {my_list_from_string}\")\n\n<h2>S\u00f6zl\u00fckten listeye (anahtarlar liste olur)<\/h2>\nmy_dict = {'a': 1, 'b': 2}\nmy_list_from_dict = list(my_dict) # ['a', 'b']\nprint(f\"S\u00f6zl\u00fckten liste: {my_list_from_dict}\")<\/code><\/pre>\n<h3><code>tuple()<\/code> Fonksiyonu<\/h3>\n<p><code>tuple()<\/code> fonksiyonu, bir iterable nesneyi tuple&#8217;a d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Tuple&#8217;lar listeler gibi s\u0131ral\u0131 ve indekslenebilir olsa da, de\u011fi\u015ftirilemez (immutable) yap\u0131dad\u0131r.<\/p>\n<pre><code class=\"language-python\"># Listeden tuple'a\nmy_list = [1, 2, 3]\nmy_tuple = tuple(my_list) # (1, 2, 3)\nprint(f\"Listeden tuple: {my_tuple}\")\n\n<h2>String'ten tuple'a<\/h2>\nmy_string = \"Hello\"\nmy_tuple_from_string = tuple(my_string) # ('H', 'e', 'l', 'l', 'o')\nprint(f\"String'ten tuple: {my_tuple_from_string}\")\n\n<h2>Set'ten tuple'a<\/h2>\nmy_set = {10, 20, 30}\nmy_tuple_from_set = tuple(my_set) # (10, 20, 30) (s\u0131ra garanti edilmez)\nprint(f\"Set'ten tuple: {my_tuple_from_set}\")<\/code><\/pre>\n<h3><code>set()<\/code> Fonksiyonu<\/h3>\n<p><code>set()<\/code> fonksiyonu, bir iterable nesneyi k\u00fcmeye d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. K\u00fcmeler benzersiz elemanlar i\u00e7erir ve s\u0131ras\u0131zd\u0131r. Tekrar eden elemanlar otomatik olarak kald\u0131r\u0131l\u0131r.<\/p>\n<pre><code class=\"language-python\"># Listeden set'e (tekrar edenler silinir)\nmy_list_with_duplicates = [1, 2, 2, 3, 4, 4, 5]\nmy_set = set(my_list_with_duplicates) # {1, 2, 3, 4, 5}\nprint(f\"Listeden set: {my_set}\")\n\n<h2>String'ten set'e (benzersiz karakterler)<\/h2>\nmy_string = \"programming\"\nmy_set_from_string = set(my_string) # {'p', 'r', 'o', 'g', 'a', 'm', 'i', 'n'}\nprint(f\"String'ten set: {my_set_from_string}\")<\/code><\/pre>\n<h3>String ve Koleksiyon Tipleri Aras\u0131 D\u00f6n\u00fc\u015f\u00fcmler (<code>split()<\/code>, <code>join()<\/code>)<\/h3>\n<p>String&#8217;leri listelere veya tuple&#8217;lara d\u00f6n\u00fc\u015ft\u00fcrmenin ve tersini yapman\u0131n \u00f6zel yollar\u0131 da vard\u0131r.<\/p>\n<p>*   <strong><code>str.split()<\/code>:<\/strong> Bir string&#8217;i belirli bir ay\u0131r\u0131c\u0131ya g\u00f6re b\u00f6lerek bir liste d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <strong><code>str.join()<\/code>:<\/strong> Bir iterable&#8217;daki (liste, tuple vb.) string elemanlar\u0131 belirli bir ay\u0131r\u0131c\u0131 string ile birle\u015ftirerek tek bir string olu\u015fturur.<\/p>\n<pre><code class=\"language-python\"># String'i listeye b\u00f6lme\ncumle = \"Python ile veri tipi d\u00f6n\u00fc\u015f\u00fcm\u00fc\"\nkelimeler = cumle.split(\" \") # ['Python', 'ile', 'veri', 'tipi', 'd\u00f6n\u00fc\u015f\u00fcm\u00fc']\nprint(f\"String'i listeye b\u00f6lme: {kelimeler}\")\n\ntarih = \"2023-10-26\"\ntarih_parcalari = tarih.split(\"-\") # ['2023', '10', '26']\nprint(f\"Tarihi listeye b\u00f6lme: {tarih_parcalari}\")\n\n<h2>Listeyi string'e birle\u015ftirme<\/h2>\nbirlesik_cumle = \" \".join(kelimeler) # \"Python ile veri tipi d\u00f6n\u00fc\u015f\u00fcm\u00fc\"\nprint(f\"Listeyi string'e birle\u015ftirme: {birlesik_cumle}\")\n\nbirlesik_tarih = \"\/\".join(tarih_parcalari) # \"2023\/10\/26\"\nprint(f\"Listeyi farkl\u0131 ay\u0131r\u0131c\u0131 ile birle\u015ftirme: {birlesik_tarih}\")\n\n<h2>Tuple'\u0131 string'e birle\u015ftirme<\/h2>\ntuple_kelimeler = ('Merhaba', 'D\u00fcnya')\nbirlesik_tuple = \"_\".join(tuple_kelimeler) # \"Merhaba_D\u00fcnya\"\nprint(f\"Tuple'\u0131 string'e birle\u015ftirme: {birlesik_tuple}\")\n\n<h2>Not: join() metodu sadece string elemanlar\u0131 olan iterable'lar \u00fczerinde \u00e7al\u0131\u015f\u0131r.<\/h2>\n<h2>int_list = [1, 2, 3]<\/h2>\n<h2>print(\" \".join(int_list)) # TypeError: sequence item 0: expected str instance, int found<\/code><\/pre>\n<\/h2>\n<h2>Bytes ve Bytearray D\u00f6n\u00fc\u015f\u00fcmleri<\/h2>\n<p>Python 3&#8217;te string&#8217;ler Unicode karakter dizileridir. \u0130kili veri (binary data) ile \u00e7al\u0131\u015f\u0131rken (dosya okuma\/yazma, a\u011f ileti\u015fimi) <code>bytes<\/code> veya <code>bytearray<\/code> tiplerine ihtiya\u00e7 duyar\u0131z.<\/p>\n<h3><code>bytes()<\/code> Fonksiyonu<\/h3>\n<p><code>bytes()<\/code> fonksiyonu, string&#8217;leri veya di\u011fer iterable&#8217;lar\u0131 bir <code>bytes<\/code> nesnesine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. <code>bytes<\/code> nesneleri de\u011fi\u015ftirilemez (immutable) bir bayt dizisidir.<br \/>\n*   Bir string&#8217;i <code>bytes<\/code>&#8216;a d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in, <code>encode()<\/code> metodunu kullanmak daha yayg\u0131nd\u0131r ve encoding (kodlama) belirtmeyi gerektirir.<br \/>\n*   <code>bytes()<\/code> fonksiyonu ile bir iterable&#8217;\u0131 (int listesi gibi) bayt&#8217;lara d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz, ancak elemanlar 0-255 aras\u0131nda olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\"># String'i bytes'a d\u00f6n\u00fc\u015ft\u00fcrme (encode metodu)\nmetin = \"Merhaba D\u00fcnya\"\nbytes_utf8 = metin.encode('utf-8')\nbytes_latin1 = metin.encode('latin-1')\nprint(f\"UTF-8 bytes: {bytes_utf8}\") # b'Merhaba D\\xc3\\xbcnya' (\u00e7\u00fcnk\u00fc '\u00fc' karakteri var)\nprint(f\"Latin-1 bytes: {bytes_latin1}\") # b'Merhaba D\\xfcnya'\nprint(f\"Bytes tipi: {type(bytes_utf8)}\")\n\n<h2>Integer listesinden bytes olu\u015fturma<\/h2>\nsayilar = [72, 101, 108, 108, 111] # ASCII kodlar\u0131\nbytes_from_list = bytes(sayilar) # b'Hello'\nprint(f\"Listeden bytes: {bytes_from_list}\")\n\n<h2>Hata durumu (ge\u00e7ersiz bayt de\u011feri)<\/h2>\n<h2>bytes_invalid = bytes([256]) # ValueError: bytes must be in range(0, 256)<\/code><\/pre>\n<\/h2>\n<h3><code>bytearray()<\/code> Fonksiyonu<\/h3>\n<p><code>bytearray()<\/code> fonksiyonu <code>bytes<\/code> gibidir, ancak olu\u015fturdu\u011fu nesne de\u011fi\u015ftirilebilir (mutable) bir bayt dizisidir.<\/p>\n<pre><code class=\"language-python\"># String'i bytearray'e d\u00f6n\u00fc\u015ft\u00fcrme\nmetin = \"Python\"\nbytearray_obj = bytearray(metin, 'utf-8')\nprint(f\"Bytearray: {bytearray_obj}\") # bytearray(b'Python')\nbytearray_obj[0] = 80 # 'P' karakterinin ASCII de\u011feri\nprint(f\"De\u011fi\u015ftirilmi\u015f bytearray: {bytearray_obj}\") # bytearray(b'Pythoa') (80 ASCII 'P', 97 ASCII 'a')\n\n<h2>Integer listesinden bytearray olu\u015fturma<\/h2>\nsayilar = [65, 66, 67]\nbytearray_from_list = bytearray(sayilar) # bytearray(b'ABC')\nprint(f\"Listeden bytearray: {bytearray_from_list}\")<\/code><\/pre>\n<h3>String ve Bytes Aras\u0131 D\u00f6n\u00fc\u015f\u00fcm (<code>.encode()<\/code>, <code>.decode()<\/code>)<\/h3>\n<p>String&#8217;leri <code>bytes<\/code>&#8216;a d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in <code>.encode()<\/code> metodunu, <code>bytes<\/code>&#8216;\u0131 string&#8217;e d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in ise <code>.decode()<\/code> metodunu kullan\u0131r\u0131z. Her iki durumda da bir kodlama (encoding) \u015femas\u0131 belirtmek esast\u0131r (\u00f6rn. &#8216;utf-8&#8217;, &#8216;latin-1&#8217;, &#8216;ascii&#8217;).<\/p>\n<pre><code class=\"language-python\"># String'i bytes'a d\u00f6n\u00fc\u015ft\u00fcrme\norijinal_string = \"T\u00fcrk\u00e7e Karakterler\"\nencoded_bytes = orijinal_string.encode('utf-8')\nprint(f\"Encoded bytes: {encoded_bytes}\") # b'T\\xc3\\xbcrk\\xc3\\xa7e Karakterler'\n\n<h2>Bytes'\u0131 string'e d\u00f6n\u00fc\u015ft\u00fcrme<\/h2>\ndecoded_string = encoded_bytes.decode('utf-8')\nprint(f\"Decoded string: {decoded_string}\") # T\u00fcrk\u00e7e Karakterler\n\n<h2>Yanl\u0131\u015f kodlama kullan\u0131m\u0131<\/h2>\n<h2>encoded_bytes_latin = orijinal_string.encode('latin-1') # UnicodeEncodeError: 'latin-1' codec can't encode character '\\xdc' in position 1: ordinal not in range(256)<\/h2>\n<h2>Bu hata, '\u00dc' karakterinin latin-1 kodlamas\u0131nda olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/h2>\n\n<h2>E\u011fer bytes nesnesi uygun olmayan bir kodlamayla decode edilirse<\/h2>\ngarip_bytes = b'\\xc3\\xbc' # '\u00fc' karakterinin UTF-8 kar\u015f\u0131l\u0131\u011f\u0131\nprint(garip_bytes.decode('utf-8')) # \u00fc\n<h2>print(garip_bytes.decode('ascii')) # UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)<\/code><\/pre>\n<\/h2>\n<h2>Geli\u015fmi\u015f D\u00f6n\u00fc\u015f\u00fcm Teknikleri ve \u0130pu\u00e7lar\u0131<\/h2>\n<h3>Hata Y\u00f6netimi: <code>try-except<\/code> Bloklar\u0131 ile G\u00fcvenli D\u00f6n\u00fc\u015f\u00fcm<\/h3>\n<p>A\u00e7\u0131k d\u00f6n\u00fc\u015f\u00fcmler s\u0131ras\u0131nda hatalar (\u00f6zellikle <code>ValueError<\/code> veya <code>TypeError<\/code>) meydana gelebilir. Bu hatalar\u0131 y\u00f6netmek ve program\u0131n\u0131z\u0131n \u00e7\u00f6kmesini \u00f6nlemek i\u00e7in <code>try-except<\/code> bloklar\u0131n\u0131 kullanmak en iyi uygulamad\u0131r.<\/p>\n<pre><code class=\"language-python\">def string_to_int(s):\n    try:\n        return int(s)\n    except ValueError:\n        print(f\"Hata: '{s}' ge\u00e7erli bir tam say\u0131 de\u011fil.\")\n        return None\n    except TypeError:\n        print(f\"Hata: '{s}' tam say\u0131ya d\u00f6n\u00fc\u015ft\u00fcr\u00fclemez bir tip.\")\n        return None\n\nprint(string_to_int(\"123\"))      # 123\nprint(string_to_int(\"abc\"))      # Hata: 'abc' ge\u00e7erli bir tam say\u0131 de\u011fil. None\nprint(string_to_int(None))       # Hata: 'None' tam say\u0131ya d\u00f6n\u00fc\u015ft\u00fcr\u00fclemez bir tip. None<\/code><\/pre>\n<h3><code>map()<\/code> Fonksiyonu ile Toplu D\u00f6n\u00fc\u015f\u00fcm<\/h3>\n<p>Bir iterable&#8217;daki (liste gibi) t\u00fcm elemanlara ayn\u0131 d\u00f6n\u00fc\u015f\u00fcm fonksiyonunu uygulamak istedi\u011finizde <code>map()<\/code> fonksiyonu olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. <code>map()<\/code> bir <code>map<\/code> nesnesi d\u00f6nd\u00fcr\u00fcr, bunu bir listeye veya tuple&#8217;a d\u00f6n\u00fc\u015ft\u00fcrmeniz gerekebilir.<\/p>\n<pre><code class=\"language-python\">str_sayilar = [\"1\", \"2\", \"3\", \"4\"]\nint_sayilar = list(map(int, str_sayilar))\nprint(f\"Map ile d\u00f6n\u00fc\u015f\u00fcm: {int_sayilar}\") # [1, 2, 3, 4]\n\nfloat_sayilar = list(map(float, [\"1.1\", \"2.2\", \"3.3\"]))\nprint(f\"Map ile float d\u00f6n\u00fc\u015f\u00fcm: {float_sayilar}\") # [1.1, 2.2, 3.3]<\/code><\/pre>\n<h3>Liste Anlay\u0131\u015flar\u0131 (List Comprehensions) ile D\u00f6n\u00fc\u015f\u00fcm<\/h3>\n<p><code>map()<\/code> fonksiyonuna benzer \u015fekilde, liste anlay\u0131\u015flar\u0131 da bir iterable&#8217;daki elemanlar\u0131 d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in \u015f\u0131k ve Pythonik bir yol sunar.<\/p>\n<pre><code class=\"language-python\">str_sayilar = [\"10\", \"20\", \"30\"]\nint_sayilar_comp = [int(s) for s in str_sayilar]\nprint(f\"List comprehension ile d\u00f6n\u00fc\u015f\u00fcm: {int_sayilar_comp}\") # [10, 20, 30]\n\n<h2>Ko\u015fullu d\u00f6n\u00fc\u015f\u00fcm<\/h2>\nkarma_liste = [\"1\", \"2.5\", \"3\", \"abc\", \"4.0\"]\nsayisal_degerler = []\nfor item in karma_liste:\n    try:\n        sayisal_degerler.append(float(item))\n    except ValueError:\n        continue # Ge\u00e7ersiz de\u011ferleri atla\n\nprint(f\"Ko\u015fullu d\u00f6n\u00fc\u015f\u00fcm (float): {sayisal_degerler}\") # [1.0, 2.5, 3.0, 4.0]\n\n<h2>Ayn\u0131 i\u015flemi list comprehension ve hata y\u00f6netimi ile yapmak biraz daha karma\u015f\u0131k olabilir<\/h2>\n<h2>veya sadece ge\u00e7erli olanlar\u0131 filtrelemek i\u00e7in kullan\u0131labilir.<\/code><\/pre>\n<\/h2>\n<h3>Kullan\u0131c\u0131 Tan\u0131ml\u0131 S\u0131n\u0131flar \u0130\u00e7in D\u00f6n\u00fc\u015f\u00fcm Metotlar\u0131<\/h3>\n<p>Kendi s\u0131n\u0131flar\u0131n\u0131z\u0131 tan\u0131mlarken, nesnelerinizin yerle\u015fik Python fonksiyonlar\u0131 (<code>str()<\/code>, <code>int()<\/code>, <code>float()<\/code>, <code>bool()<\/code>, <code>len()<\/code>) ile uyumlu olmas\u0131n\u0131 sa\u011flamak i\u00e7in \u00f6zel metotlar (magic methods veya dunder methods) kullanabilirsiniz.<br \/>\n*   <code>__str__(self)<\/code>: <code>str()<\/code> fonksiyonu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda veya <code>print()<\/code> ile nesne yazd\u0131r\u0131ld\u0131\u011f\u0131nda string temsilini d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>__int__(self)<\/code>: <code>int()<\/code> fonksiyonu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda tam say\u0131 temsilini d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>__float__(self)<\/code>: <code>float()<\/code> fonksiyonu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda ondal\u0131kl\u0131 say\u0131 temsilini d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>__bool__(self)<\/code>: <code>bool()<\/code> fonksiyonu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda Boolean temsilini d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">class Nokta:\n    def __init__(self, x, y):\n        self.x = x\n        self.y = y\n\n    def __str__(self):\n        return f\"Nokta({self.x}, {self.y})\"\n\n    def __int__(self):\n        # x koordinat\u0131n\u0131 tam say\u0131 olarak d\u00f6nd\u00fcrs\u00fcn\n        return int(self.x)\n\n    def __float__(self):\n        # x ve y koordinatlar\u0131n\u0131n ortalamas\u0131n\u0131 d\u00f6nd\u00fcrs\u00fcn\n        return float((self.x + self.y) \/ 2)\n\n    def __bool__(self):\n        # Nokta (0,0) de\u011filse True, aksi halde False\n        return self.x != 0 or self.y != 0\n\np1 = Nokta(3, 4)\np2 = Nokta(0, 0)\n\nprint(str(p1))      # Nokta(3, 4)\nprint(int(p1))      # 3\nprint(float(p1))    # 3.5\nprint(bool(p1))     # True\nprint(bool(p2))     # False<\/code><\/pre>\n<h3><code>eval()<\/code> Fonksiyonu ve G\u00fcvenlik Riskleri<\/h3>\n<p><code>eval()<\/code> fonksiyonu, bir string&#8217;i Python ifadesi olarak de\u011ferlendirir ve sonucunu d\u00f6nd\u00fcr\u00fcr. Bu, dinamik kod y\u00fcr\u00fctme i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 olabilir, ancak <strong>ciddi g\u00fcvenlik riskleri ta\u015f\u0131r<\/strong>. G\u00fcvenilmeyen kaynaklardan al\u0131nan string&#8217;leri <code>eval()<\/code> ile \u00e7al\u0131\u015ft\u0131rmak, keyfi kod y\u00fcr\u00fct\u00fclmesine ve g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7abilir. Genellikle veri tipi d\u00f6n\u00fc\u015f\u00fcm\u00fc i\u00e7in \u00f6nerilmez.<\/p>\n<pre><code class=\"language-python\">metin_ifade = \"10 + 5 * 2\"\nsonuc = eval(metin_ifade)\nprint(f\"Eval sonucu: {sonuc}\") # 20\n\nmetin_liste = \"[1, 2, 3]\"\nliste_objesi = eval(metin_liste)\nprint(f\"Eval ile liste: {liste_objesi}, Tipi: {type(liste_objesi)}\") # [1, 2, 3], <class 'list'>\n\n<h2>G\u00fcvenlik riski \u00f6rne\u011fi (\u00e7al\u0131\u015ft\u0131rmay\u0131n!)<\/h2>\n<h2>tehlikeli_kod = \"__import__('os').system('rm -rf \/')\"<\/h2>\n<h2>eval(tehlikeli_kod)<\/code><\/pre>\n<\/h2>\n<p><code>eval()<\/code> yerine, JSON veya YAML gibi g\u00fcvenli veri serile\u015ftirme formatlar\u0131n\u0131 ve bunlar\u0131 i\u015flemek i\u00e7in \u00f6zel k\u00fct\u00fcphaneleri (<code>json<\/code>, <code>yaml<\/code>) kullanmak \u00e7ok daha g\u00fcvenlidir.<\/p>\n<h2>Yayg\u0131n Hatalar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Veri tipi d\u00f6n\u00fc\u015f\u00fcmleri s\u0131ras\u0131nda kar\u015f\u0131la\u015f\u0131labilecek baz\u0131 yayg\u0131n hatalar ve bunlar\u0131n nas\u0131l \u00e7\u00f6z\u00fclece\u011fi:<\/p>\n<h3><code>ValueError<\/code>: Ge\u00e7ersiz De\u011fer Hatas\u0131<\/h3>\n<p>Bu hata, d\u00f6n\u00fc\u015ft\u00fcrmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z de\u011ferin hedef tip i\u00e7in ge\u00e7erli bir formatta olmamas\u0131 durumunda ortaya \u00e7\u0131kar. En s\u0131k string&#8217;leri say\u0131ya d\u00f6n\u00fc\u015ft\u00fcr\u00fcrken g\u00f6r\u00fcl\u00fcr.<\/p>\n<pre><code class=\"language-python\"># Hata\n<h2>int(\"hello\")<\/h2>\n<h2>float(\"12,34\") # Virg\u00fcl yerine nokta olmal\u0131<\/h2>\n\n<h2>\u00c7\u00f6z\u00fcm: Hata y\u00f6netimi (try-except) veya de\u011ferin format\u0131n\u0131 kontrol etme<\/h2>\ntry:\n    sayi = int(\"123\")\n    print(sayi)\n    sayi2 = int(\"abc\")\nexcept ValueError as e:\n    print(f\"ValueError yakaland\u0131: {e}\")\n\n<h2>String'deki virg\u00fcl\u00fc noktaya \u00e7evirerek float'a d\u00f6n\u00fc\u015ft\u00fcrme<\/h2>\ngecerli_float_str = \"12,34\".replace(\",\", \".\")\nprint(float(gecerli_float_str))<\/code><\/pre>\n<h3><code>TypeError<\/code>: Tip Uyumsuzlu\u011fu Hatas\u0131<\/h3>\n<p>Bu hata, bir i\u015flemin veya fonksiyonun bekledi\u011fi veri tipinden farkl\u0131 bir tipte arg\u00fcman ald\u0131\u011f\u0131nda ortaya \u00e7\u0131kar.<\/p>\n<pre><code class=\"language-python\"># Hata: Bir int ile bir listeyi do\u011frudan toplayamazs\u0131n\u0131z\n<h2>print(10 + [1, 2])<\/h2>\n\n<h2>\u00c7\u00f6z\u00fcm: \u0130lgili tipleri uyumlu hale getirin<\/h2>\nprint(str(10) + str([1, 2])) # \"10[1, 2]\"<\/code><\/pre>\n<p><code>join()<\/code> metodu gibi baz\u0131 metodlar sadece belirli tiplerle \u00e7al\u0131\u015f\u0131r.<\/p>\n<pre><code class=\"language-python\"># Hata: join() metodu sadece string elemanlar\u0131 olan iterable'lar \u00fczerinde \u00e7al\u0131\u015f\u0131r\n<h2>int_list = [1, 2, 3]<\/h2>\n<h2>print(\" \".join(int_list))<\/h2>\n\n<h2>\u00c7\u00f6z\u00fcm: Elemanlar\u0131 string'e d\u00f6n\u00fc\u015ft\u00fcr\u00fcn<\/h2>\nint_list = [1, 2, 3]\nstr_list = [str(i) for i in int_list]\nprint(\" \".join(str_list)) # \"1 2 3\"<\/code><\/pre>\n<h3><code>AttributeError<\/code>: Metot Bulunamad\u0131 Hatas\u0131<\/h3>\n<p>Bu hata, bir nesnenin sahip olmad\u0131\u011f\u0131 bir metoda eri\u015fmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda meydana gelir. Veri tipi d\u00f6n\u00fc\u015f\u00fcmleriyle do\u011frudan ilgili olmasa da, d\u00f6n\u00fc\u015f\u00fcm sonras\u0131 yanl\u0131\u015f bir metot kullanmaya \u00e7al\u0131\u015f\u0131rken g\u00f6r\u00fclebilir.<\/p>\n<pre><code class=\"language-python\">sayi = 10\n<h2>print(sayi.split()) # AttributeError: 'int' object has no attribute 'split'<\/h2>\n\nmetin = \"hello\"\nprint(metin.split()) # ['hello']<\/code><\/pre>\n<h2>Performans ve Bellek Konular\u0131<\/h2>\n<p>Veri tipi d\u00f6n\u00fc\u015f\u00fcmleri genellikle haf\u0131za ve performans a\u00e7\u0131s\u0131ndan ihmal edilebilir maliyetlere sahiptir, \u00f6zellikle k\u00fc\u00e7\u00fck veri setleri i\u00e7in. Ancak, \u00e7ok b\u00fcy\u00fck veri setleriyle veya y\u00fcksek performans gerektiren uygulamalarda, d\u00f6n\u00fc\u015f\u00fcmlerin maliyetini g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir.<\/p>\n<p>*   <strong>Veri Kopyalama:<\/strong> \u00c7o\u011fu d\u00f6n\u00fc\u015f\u00fcm, orijinal verinin yeni bir tipte kopyas\u0131n\u0131 olu\u015fturur. Bu, \u00f6zellikle b\u00fcy\u00fck listelerden veya string&#8217;lerden yeni koleksiyonlar olu\u015ftururken ek bellek t\u00fcketimine yol a\u00e7abilir.<br \/>\n*   <strong>\u0130\u015flem Maliyeti:<\/strong> String&#8217;den say\u0131ya veya bytes&#8217;dan string&#8217;e d\u00f6n\u00fc\u015f\u00fcmler, formatlama ve kodlama\/kod \u00e7\u00f6zme i\u015flemleri nedeniyle biraz daha fazla CPU d\u00f6ng\u00fcs\u00fc gerektirebilir.<br \/>\n*   <strong>\u00d6nleme:<\/strong> M\u00fcmk\u00fcnse, verileri ba\u015flang\u0131\u00e7ta do\u011fru tipte tutmaya \u00e7al\u0131\u015fmak veya gereksiz d\u00f6n\u00fc\u015f\u00fcmlerden ka\u00e7\u0131nmak en iyisidir. \u00d6rne\u011fin, kullan\u0131c\u0131dan al\u0131nan bir say\u0131sal girdiyi hemen <code>int()<\/code> veya <code>float()<\/code> ile d\u00f6n\u00fc\u015ft\u00fcrmek, daha sonra tekrar tekrar d\u00f6n\u00fc\u015ft\u00fcrmekten daha verimlidir.<\/p>\n<p>Genel olarak, Python&#8217;\u0131n optimize edilmi\u015f yerle\u015fik fonksiyonlar\u0131 \u00e7o\u011fu durumda yeterince h\u0131zl\u0131d\u0131r. Performans sorunlar\u0131 ya\u015farsan\u0131z, \u00f6nce kodunuzun di\u011fer k\u0131s\u0131mlar\u0131n\u0131 (algoritma karma\u015f\u0131kl\u0131\u011f\u0131, I\/O i\u015flemleri) optimize etmeye odaklanman\u0131z daha mant\u0131kl\u0131 olacakt\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Python 3&#8217;te veri tipi d\u00f6n\u00fc\u015f\u00fcmleri, her Python geli\u015ftiricisinin ustala\u015fmas\u0131 gereken temel bir beceridir. Bu makalede, \u00f6rt\u00fcl\u00fc ve a\u00e7\u0131k d\u00f6n\u00fc\u015f\u00fcmlerin temellerini, say\u0131sal tiplerden string&#8217;lere, koleksiyonlardan bytes&#8217;lara kadar \u00e7e\u015fitli d\u00f6n\u00fc\u015f\u00fcm senaryolar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. Ayr\u0131ca, <code>map()<\/code>, liste anlay\u0131\u015flar\u0131 ve kullan\u0131c\u0131 tan\u0131ml\u0131 s\u0131n\u0131flar i\u00e7in \u00f6zel metotlar gibi geli\u015fmi\u015f tekniklere ve <code>try-except<\/code> bloklar\u0131 ile hata y\u00f6netimine de de\u011findik.<\/p>\n<p>Veri tipi d\u00f6n\u00fc\u015f\u00fcmlerini do\u011fru ve g\u00fcvenli bir \u015fekilde kullanmak, programlar\u0131n\u0131z\u0131n daha sa\u011flam, esnek ve hatas\u0131z olmas\u0131n\u0131 sa\u011flar. Kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n hatalar\u0131 anlamak ve bunlar\u0131 nas\u0131l \u00e7\u00f6zece\u011finizi bilmek, geli\u015ftirme s\u00fcrecinizi h\u0131zland\u0131racakt\u0131r. Unutmay\u0131n ki, Python&#8217;\u0131n dinamik yap\u0131s\u0131 esneklik sa\u011flarken, veri tiplerini bilin\u00e7li bir \u015fekilde y\u00f6netmek, kodunuzun anla\u015f\u0131l\u0131rl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 art\u0131racakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?\nGiri\u015f\nPython, dinamik tipli bir programlama dilidir. Bu, de\u011fi\u015fkenlerin tan\u0131mlan\u0131rken belirli","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-36670","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 3&#039;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr? - 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\/python-3te-veri-tipleri-nasil-donusturulur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python 3&#039;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?\" \/>\n<meta property=\"og:description\" content=\"Python 3&#039;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr? Giri\u015f Python, dinamik tipli bir programlama dilidir. Bu, de\u011fi\u015fkenlerin tan\u0131mlan\u0131rken belirli\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-21T09:40: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=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?\",\"datePublished\":\"2025-12-21T09:40:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/\"},\"wordCount\":2406,\"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\/python-3te-veri-tipleri-nasil-donusturulur\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/\",\"name\":\"Python 3'te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-21T09:40:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?\"}]},{\"@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 3'te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr? - 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\/python-3te-veri-tipleri-nasil-donusturulur\/","og_locale":"tr_TR","og_type":"article","og_title":"Python 3'te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?","og_description":"Python 3'te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr? Giri\u015f Python, dinamik tipli bir programlama dilidir. Bu, de\u011fi\u015fkenlerin tan\u0131mlan\u0131rken belirli","og_url":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-21T09:40:52+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?","datePublished":"2025-12-21T09:40:52+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/"},"wordCount":2406,"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\/python-3te-veri-tipleri-nasil-donusturulur\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/","url":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/","name":"Python 3'te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-21T09:40:52+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/python-3te-veri-tipleri-nasil-donusturulur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python 3&#8217;te Veri Tipleri Nas\u0131l D\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr?"}]},{"@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\/36670","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=36670"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36670\/revisions"}],"predecessor-version":[{"id":36671,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36670\/revisions\/36671"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}