🔤

String İşlemleri

Python'da string (metin) işlemleri

👀 Hızlı Bakış

  • 🌟 Programlama dillerindeki en önemli konulardandır
  • 📈 Verimliliği artırma adına bu konunun bilinmesi mühimdir
💁‍♂️ Diğer önemli konu Arama İşlemleri olarak söylenir

🧱 Temel İşlemler

String'ler karakter listesi olarak geçtiğinden list özelliklerini taşır.
İşlem
Açıklama
+, =- ...
Aritmetik operatörleri destekler
len(string)
Karakter sayısı
string[i]
i. karakter
string[-i]
len-i. karakter (Sondan i kadar önceki)
string[i:]
i. eleman ve sonrasındakiler
string[:i]
i. elemana kadar (i dahil değil) olanlar
string[i:j]
i. eleman ve j. elemana kadar (j dahil değil) olanlar
string[-j:-i]
len-j. eleman ve len-i. elemana kadar (len-i dahil değil) olanlar
'{:>i}'.format('test')
i karakter ayırır metni sağa yaslar
'{:i}'.format('test')
i karakter ayırır metni sola sağlar
🧙‍♂️ Detaylar için string formatlama sayfasına bakabilirsin.

🔌 String Ön Ekleri

💠 Metot
📝 Açıklama
f
Format string ön eki
r
Raw String ön eki
u
Unicode string ön eki
"""
Çok satırlı string
x = 10
f"{x} = 10" # "x = 10"
f"{x=}" # "x = 10" (F-String)
"Hello\tWorld" # "Hello World"
r"Hello\tWorld" # "Hello\tWorld"
u"🦅" # "🦅"
"""Hello
World
"""
# Hello
# World
"""
Hello
World
"""
#
# Hello
# World
"""
Hello
World
""".strip()
# Hello
# World

👨‍🔧 String Düzenleme

📈 Verimlilik Notları

  • r ök eki ile yazılan string daha hızlı işlenir
  • replace metodu en hızlı string değiştirme metodudur.
    • replace(...).replace(...) ile çoklu değişim yapılması daha hızlıdır
Ek kaynaklar:
  • String değiştirme hızları kıyaslaması için buraya bakabilirsin

💠 Metotlar ile

💠 Metot
📝 Açıklama
len
Uzunluk
strip
Temizleme, düzeltme
ltrip
Metnin solunu temizleme, düzeltme
rtrip
Metnin sağını temizleme, düzeltme
format
Formatlama
lower, upper
Küçük / büyük harf
split
Parçalama
[<başlangıç>:<bitiş>]
Kesme
join
Birleştirme
find
Karakter indeksini bulma
replace
Metin değiştirme
count
Metin sayma
sort
Metni sıralama
len("yemreak") # 7
' abc '.strip() # 'abc'
' abc '.ltrip() # 'abc '
' abc '.rtrip() # ' abc'
"X: {}, Y: {}".format(1, 2) # 'X: 1, Y: 2'
"As".lower(), "As".upper() # "as", "AS"
"yemreak".replace("ak", "") # 'yemre'
['n', 'a', 'i'].sort() # ['a', 'i', 'n']
"ye mre ak".split(" ") # ['ye', 'mre', 'ak']
"yemreak".[2:5], "yemreak".[-3:-1] # "mre", "ea"
','.join(['do', 're', 'mi']) # 'do,re,mi'
"yemreak".find('e') # 1 (yoksa -1)
"yeymey".count("y") # 3

💎 Özel karakterler ile

  • ⌨️ print gibi yazdırma metotlarında kullanılır
🦄 Karakter
📝 Açıklama
\n
Yeni satır
\r
Satır başı
\t
Tab (4 boşluk
\
Escape chars

💯 Operatörler ile

💎 Operatör
📝 Açıklama
: <10
10 karakterlik alana sola dayalı yazma
: >10
10 karakterlik alana sağ dayalı yazma
=
F-string
%
Operatör ile formatlama
var = "YEmreAk"
f"{var=}" # "var='YEmreAk'"
f"{var: <10}" # 'YEmreAk '
f"{var: >10}" # ' YEmreAk'
f"{var: ^10}" # ' YEmreAk '
num = 1234.56789
f"{num=}" # 'num=1234.56789'
f"{str(num)=}" # "str(num)='1234.56789'"
f"{num:.7f}" # '1234.5678900'
f"{num:.7g}" # '1234.568'
num = 1234.5672
f"{num:.7g}" # '1234.567'
'new(%s %d)' % ('help', 5) # 'new(help 5)'

👨‍💻 Kod Parçaları

🔂 Karakter Değiştirme

Stringler string[i] = char yapısını desteklemez, alttaki yöntem gibi işlemler kullanılır
def change_char(string, i, char):
if i != -1:
return string[:i]+char+string[i+1:]
else:
return string[:i]+char

🙃 Karakterleri Ters Çevirme

def reverse_char(sentence):
rev = ""
for i in range(1, len(sentence) + 1):
rev += sentence[-i]
return rev

🙃 Kelimeleri Ters Çevirme

def reverse_word(sentence):
words = sentence.split(' ')
for i in range(1, len(words) + 1):
sentence += words[-i] + " "
return sentence[:-1] # Sondaki, fazladan ' ' karakteri kaldırılıyor

🔍 Metin Arama

Alttaki yöntem ile tek bir karakteri string içerisinde bulabilirsiniz.
string = "yemreak"
tek_metin = "yemre"
metinler = ['emre', 'ak']
# Tek metin işlemi
if tek_metin in string:
print("Metin bulundu")
# Çok fazla metin işlemleri
if all(metin in string for metin in metinler):
print("Hepsi bulundu")
if any(metin in string for metin in metinler):
print("Herhangi biri bulundu)
Kaynak için buraya bakabilirsin.

️‍🕵️‍♂️ Metinlerin Konumunu Bulma

import re
[m.start() for m in re.finditer('test', 'test test test test')]
#[0, 5, 10, 15]

🅰️ Karakter Sayma

string = "Yemreak"
for i, char in enumerate(string):
print(i, char)
# 0 Y
# 1 e
# 2 m
# ...