🔤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.
+
, =-
...
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
🔌 String Ön Ekleri
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şlenirreplace
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
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
Yeni satır
Satır başı
Tab (4 boşluk
\
Escape chars
💯 Operatörler ile
: <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
# ...
Last updated
Was this helpful?