{"id":32328,"date":"2025-10-20T13:40:57","date_gmt":"2025-10-20T10:40:57","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32328"},"modified":"2025-10-20T13:40:57","modified_gmt":"2025-10-20T10:40:57","slug":"python-string-fonksiyonlari-metin-islemede-guclu-araclar","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/","title":{"rendered":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar"},"content":{"rendered":"<p><body><\/p>\n<h2>Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>Python, modern programlama d\u00fcnyas\u0131n\u0131n en pop\u00fcler dillerinden biridir ve bu pop\u00fclaritesinin \u00f6nemli bir k\u0131sm\u0131, metin (string) verileriyle \u00e7al\u0131\u015fma konusunda sundu\u011fu esneklik ve zengin fonksiyonaliteden kaynaklan\u0131r. Veri analizi, web geli\u015ftirme, otomasyon, yapay zeka ve daha bir\u00e7ok alanda, metin verilerini i\u015flemek, temizlemek, formatlamak ve analiz etmek kritik \u00f6neme sahiptir. Python&#8217;\u0131n string fonksiyonlar\u0131 ve metotlar\u0131, geli\u015ftiricilere bu karma\u015f\u0131k g\u00f6revleri basit ve etkili bir \u015fekilde ger\u00e7ekle\u015ftirmeleri i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Bu makalede, Python stringlerinin temel \u00f6zelliklerinden ba\u015flayarak, en yayg\u0131n kullan\u0131lan string metotlar\u0131na, geli\u015fmi\u015f string i\u015flemlerine ve performans ipu\u00e7lar\u0131na kadar geni\u015f bir yelpazeyi ele alaca\u011f\u0131z. Amac\u0131m\u0131z, Python&#8217;da metin manip\u00fclasyonu konusunda derinlemesine bir anlay\u0131\u015f sa\u011flamak ve okuyuculara g\u00fcnl\u00fck programlama ihtiya\u00e7lar\u0131nda kar\u015f\u0131la\u015fabilecekleri sorunlara pratik \u00e7\u00f6z\u00fcmler sunmakt\u0131r.<\/p>\n<h2>String Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p>Programlamada &#8220;string&#8221; veya T\u00fcrk\u00e7e kar\u015f\u0131l\u0131\u011f\u0131yla &#8220;karakter dizisi&#8221;, bir veya daha fazla karakterin s\u0131ral\u0131 bir koleksiyonudur. Bu karakterler harfler, rakamlar, semboller ve bo\u015fluklar olabilir. Python&#8217;da stringler, de\u011fi\u015fmez (immutable) veri tipleridir, yani bir string olu\u015fturulduktan sonra i\u00e7eri\u011fi do\u011frudan de\u011fi\u015ftirilemez. Herhangi bir de\u011fi\u015fiklik i\u015flemi, asl\u0131nda yeni bir string olu\u015fturulmas\u0131na yol a\u00e7ar. Bu \u00f6zellik, stringlerin g\u00fcvenilirli\u011fini ve performans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<p>Stringler, neredeyse her programlama uygulamas\u0131nda kritik bir rol oynar:<br \/>\n*   <strong>Kullan\u0131c\u0131 Giri\u015fleri:<\/strong> Kullan\u0131c\u0131lar\u0131n adlar\u0131, e-posta adresleri, \u015fifreleri gibi metinsel girdiler string olarak i\u015flenir.<br \/>\n*   <strong>Veri Depolama ve Aktar\u0131m\u0131:<\/strong> Veritabanlar\u0131nda, dosyalarda veya a\u011f \u00fczerinden aktar\u0131lan verilerin \u00e7o\u011fu metin tabanl\u0131d\u0131r (JSON, XML, CSV gibi formatlar).<br \/>\n*   <strong>Web Geli\u015ftirme:<\/strong> HTML, CSS, JavaScript gibi web teknolojileri metin tabanl\u0131d\u0131r. URL&#8217;ler, form verileri, sunucu yan\u0131tlar\u0131 string olarak manip\u00fcle edilir.<br \/>\n*   <strong>Veri Analizi ve Metin Madencili\u011fi:<\/strong> B\u00fcy\u00fck metin kitlelerinden anlaml\u0131 bilgi \u00e7\u0131karmak (duygu analizi, anahtar kelime \u00e7\u0131karma vb.) string i\u015flemlerini yo\u011fun bir \u015fekilde kullan\u0131r.<br \/>\n*   <strong>Otomasyon ve Komut Dosyalar\u0131:<\/strong> Dosya yollar\u0131n\u0131 d\u00fczenleme, log dosyalar\u0131n\u0131 ayr\u0131\u015ft\u0131rma, komut sat\u0131r\u0131 arg\u00fcmanlar\u0131n\u0131 i\u015fleme gibi g\u00f6revlerde stringler temeldir.<\/p>\n<p>Python&#8217;\u0131n zengin string fonksiyonlar\u0131 k\u00fct\u00fcphanesi, bu t\u00fcr i\u015flemleri kolayla\u015ft\u0131rarak geli\u015ftiricilerin daha verimli kod yazmas\u0131na olanak tan\u0131r.<\/p>\n<h2>String Olu\u015fturma ve Temel \u00d6zellikleri<\/h2>\n<p>Python&#8217;da stringler, tek t\u0131rnak (&#8216;), \u00e7ift t\u0131rnak (&#8220;) veya \u00fc\u00e7l\u00fc t\u0131rnak (&#8221;&#8217; veya &#8220;&#8221;&#8221;) kullan\u0131larak olu\u015fturulabilir.<\/p>\n<h3>Tek ve \u00c7ift T\u0131rnaklar<\/h3>\n<p>Tek veya \u00e7ift t\u0131rnaklar, genellikle tek sat\u0131rl\u0131k stringler i\u00e7in kullan\u0131l\u0131r. \u0130ki t\u0131rnak t\u00fcr\u00fc aras\u0131nda i\u015flevsel bir fark yoktur; tercih tamamen ki\u015fisel veya kurumsal kodlama standartlar\u0131na ba\u011fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">metin1 = 'Merhaba D\u00fcnya'\nmetin2 = \"Python Programlama\"\nprint(metin1) # Merhaba D\u00fcnya\nprint(metin2) # Python Programlama<\/code><\/pre>\n<p>E\u011fer string i\u00e7inde t\u0131rnak kullanman\u0131z gerekiyorsa, d\u0131\u015f t\u0131rnaktan farkl\u0131 bir t\u0131rnak t\u00fcr\u00fc se\u00e7ebilir veya escape karakteri kullanabilirsiniz.<\/p>\n<pre><code class=\"language-python\">metin3 = \"Python'\u0131n g\u00fcc\u00fc\"\nmetin4 = 'O \u015f\u00f6yle dedi: \"Merhaba!\"'\nmetin5 = 'Python\\'\u0131n g\u00fcc\u00fc' # Escape karakteri ile\nprint(metin3) # Python'\u0131n g\u00fcc\u00fc\nprint(metin4) # O \u015f\u00f6yle dedi: \"Merhaba!\"\nprint(metin5) # Python'\u0131n g\u00fcc\u00fc<\/code><\/pre>\n<h3>\u00dc\u00e7l\u00fc T\u0131rnaklar<\/h3>\n<p>\u00dc\u00e7l\u00fc t\u0131rnaklar, \u00f6zellikle \u00e7ok sat\u0131rl\u0131 stringler veya dok\u00fcmantasyon stringleri (docstrings) olu\u015fturmak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. \u0130\u00e7lerinde tek veya \u00e7ift t\u0131rnaklar\u0131 escape etmeye gerek kalmadan bar\u0131nd\u0131rabilirler.<\/p>\n<pre><code class=\"language-python\">cok_satirli_metin = \"\"\"Bu,\nbirden fazla\nsat\u0131ra yay\u0131lm\u0131\u015f bir metindir.\n\u0130\u00e7inde 'tek' ve \"\u00e7ift\" t\u0131rnaklar da bulunabilir.\"\"\"\nprint(cok_satirli_metin)<\/code><\/pre>\n<h3>Escape Karakterleri<\/h3>\n<p>Escape karakterleri, string i\u00e7inde \u00f6zel anlam ta\u015f\u0131yan karakterleri (\u00f6rne\u011fin, yeni sat\u0131r, sekme, t\u0131rnak i\u015faretleri) temsil etmek i\u00e7in kullan\u0131l\u0131r. Geri e\u011fik \u00e7izgi (<code>\\<\/code>) ile ba\u015flarlar.<\/p>\n<p>*   <code>\\n<\/code>: Yeni sat\u0131r<br \/>\n*   <code>\\t<\/code>: Sekme (tab)<br \/>\n*   <code>\\\\<\/code>: Geri e\u011fik \u00e7izgi<br \/>\n*   <code>\\'<\/code>: Tek t\u0131rnak<br \/>\n*   <code>\\\"<\/code>: \u00c7ift t\u0131rnak<\/p>\n<pre><code class=\"language-python\">escape_ornek = \"Bu bir sat\u0131r.\\nBu da ikinci sat\u0131r.\\tBir sekme bo\u015fluk.\"\nprint(escape_ornek)<\/code><\/pre>\n<h3>Raw Stringler (Ham Stringler)<\/h3>\n<p>E\u011fer string i\u00e7indeki geri e\u011fik \u00e7izgilerin escape karakteri olarak yorumlanmas\u0131n\u0131 istemiyorsan\u0131z (\u00f6rne\u011fin dosya yollar\u0131nda), stringin ba\u015f\u0131na <code>r<\/code> veya <code>R<\/code> koyarak ham string (raw string) olu\u015fturabilirsiniz.<\/p>\n<pre><code class=\"language-python\">dosya_yolu = r\"C:\\Users\\Kullan\u0131c\u0131\\Belgeler\\dosya.txt\"\nprint(dosya_yolu) # C:\\Users\\Kullan\u0131c\u0131\\Belgeler\\dosya.txt<\/code><\/pre>\n<h3>String Birle\u015ftirme (Concatenation)<\/h3>\n<p>Stringler, <code>+<\/code> operat\u00f6r\u00fc veya f-stringler\/<code>.format()<\/code> metodu ile birle\u015ftirilebilir.<\/p>\n<pre><code class=\"language-python\">ad = \"Ahmet\"\nsoyad = \"Y\u0131lmaz\"\ntam_ad = ad + \" \" + soyad\nprint(tam_ad) # Ahmet Y\u0131lmaz\n\nmesaj = \"Merhaba, benim ad\u0131m \" + ad + \".\"\nprint(mesaj) # Merhaba, benim ad\u0131m Ahmet.<\/code><\/pre>\n<h3>String Tekrarlama (Repetition)<\/h3>\n<p>Stringler, <code>*<\/code> operat\u00f6r\u00fc ile tekrarlanabilir.<\/p>\n<pre><code class=\"language-python\">tekrar = \"Merhaba \" * 3\nprint(tekrar) # Merhaba Merhaba Merhaba\n\ncizgi = \"-\" * 20\nprint(cizgi) # --------------------<\/code><\/pre>\n<h3>String Dilimleme (Slicing)<\/h3>\n<p>Stringler, listeler gibi indekslenerek ve dilimlenerek belirli b\u00f6l\u00fcmlerine eri\u015filebilir. \u0130ndeksler 0&#8217;dan ba\u015flar.<\/p>\n<p>*   <code>string[ba\u015flang\u0131\u00e7:biti\u015f]<\/code> : Ba\u015flang\u0131\u00e7 indeksinden (dahil) biti\u015f indeksine (hari\u00e7) kadar olan karakterleri al\u0131r.<br \/>\n*   <code>string[ba\u015flang\u0131\u00e7:biti\u015f:ad\u0131m]<\/code> : Belirtilen ad\u0131m aral\u0131klar\u0131yla karakterleri al\u0131r.<\/p>\n<pre><code class=\"language-python\">metin = \"Python Programlama\"\nprint(metin[0])    # P (ilk karakter)\nprint(metin[7])    # P (8. karakter)\nprint(metin[-1])   # a (son karakter)\nprint(metin[0:6])  # Python\nprint(metin[7:])   # Programlama (7. karakterden sonuna kadar)\nprint(metin[:6])   # Python (ba\u015f\u0131ndan 6. karaktere kadar)\nprint(metin[::2])  # Pto rgalm (her 2 karakterde bir)\nprint(metin[::-1]) # amalmargorP nohtyP (stringi ters \u00e7evirme)<\/code><\/pre>\n<h3>String Uzunlu\u011fu (Length)<\/h3>\n<p>Bir stringin uzunlu\u011funu (karakter say\u0131s\u0131n\u0131) <code>len()<\/code> fonksiyonu ile bulabilirsiniz.<\/p>\n<pre><code class=\"language-python\">metin = \"Merhaba D\u00fcnya\"\nuzunluk = len(metin)\nprint(uzunluk) # 13<\/code><\/pre>\n<h3>Stringlerin Immutable Yap\u0131s\u0131<\/h3>\n<p>Yukar\u0131da da belirtildi\u011fi gibi, Python&#8217;da stringler de\u011fi\u015fmez (immutable) veri tipleridir. Bu, bir string nesnesi olu\u015fturulduktan sonra i\u00e7eri\u011finin de\u011fi\u015ftirilemeyece\u011fi anlam\u0131na gelir. Herhangi bir string i\u015flemi (\u00f6rne\u011fin <code>.replace()<\/code>, birle\u015ftirme), asl\u0131nda bellekte yeni bir string nesnesi olu\u015fturur ve orijinal stringi oldu\u011fu gibi b\u0131rak\u0131r.<\/p>\n<pre><code class=\"language-python\">s = \"merhaba\"\n<h2>s[0] = 'M' # TypeError: 'str' object does not support item assignment<\/h2>\n\nyeni_s = s.upper() # yeni_s = \"MERHABA\", s hala \"merhaba\"\nprint(s)        # merhaba\nprint(yeni_s)   # MERHABA<\/code><\/pre>\n<p>Bu \u00f6zellik, stringlerin hash&#8217;lenebilir olmas\u0131n\u0131 sa\u011flar ve s\u00f6zl\u00fck anahtarlar\u0131 olarak kullan\u0131labilmelerine olanak tan\u0131r.<\/p>\n<h2>Yayg\u0131n Kullan\u0131lan String Metotlar\u0131<\/h2>\n<p>Python stringleri, \u00fczerinde bir\u00e7ok i\u015flemi ger\u00e7ekle\u015ftirebilen zengin bir metot k\u00fcmesiyle birlikte gelir. Bu metotlar, string nesneleri \u00fczerinde do\u011frudan \u00e7a\u011fr\u0131l\u0131r.<\/p>\n<h3>B\u00fcy\u00fck\/K\u00fc\u00e7\u00fck Harf D\u00f6n\u00fc\u015f\u00fcm\u00fc<\/h3>\n<p>Bu metotlar, stringlerin harf durumlar\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4><code>.lower()<\/code><\/h4>\n<p>Stringdeki t\u00fcm b\u00fcy\u00fck harfleri k\u00fc\u00e7\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"PYTHON Programlama\"\nprint(metin.lower()) # python programlama<\/code><\/pre>\n<h4><code>.upper()<\/code><\/h4>\n<p>Stringdeki t\u00fcm k\u00fc\u00e7\u00fck harfleri b\u00fcy\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"python programlama\"\nprint(metin.upper()) # PYTHON PROGRAMLAMA<\/code><\/pre>\n<h4><code>.capitalize()<\/code><\/h4>\n<p>Stringin ilk karakterini b\u00fcy\u00fck harfe, di\u011fer t\u00fcm karakterleri k\u00fc\u00e7\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"merhaba d\u00fcnya\"\nprint(metin.capitalize()) # Merhaba d\u00fcnya<\/code><\/pre>\n<h4><code>.title()<\/code><\/h4>\n<p>Stringdeki her kelimenin ilk harfini b\u00fcy\u00fck harfe, di\u011ferlerini k\u00fc\u00e7\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Kelimeler bo\u015fluklarla ayr\u0131lm\u0131\u015f olarak kabul edilir.<\/p>\n<pre><code class=\"language-python\">metin = \"bu bir \u00f6rnek metindir\"\nprint(metin.title()) # Bu Bir \u00d6rnek Metindir<\/code><\/pre>\n<h4><code>.swapcase()<\/code><\/h4>\n<p>Stringdeki b\u00fcy\u00fck harfleri k\u00fc\u00e7\u00fck harfe, k\u00fc\u00e7\u00fck harfleri b\u00fcy\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"PyThOn PrOgRaMlAmA\"\nprint(metin.swapcase()) # pYtHoN pRoGrAmLaMa<\/code><\/pre>\n<h3>Metin Arama ve Kontrol<\/h3>\n<p>Bu metotlar, bir string i\u00e7inde belirli alt stringleri aramak veya stringin i\u00e7eri\u011fi hakk\u0131nda bilgi almak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4><code>.count(alt_string, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p>Bir string i\u00e7inde belirli bir alt stringin ka\u00e7 kez ge\u00e7ti\u011fini sayar. \u0130ste\u011fe ba\u011fl\u0131 olarak arama aral\u0131\u011f\u0131 belirtilebilir.<\/p>\n<pre><code class=\"language-python\">metin = \"elma armut elma muz elma\"\nprint(metin.count(\"elma\"))    # 3\nprint(metin.count(\"armut\"))   # 1\nprint(metin.count(\"elma\", 0, 10)) # 1 (ilk 10 karakterde sadece bir \"elma\" var)<\/code><\/pre>\n<h4><code>.find(alt_string, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p>Bir alt stringin ilk ge\u00e7ti\u011fi yerin indeksini d\u00f6nd\u00fcr\u00fcr. Bulamazsa -1 d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"Python programlama dili\"\nprint(metin.find(\"programlama\")) # 7\nprint(metin.find(\"java\"))       # -1<\/code><\/pre>\n<h4><code>.rfind(alt_string, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p><code>find()<\/code> metodunun aksine, alt stringin en sa\u011fdaki (son) ge\u00e7ti\u011fi yerin indeksini d\u00f6nd\u00fcr\u00fcr. Bulamazsa -1 d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"elma armut elma muz elma\"\nprint(metin.rfind(\"elma\")) # 20 (son elman\u0131n ba\u015flang\u0131\u00e7 indeksi)<\/code><\/pre>\n<h4><code>.index(alt_string, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p><code>find()<\/code> ile benzerdir, ancak alt string bulunamazsa <code>ValueError<\/code> hatas\u0131 verir.<\/p>\n<pre><code class=\"language-python\">metin = \"Python programlama dili\"\nprint(metin.index(\"programlama\")) # 7\n<h2>print(metin.index(\"java\")) # ValueError: substring not found<\/code><\/pre>\n<\/h2>\n<h4><code>.rindex(alt_string, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p><code>rfind()<\/code> ile benzerdir, ancak alt string bulunamazsa <code>ValueError<\/code> hatas\u0131 verir.<\/p>\n<pre><code class=\"language-python\">metin = \"elma armut elma muz elma\"\nprint(metin.rindex(\"elma\")) # 20\n<h2>print(metin.rindex(\"java\")) # ValueError: substring not found<\/code><\/pre>\n<\/h2>\n<h4><code>.startswith(prefix, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p>Stringin belirtilen \u00f6nek ile ba\u015flay\u0131p ba\u015flamad\u0131\u011f\u0131n\u0131 kontrol eder. <code>True<\/code> veya <code>False<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"Merhaba D\u00fcnya\"\nprint(metin.startswith(\"Mer\"))   # True\nprint(metin.startswith(\"D\u00fcnya\", 8)) # True (8. indeksten itibaren \"D\u00fcnya\" ile ba\u015fl\u0131yor mu?)\nprint(metin.startswith(\"mer\"))   # False (b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131)<\/code><\/pre>\n<h4><code>.endswith(suffix, ba\u015flang\u0131\u00e7=0, biti\u015f=None)<\/code><\/h4>\n<p>Stringin belirtilen sonek ile bitip bitmedi\u011fini kontrol eder. <code>True<\/code> veya <code>False<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"Merhaba D\u00fcnya\"\nprint(metin.endswith(\"nya\"))    # True\nprint(metin.endswith(\"D\u00fcnya\"))  # True\nprint(metin.endswith(\"d\u00fcnya\"))  # False (b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131)<\/code><\/pre>\n<h4><code>in<\/code> operat\u00f6r\u00fc<\/h4>\n<p>Bir alt stringin ba\u015fka bir string i\u00e7inde bulunup bulunmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>in<\/code> operat\u00f6r\u00fc kullan\u0131labilir. <code>True<\/code> veya <code>False<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"Python programlama dili\"\nprint(\"programlama\" in metin) # True\nprint(\"java\" in metin)        # False<\/code><\/pre>\n<h3>Metin De\u011fi\u015ftirme<\/h3>\n<p>Bu metotlar, bir string i\u00e7indeki belirli karakterleri veya alt stringleri ba\u015fka karakterler veya alt stringlerle de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4><code>.replace(eski, yeni, sayi=-1)<\/code><\/h4>\n<p>String i\u00e7indeki <code>eski<\/code> alt stringlerini <code>yeni<\/code> alt stringleriyle de\u011fi\u015ftirir. \u0130ste\u011fe ba\u011fl\u0131 <code>sayi<\/code> parametresi ile ka\u00e7 tane de\u011fi\u015ftirilece\u011fi belirtilebilir. Varsay\u0131lan olarak t\u00fcm\u00fcn\u00fc de\u011fi\u015ftirir.<\/p>\n<pre><code class=\"language-python\">metin = \"Merhaba d\u00fcnya, d\u00fcnya \u00e7ok g\u00fczel.\"\nyeni_metin = metin.replace(\"d\u00fcnya\", \"evren\")\nprint(yeni_metin) # Merhaba evren, evren \u00e7ok g\u00fczel.\n\nyeni_metin_tek = metin.replace(\"d\u00fcnya\", \"evren\", 1)\nprint(yeni_metin_tek) # Merhaba evren, d\u00fcnya \u00e7ok g\u00fczel.<\/code><\/pre>\n<h4><code>.translate(tablo)<\/code> ve <code>str.maketrans(x, y, z)<\/code><\/h4>\n<p>Bu metotlar, karakter baz\u0131nda \u00e7oklu de\u011fi\u015ftirmeler yapmak i\u00e7in kullan\u0131l\u0131r ve daha karma\u015f\u0131k durumlar i\u00e7in <code>replace()<\/code>&#8216;ten daha etkilidir.<br \/>\n<code>str.maketrans()<\/code> fonksiyonu, bir \u00e7eviri tablosu olu\u015fturur. Bu tablo, <code>translate()<\/code> metoduna arg\u00fcman olarak verilir.<br \/>\n*   <code>str.maketrans(d\u00f6n\u00fc\u015f\u00fcm_s\u00f6zl\u00fc\u011f\u00fc)<\/code>: Anahtarlar\u0131 orijinal karakterin Unicode de\u011feri, de\u011ferleri ise yeni karakterin Unicode de\u011feri olan bir s\u00f6zl\u00fck ile tablo olu\u015fturur.<br \/>\n*   <code>str.maketrans(eski_karakterler, yeni_karakterler)<\/code>: <code>eski_karakterler<\/code> stringindeki her karakteri, <code>yeni_karakterler<\/code> stringindeki kar\u015f\u0131l\u0131k gelen karakterle e\u015fle\u015ftirir.<br \/>\n*   <code>str.maketrans(eski_karakterler, yeni_karakterler, silinecek_karakterler)<\/code>: Yukar\u0131dakine ek olarak, <code>silinecek_karakterler<\/code> stringindeki t\u00fcm karakterleri stringden kald\u0131r\u0131r.<\/p>\n<pre><code class=\"language-python\">metin = \"Merhaba D\u00fcnya123!\"\n\n<h2>\u00d6rnek 1: Karakterleri tek tek de\u011fi\u015ftirme<\/h2>\ntablo = str.maketrans(\"aeiou\", \"AEIOU\")\nprint(metin.translate(tablo)) # MErhAbA D\u00dcnyA123!\n\n<h2>\u00d6rnek 2: Belirli karakterleri silme<\/h2>\ntablo_sil = str.maketrans(\"\", \"\", \"123!\")\nprint(metin.translate(tablo_sil)) # Merhaba D\u00fcnya\n\n<h2>\u00d6rnek 3: Hem de\u011fi\u015ftirme hem silme<\/h2>\ntablo_karisik = str.maketrans(\"a\", \"A\", \"123!\")\nprint(metin.translate(tablo_karisik)) # MerhAbA D\u00fcnyA<\/code><\/pre>\n<h3>Metin B\u00f6lme ve Birle\u015ftirme<\/h3>\n<p>Bu metotlar, stringleri alt stringlere ay\u0131rmak veya bir string listesini tek bir stringde birle\u015ftirmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4><code>.split(ay\u0131r\u0131c\u0131=None, maxsplit=-1)<\/code><\/h4>\n<p>Stringi, belirtilen <code>ay\u0131r\u0131c\u0131<\/code>ya g\u00f6re b\u00f6ler ve alt stringlerin bir listesini d\u00f6nd\u00fcr\u00fcr. <code>ay\u0131r\u0131c\u0131<\/code> belirtilmezse, bo\u015fluk karakterlerine g\u00f6re b\u00f6ler ve bo\u015f stringleri atlar. <code>maxsplit<\/code> parametresi, b\u00f6lme say\u0131s\u0131n\u0131 s\u0131n\u0131rlar.<\/p>\n<pre><code class=\"language-python\">metin = \"elma,armut,muz,\u00e7ilek\"\nmeyveler = metin.split(\",\")\nprint(meyveler) # ['elma', 'armut', 'muz', '\u00e7ilek']\n\ncumle = \"Bu bir \u00f6rnek c\u00fcmledir.\"\nkelimeler = cumle.split() # Bo\u015fluklara g\u00f6re b\u00f6ler\nprint(kelimeler) # ['Bu', 'bir', '\u00f6rnek', 'c\u00fcmledir.']\n\nparcalar = \"bir iki \u00fc\u00e7 d\u00f6rt\".split(\" \", 2) # Sadece ilk 2 bo\u015fluktan b\u00f6ler\nprint(parcalar) # ['bir', 'iki', '\u00fc\u00e7 d\u00f6rt']<\/code><\/pre>\n<h4><code>.rsplit(ay\u0131r\u0131c\u0131=None, maxsplit=-1)<\/code><\/h4>\n<p><code>split()<\/code> ile ayn\u0131d\u0131r, ancak b\u00f6lme i\u015flemini stringin sa\u011f\u0131ndan (sondan) ba\u015flat\u0131r.<\/p>\n<pre><code class=\"language-python\">metin = \"bir-iki-\u00fc\u00e7-d\u00f6rt\"\nparcalar = metin.rsplit(\"-\", 2) # Sa\u011fdan 2 kez b\u00f6ler\nprint(parcalar) # ['bir-iki', '\u00fc\u00e7', 'd\u00f6rt']<\/code><\/pre>\n<h4><code>.partition(ay\u0131r\u0131c\u0131)<\/code><\/h4>\n<p>Stringi, belirtilen <code>ay\u0131r\u0131c\u0131<\/code>n\u0131n ilk ge\u00e7ti\u011fi yerden b\u00f6ler ve bir tuple d\u00f6nd\u00fcr\u00fcr: (ay\u0131r\u0131c\u0131dan \u00f6nceki k\u0131s\u0131m, ay\u0131r\u0131c\u0131, ay\u0131r\u0131c\u0131dan sonraki k\u0131s\u0131m). Ay\u0131r\u0131c\u0131 bulunamazsa, (orijinal string, &#8220;&#8221;, &#8220;&#8221;) d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-python\">metin = \"isim:john.doe@example.com\"\nkullanici_adi, ayirici, alan_adi = metin.partition(\":\")\nprint(f\"Kullan\u0131c\u0131 Ad\u0131: {kullanici_adi}, Ay\u0131r\u0131c\u0131: {ayirici}, Alan Ad\u0131: {alan_adi}\")\n<h2>Kullan\u0131c\u0131 Ad\u0131: isim, Ay\u0131r\u0131c\u0131: :, Alan Ad\u0131: john.doe@example.com<\/code><\/pre>\n<\/h2>\n<h4><code>.rpartition(ay\u0131r\u0131c\u0131)<\/code><\/h4>\n<p><code>partition()<\/code> ile ayn\u0131d\u0131r, ancak b\u00f6lme i\u015flemini <code>ay\u0131r\u0131c\u0131<\/code>n\u0131n en sa\u011fdaki (son) ge\u00e7ti\u011fi yerden yapar.<\/p>\n<pre><code class=\"language-python\">dosya_yolu = \"\/home\/user\/belgeler\/rapor.pdf\"\ndizin, ayirici, dosya_adi = dosya_yolu.rpartition(\"\/\")\nprint(f\"Dizin: {dizin}, Ay\u0131r\u0131c\u0131: {ayirici}, Dosya Ad\u0131: {dosya_adi}\")\n<h2>Dizin: \/home\/user\/belgeler, Ay\u0131r\u0131c\u0131: \/, Dosya Ad\u0131: rapor.pdf<\/code><\/pre>\n<\/h2>\n<h4><code>ay\u0131r\u0131c\u0131.join(iterable)<\/code><\/h4>\n<p>Bir string listesindeki veya ba\u015fka bir yinelenebilir nesnedeki elemanlar\u0131, <code>ay\u0131r\u0131c\u0131<\/code> stringini kullanarak tek bir stringde birle\u015ftirir.<\/p>\n<pre><code class=\"language-python\">kelimeler = [\"Python\", \"\u00e7ok\", \"g\u00fczel\", \"bir\", \"dil.\"]\ncumle = \" \".join(kelimeler)\nprint(cumle) # Python \u00e7ok g\u00fczel bir dil.\n\nsayilar = [\"1\", \"2\", \"3\", \"4\"]\nvirgul_ayirmali = \",\".join(sayilar)\nprint(virgul_ayirmali) # 1,2,3,4<\/code><\/pre>\n<h3>Bo\u015fluk Karakterlerini Y\u00f6netme<\/h3>\n<p>Bu metotlar, stringlerin ba\u015f\u0131ndaki veya sonundaki bo\u015fluk karakterlerini (bo\u015fluk, sekme, yeni sat\u0131r vb.) kald\u0131rmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4><code>.strip(karakterler=None)<\/code><\/h4>\n<p>Stringin ba\u015f\u0131ndaki ve sonundaki t\u00fcm bo\u015fluk karakterlerini kald\u0131r\u0131r. \u0130ste\u011fe ba\u011fl\u0131 olarak, kald\u0131r\u0131lacak karakterler belirtilebilir.<\/p>\n<pre><code class=\"language-python\">metin = \"   Merhaba D\u00fcnya   \\n\"\nprint(metin.strip()) # \"Merhaba D\u00fcnya\"\n\nmetin2 = \"---Python---\"\nprint(metin2.strip(\"-\")) # \"Python\"<\/code><\/pre>\n<h4><code>.lstrip(karakterler=None)<\/code><\/h4>\n<p>Stringin sadece sol taraf\u0131ndaki (ba\u015f\u0131ndaki) bo\u015fluk karakterlerini veya belirtilen karakterleri kald\u0131r\u0131r.<\/p>\n<pre><code class=\"language-python\">metin = \"   Merhaba D\u00fcnya   \"\nprint(metin.lstrip()) # \"Merhaba D\u00fcnya   \"\n\nmetin2 = \"---Python---\"\nprint(metin2.lstrip(\"-\")) # \"Python---\"<\/code><\/pre>\n<h4><code>.rstrip(karakterler=None)<\/code><\/h4>\n<p>Stringin sadece sa\u011f taraf\u0131ndaki (sonundaki) bo\u015fluk karakterlerini veya belirtilen karakterleri kald\u0131r\u0131r.<\/p>\n<pre><code class=\"language-python\">metin = \"   Merhaba D\u00fcnya   \"\nprint(metin.rstrip()) # \"   Merhaba D\u00fcnya\"\n\nmetin2 = \"---Python---\"\nprint(metin2.rstrip(\"-\")) # \"---Python\"<\/code><\/pre>\n<h3>Metin Hizalama ve Doldurma<\/h3>\n<p>Bu metotlar, stringleri belirli bir geni\u015fli\u011fe hizalamak veya doldurmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4><code>.ljust(geni\u015flik, dolgu_karakteri=' ')<\/code><\/h4>\n<p>Stringi, belirtilen <code>geni\u015flik<\/code> kadar sola hizalar ve sa\u011f taraf\u0131n\u0131 <code>dolgu_karakteri<\/code> ile doldurur.<\/p>\n<pre><code class=\"language-python\">isim = \"Ali\"\nprint(isim.ljust(10, '-')) # Ali-------<\/code><\/pre>\n<h4><code>.rjust(geni\u015flik, dolgu_karakteri=' ')<\/code><\/h4>\n<p>Stringi, belirtilen <code>geni\u015flik<\/code> kadar sa\u011fa hizalar ve sol taraf\u0131n\u0131 <code>dolgu_karakteri<\/code> ile doldurur.<\/p>\n<pre><code class=\"language-python\">isim = \"Ali\"\nprint(isim.rjust(10, '<em>')) # <strong><\/strong><\/em><em><\/em>Ali<\/code><\/pre>\n<h4><code>.center(geni\u015flik, dolgu_karakteri=' ')<\/code><\/h4>\n<p>Stringi, belirtilen <code>geni\u015flik<\/code> kadar ortalar ve her iki taraf\u0131n\u0131 <code>dolgu_karakteri<\/code> ile doldurur.<\/p>\n<pre><code class=\"language-python\">isim = \"Ali\"\nprint(isim.center(10, '=')) # ===Ali====<\/code><\/pre>\n<h4><code>.zfill(geni\u015flik)<\/code><\/h4>\n<p>Stringin say\u0131sal bir de\u011feri temsil etti\u011fini varsayarak, sol taraf\u0131n\u0131 s\u0131f\u0131rlarla doldurarak belirtilen <code>geni\u015flik<\/code>e ula\u015f\u0131r. \u0130\u015faret (<code>+<\/code> veya <code>-<\/code>) varsa, s\u0131f\u0131rlar i\u015faret ile say\u0131 aras\u0131na yerle\u015ftirilir.<\/p>\n<pre><code class=\"language-python\">sayi = \"42\"\nprint(sayi.zfill(5))   # 00042\n\nnegatif_sayi = \"-123\"\nprint(negatif_sayi.zfill(7)) # -000123<\/code><\/pre>\n<h3>Karakter Tipi Kontrolleri<\/h3>\n<p>Bu metotlar, bir stringin i\u00e7eri\u011finin belirli bir karakter tipini (alfabetik, say\u0131sal vb.) temsil edip etmedi\u011fini kontrol eder.<\/p>\n<h4><code>.isalnum()<\/code><\/h4>\n<p>Stringdeki t\u00fcm karakterler alfabetik veya say\u0131sal ise <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, aksi takdirde <code>False<\/code>. En az bir karakter olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"Python3\".isalnum()) # True\nprint(\"Python Programlama\".isalnum()) # False (bo\u015fluk var)\nprint(\"\".isalnum()) # False (bo\u015f string)<\/code><\/pre>\n<h4><code>.isalpha()<\/code><\/h4>\n<p>Stringdeki t\u00fcm karakterler alfabetik (harf) ise <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, aksi takdirde <code>False<\/code>. En az bir karakter olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"Python\".isalpha()) # True\nprint(\"Python3\".isalpha()) # False (say\u0131 var)<\/code><\/pre>\n<h4><code>.isdigit()<\/code><\/h4>\n<p>Stringdeki t\u00fcm karakterler say\u0131sal (rakam) ise <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, aksi takdirde <code>False<\/code>. En az bir karakter olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"12345\".isdigit()) # True\nprint(\"123a\".isdigit())  # False<\/code><\/pre>\n<h4><code>.islower()<\/code><\/h4>\n<p>Stringdeki t\u00fcm harfler k\u00fc\u00e7\u00fck harf ise <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, aksi takdirde <code>False<\/code>. En az bir harf olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"python\".islower()) # True\nprint(\"Python\".islower()) # False<\/code><\/pre>\n<h4><code>.isupper()<\/code><\/h4>\n<p>Stringdeki t\u00fcm harfler b\u00fcy\u00fck harf ise <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, aksi takdirde <code>False<\/code>. En az bir harf olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"PYTHON\".isupper()) # True\nprint(\"Python\".isupper()) # False<\/code><\/pre>\n<h4><code>.isspace()<\/code><\/h4>\n<p>Stringdeki t\u00fcm karakterler bo\u015fluk karakteri (bo\u015fluk, sekme, yeni sat\u0131r vb.) ise <code>True<\/code> d\u00f6nd\u00fcr\u00fcr, aksi takdirde <code>False<\/code>. En az bir karakter olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"   \\n\\t\".isspace()) # True\nprint(\" \".isspace())       # True\nprint(\" A \".isspace())     # False<\/code><\/pre>\n<h4><code>.istitle()<\/code><\/h4>\n<p>Stringin <code>.title()<\/code> metodunun kurallar\u0131na uygun olup olmad\u0131\u011f\u0131n\u0131 kontrol eder (yani her kelimenin ilk harfi b\u00fcy\u00fck, di\u011ferleri k\u00fc\u00e7\u00fck).<\/p>\n<pre><code class=\"language-python\">print(\"Bu Bir Ba\u015fl\u0131k\".istitle()) # True\nprint(\"bu bir ba\u015fl\u0131k\".istitle()) # False\nprint(\"Bu bir ba\u015fl\u0131k\".istitle()) # False (ikinci kelime k\u00fc\u00e7\u00fck harfle ba\u015flam\u0131\u015f)<\/code><\/pre>\n<h4><code>.isdecimal()<\/code>, <code>.isnumeric()<\/code>, <code>.isdigit()<\/code> farklar\u0131<\/h4>\n<p>Bu \u00fc\u00e7 metot say\u0131sal karakterleri kontrol eder, ancak kapsamlar\u0131 farkl\u0131d\u0131r:<br \/>\n*   <code>.isdigit()<\/code>: Sadece 0-9 aras\u0131 rakamlar\u0131 ve baz\u0131 Unicode say\u0131sal karakterleri (\u00f6rn. \u00fcst simge rakamlar) kontrol eder.<br \/>\n*   <code>.isdecimal()<\/code>: Sadece onluk tabandaki say\u0131lar\u0131 (0-9) kontrol eder.<br \/>\n*   <code>.isnumeric()<\/code>: T\u00fcm say\u0131sal karakterleri (0-9, Roma rakamlar\u0131, kesirler, \u00fcst simge\/alt simge say\u0131lar, \u00c7ince say\u0131sal karakterler vb.) kontrol eder. Genellikle en geni\u015f kapsaml\u0131 olan\u0131d\u0131r.<\/p>\n<pre><code class=\"language-python\">print(\"123\".isdigit())    # True\nprint(\"123\".isdecimal())  # True\nprint(\"123\".isnumeric())  # True\n\nprint(\"\u00b2\".isdigit())      # True (\u00fcst simge 2)\nprint(\"\u00b2\".isdecimal())    # False\nprint(\"\u00b2\".isnumeric())    # True\n\nprint(\"\u00bd\".isdigit())      # False (kesir)\nprint(\"\u00bd\".isdecimal())    # False\nprint(\"\u00bd\".isnumeric())    # True\n\nprint(\"\u2163\".isdigit())      # False (Roma rakam\u0131 4)\nprint(\"\u2163\".isdecimal())    # False\nprint(\"\u2163\".isnumeric())    # True<\/code><\/pre>\n<h3>Formatlama Metotlar\u0131<\/h3>\n<p>Stringleri daha okunabilir ve dinamik hale getirmek i\u00e7in kullan\u0131l\u0131rlar.<\/p>\n<h4><code>.format()<\/code><\/h4>\n<p>String i\u00e7indeki <code>{}<\/code> yer tutucular\u0131n\u0131 arg\u00fcmanlarla doldurur. Konumsal veya anahtar kelime arg\u00fcmanlar\u0131 kullan\u0131labilir.<\/p>\n<pre><code class=\"language-python\">isim = \"Ay\u015fe\"\nyas = 30\nmesaj = \"Merhaba, benim ad\u0131m {} ve {} ya\u015f\u0131nday\u0131m.\".format(isim, yas)\nprint(mesaj) # Merhaba, benim ad\u0131m Ay\u015fe ve 30 ya\u015f\u0131nday\u0131m.\n\nmesaj_kw = \"Merhaba, benim ad\u0131m {ad} ve {yas} ya\u015f\u0131nday\u0131m.\".format(ad=\"Mehmet\", yas=25)\nprint(mesaj_kw) # Merhaba, benim ad\u0131m Mehmet ve 25 ya\u015f\u0131nday\u0131m.\n\n<h2>Formatlama se\u00e7enekleri<\/h2>\npi = 3.14159\nprint(\"Pi say\u0131s\u0131: {:.2f}\".format(pi)) # Pi say\u0131s\u0131: 3.14\n\nsayi = 1234567\nprint(\"B\u00fcy\u00fck say\u0131: {:,}\".format(sayi)) # B\u00fcy\u00fck say\u0131: 1,234,567<\/code><\/pre>\n<h4>f-stringler (Formatted String Literals)<\/h4>\n<p>Python 3.6 ile tan\u0131t\u0131lan f-stringler, string formatlaman\u0131n en modern ve tercih edilen yoludur. Daha k\u0131sa, okunabilir ve genellikle daha performansl\u0131d\u0131rlar. Stringin ba\u015f\u0131na <code>f<\/code> veya <code>F<\/code> koyularak olu\u015fturulur ve <code>{}<\/code> i\u00e7ine do\u011frudan de\u011fi\u015fkenler veya ifadeler yaz\u0131labilir.<\/p>\n<pre><code class=\"language-python\">isim = \"Can\"\nyas = 28\nmesaj = f\"Merhaba, benim ad\u0131m {isim} ve {yas} ya\u015f\u0131nday\u0131m.\"\nprint(mesaj) # Merhaba, benim ad\u0131m Can ve 28 ya\u015f\u0131nday\u0131m.\n\n<h2>\u0130fade kullan\u0131m\u0131<\/h2>\nx = 10\ny = 20\nprint(f\"Toplam: {x + y}\") # Toplam: 30\n\n<h2>Formatlama se\u00e7enekleri f-stringlerde de kullan\u0131labilir<\/h2>\npi = 3.14159\nprint(f\"Pi say\u0131s\u0131: {pi:.2f}\") # Pi say\u0131s\u0131: 3.14\n\nsayi = 1234567\nprint(f\"B\u00fcy\u00fck say\u0131: {sayi:,}\") # B\u00fcy\u00fck say\u0131: 1,234,567<\/code><\/pre>\n<h2>Geli\u015fmi\u015f String \u0130\u015flemleri ve Performans<\/h2>\n<p>B\u00fcy\u00fck veri k\u00fcmeleriyle veya performans kritik uygulamalarda \u00e7al\u0131\u015f\u0131rken, string i\u015flemlerinin performans\u0131 \u00f6nem kazanabilir.<\/p>\n<h3>String Birle\u015ftirmede Performans<\/h3>\n<p>Python&#8217;da stringler de\u011fi\u015fmez oldu\u011fu i\u00e7in, <code>+<\/code> operat\u00f6r\u00fc ile birden fazla stringi birle\u015ftirmek, her bir birle\u015ftirme i\u015fleminde yeni bir string olu\u015fturulmas\u0131na neden olur. Bu, \u00f6zellikle \u00e7ok say\u0131da stringi d\u00f6ng\u00fc i\u00e7inde birle\u015ftirirken performans d\u00fc\u015f\u00fc\u015f\u00fcne yol a\u00e7abilir.<\/p>\n<pre><code class=\"language-python\"># K\u00f6t\u00fc performans \u00f6rne\u011fi (b\u00fcy\u00fck d\u00f6ng\u00fclerde)\ns = \"\"\nfor i in range(10000):\n    s += str(i) # Her ad\u0131mda yeni bir string olu\u015fturulur\n\n<h2>Daha iyi performans \u00f6rne\u011fi: .join() metodu<\/h2>\nliste = []\nfor i in range(10000):\n    liste.append(str(i))\ns = \"\".join(liste) # Tek bir birle\u015ftirme i\u015flemi yap\u0131l\u0131r<\/code><\/pre>\n<p><code>join()<\/code> metodu, birle\u015ftirilecek t\u00fcm par\u00e7alar\u0131 \u00f6nceden toplay\u0131p tek seferde yeni bir string olu\u015fturdu\u011fu i\u00e7in \u00e7ok daha verimlidir.<\/p>\n<h3>Regex (D\u00fczenli \u0130fadeler) ile String \u0130\u015flemleri<\/h3>\n<p>Python&#8217;\u0131n <code>re<\/code> mod\u00fcl\u00fc, stringler \u00fczerinde karma\u015f\u0131k desen e\u015fle\u015ftirme ve manip\u00fclasyonu i\u00e7in d\u00fczenli ifadeler (regex) kullanmaya olanak tan\u0131r. Bu, standart string metotlar\u0131n\u0131n yetersiz kald\u0131\u011f\u0131 durumlarda \u00e7ok g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/p>\n<p>Baz\u0131 yayg\u0131n <code>re<\/code> mod\u00fcl\u00fc fonksiyonlar\u0131:<br \/>\n*   <code>re.search(desen, metin)<\/code>: Metin i\u00e7inde desenin ilk ge\u00e7ti\u011fi yeri arar. Bir e\u015fle\u015fme nesnesi veya <code>None<\/code> d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>re.match(desen, metin)<\/code>: Metnin ba\u015flang\u0131c\u0131nda desenin e\u015fle\u015fip e\u015fle\u015fmedi\u011fini kontrol eder.<br \/>\n*   <code>re.findall(desen, metin)<\/code>: Metindeki desenin t\u00fcm e\u015fle\u015fmelerini bir liste olarak d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>re.sub(desen, yeni_string, metin)<\/code>: Desenle e\u015fle\u015fen t\u00fcm alt stringleri <code>yeni_string<\/code> ile de\u011fi\u015ftirir.<br \/>\n*   <code>re.split(desen, metin)<\/code>: Desene g\u00f6re stringi b\u00f6ler.<\/p>\n<pre><code class=\"language-python\">import re\n\nmetin = \"Telefon numaralar\u0131m: 555-123-4567 ve 543-987-6543.\"\n\n<h2>Numaralar\u0131 bulma<\/h2>\ntelefon_numaralari = re.findall(r'\\d{3}-\\d{3}-\\d{4}', metin)\nprint(telefon_numaralari) # ['555-123-4567', '543-987-6543']\n\n<h2>E-posta adresi do\u011frulama<\/h2>\nemail = \"test@example.com\"\nif re.match(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$', email):\n    print(f\"'{email}' ge\u00e7erli bir e-posta adresidir.\")\nelse:\n    print(f\"'{email}' ge\u00e7ersiz bir e-posta adresidir.\")\n\n<h2>Tarihleri de\u011fi\u015ftirme<\/h2>\nmetin_tarih = \"Bug\u00fcn\u00fcn tarihi 2023-10-26, yar\u0131n 2023-10-27.\"\nyeni_metin_tarih = re.sub(r'2023-10-(\\d{2})', r'2024-01-\\1', metin_tarih)\nprint(yeni_metin_tarih) # Bug\u00fcn\u00fcn tarihi 2024-01-26, yar\u0131n 2024-01-27.<\/code><\/pre>\n<p>Regex, metin i\u015fleme yeteneklerini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde geni\u015fletir, ancak \u00f6\u011frenmesi ve kullanmas\u0131 standart string metotlar\u0131na g\u00f6re daha karma\u015f\u0131kt\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Python&#8217;\u0131n string fonksiyonlar\u0131 ve metotlar\u0131, metin verileriyle \u00e7al\u0131\u015fmak i\u00e7in son derece g\u00fc\u00e7l\u00fc, esnek ve kapsaml\u0131 bir ara\u00e7 seti sunar. Temel string olu\u015fturma ve indekslemeden ba\u015flayarak, b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf d\u00f6n\u00fc\u015f\u00fcmleri, arama, de\u011fi\u015ftirme, b\u00f6lme, birle\u015ftirme, bo\u015fluk y\u00f6netimi ve formatlama gibi \u00e7e\u015fitli i\u015flemleri kolayca ger\u00e7ekle\u015ftirebiliriz. <code>.format()<\/code> metodu ve \u00f6zellikle f-stringler gibi modern formatlama yakla\u015f\u0131mlar\u0131, stringleri dinamik ve okunabilir bir \u015fekilde olu\u015fturmay\u0131 basitle\u015ftirir.<\/p>\n<p>Stringlerin de\u011fi\u015fmez (immutable) yap\u0131s\u0131, Python&#8217;da string manip\u00fclasyonunun temel bir y\u00f6n\u00fcd\u00fcr ve performans a\u00e7\u0131s\u0131ndan <code>join()<\/code> metodunun neden <code>+<\/code> operat\u00f6r\u00fcne tercih edildi\u011fini a\u00e7\u0131klar. Daha karma\u015f\u0131k desen e\u015fle\u015ftirme ve metin manip\u00fclasyonu ihtiya\u00e7lar\u0131 i\u00e7in <code>re<\/code> (d\u00fczenli ifadeler) mod\u00fcl\u00fc, neredeyse s\u0131n\u0131rs\u0131z olanaklar sunar.<\/p>\n<p>Veri bilimi, web geli\u015ftirme, otomasyon veya herhangi bir metin tabanl\u0131 i\u015flem gerektiren projelerde, Python&#8217;\u0131n string yeteneklerini etkin bir \u015fekilde kullanmak, kodunuzu daha temiz, daha verimli ve daha az hataya a\u00e7\u0131k hale getirecektir. Bu makale, Python string fonksiyonlar\u0131n\u0131n geni\u015f d\u00fcnyas\u0131na bir kap\u0131 aralam\u0131\u015f ve okuyuculara bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 kendi projelerinde kullanmalar\u0131 i\u00e7in sa\u011flam bir temel sunmu\u015ftur.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar\nGiri\u015f\nPython, modern programlama d\u00fcnyas\u0131n\u0131n en pop\u00fcler dillerinden biridir ve b","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-32328","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 String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar - 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-string-fonksiyonlari-metin-islemede-guclu-araclar\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar\" \/>\n<meta property=\"og:description\" content=\"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar Giri\u015f Python, modern programlama d\u00fcnyas\u0131n\u0131n en pop\u00fcler dillerinden biridir ve b\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-20T10:40:57+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=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar\",\"datePublished\":\"2025-10-20T10:40:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/\"},\"wordCount\":2379,\"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-string-fonksiyonlari-metin-islemede-guclu-araclar\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/\",\"name\":\"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-20T10:40:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar\"}]},{\"@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 String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar - 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-string-fonksiyonlari-metin-islemede-guclu-araclar\/","og_locale":"tr_TR","og_type":"article","og_title":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar","og_description":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar Giri\u015f Python, modern programlama d\u00fcnyas\u0131n\u0131n en pop\u00fcler dillerinden biridir ve b","og_url":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-20T10:40:57+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar","datePublished":"2025-10-20T10:40:57+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/"},"wordCount":2379,"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-string-fonksiyonlari-metin-islemede-guclu-araclar\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/","url":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/","name":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-20T10:40:57+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/python-string-fonksiyonlari-metin-islemede-guclu-araclar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python String Fonksiyonlar\u0131: Metin \u0130\u015flemede G\u00fc\u00e7l\u00fc Ara\u00e7lar"}]},{"@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\/32328","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=32328"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32328\/revisions"}],"predecessor-version":[{"id":32329,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32328\/revisions\/32329"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}