- Katılım
- 21 Ocak 2024
- Mesajlar
- 164
- Tepkime puanı
- 36
- Puanları
- 28
Strings
Metin bir string veri tipidir. Metin olarak yazılan her veri türü bir string'tir. Tek, çift veya üçlü tırnak içindeki tüm veriler string'tir. String veri türleriyle başa çıkmak için farklı string yöntemleri ve yerleşik fonksiyonlar vardır. Bir stringin uzunluğunu kontrol etmek için len() metodunu kullanın.
String Oluşturma
Çok satırlı dize, üçlü tek (''') veya üçlü çift tırnak (“”") kullanılarak oluşturulur. Aşağıdaki örneğe bakınız.
String Birleştirme
Stringleri birbirine bağlayabiliriz. String'leri birleştirmeye veya bağlamaya concatenation denir. Aşağıdaki örneğe bakın:
Dizelerdeki Kaçış Dizileri
Python'da ve diğer programlama dillerinde \ karakterinin ardından bir kaçış dizisi gelir. En yaygın kaçış karakterlerini görelim:
Şimdi yukarıdaki kaçış dizilerinin kullanımını örneklerle görelim.
String biçimlendirme
Eski Stil String Biçimlendirme (% Operatör)
Python'da karakter dizilerini biçimlendirmenin birçok yolu vardır. Bu bölümde bunlardan bazılarını ele alacağız. “%” operatörü, bir ‘tuple’ (sabit boyutlu bir liste) içine alınmış bir dizi değişkeni, normal metinle birlikte ‘argüman belirticileri’, ‘%s’, ‘%d’, ‘%f’, ‘%.number of digitsf’ gibi özel semboller içeren bir biçim dizesiyle birlikte biçimlendirmek için kullanılır.
Yeni Stil String Biçimlendirme (str.format)
Bu biçimlendirme Python sürüm 3'te tanıtılmıştır.
String Interpolasyonu / f-Strings (Python 3.6+)
Bir başka yeni string biçimlendirmesi de string interpolasyonu, f-strings. Dizeler f ile başlar ve verileri karşılık gelen konumlarına enjekte edebiliriz.
Karakter Dizileri Olarak Python Stringleri
Python stringleri karakter dizileridir ve temel erişim yöntemlerini diğer Python sıralı nesne dizileri olan listeler ve tuplelar ile paylaşırlar. Dizilerden tek karakterleri (ve herhangi bir diziden tek tek üyeleri) çıkarmanın en basit yolu, bunları ilgili değişkenlere açmaktır.
Karakterleri Paketten Çıkarma
Dizelerdeki Karakterlere Dizine Göre Erişme
Programlamada sayma sıfırdan başlar. Bu nedenle, bir dizenin ilk harfi sıfır indisindedir ve bir dizenin son harfi dizenin uzunluğu eksi birdir.
Eğer sağ uçtan başlamak istiyorsak negatif indeksleme kullanabiliriz. -1 son indekstir.
l
Python Dizelerini Parçalama
Python'da dizeleri alt dizelere bölebiliriz.
Bir Dizeyi Tersine Çevirme
Python'da stringleri kolayca tersine çevirebiliriz.
Dize Yöntemleri
Dizeleri biçimlendirmemizi sağlayan birçok dize yöntemi vardır. Aşağıdaki örnekte bazı string metotlarını görebilirsiniz:
capitalize(): Dizenin ilk karakterini büyük harfe dönüştürür
count(): dize içinde alt dizenin oluşumlarını döndürür, count(substring, start=.., end=..). Start, sayım için bir başlangıç indeksidir ve end, sayılacak son indekstir.
endswith(): Bir dizenin belirtilen bir sonla bitip bitmediğini kontrol eder
find(): Bir alt dizenin ilk oluşumunun indeksini döndürür, bulunamazsa -1 döndürür
rfind(): Bir alt dizenin son oluşumunun indeksini döndürür, bulunamazsa -1 döndürür
format(): dizeyi daha güzel bir çıktıya dönüştürür
index(): Bir alt dizenin en düşük dizinini döndürür, ek bağımsız değişkenler başlangıç ve bitiş dizinini belirtir (varsayılan 0 ve dize uzunluğu - 1). Alt dize bulunamazsa bir valueError döndürür.
rindex(): Bir alt dizenin en yüksek dizinini döndürür, ek bağımsız değişkenler başlangıç ve bitiş dizinini belirtir (varsayılan 0 ve dize uzunluğu - 1)
isalnum(): Alfanümerik karakteri kontrol eder
isalpha(): Tüm dize öğelerinin alfabe karakterleri (a-z ve A-Z) olup olmadığını kontrol eder
isdecimal(): Bir dizedeki tüm karakterlerin ondalık (0-9) olup olmadığını kontrol eder
isdigit(): Bir dizedeki tüm karakterlerin sayı olup olmadığını kontrol eder (sayılar için 0-9 ve diğer bazı unicode karakterleri)
isnumeric(): Bir dizedeki tüm karakterlerin sayı veya sayı ile ilgili olup olmadığını kontrol eder (isdigit() gibi, sadece ½ gibi daha fazla sembol kabul eder)
isidentifier(): Geçerli bir tanımlayıcı olup olmadığını kontrol eder - bir dizenin geçerli bir değişken adı olup olmadığını kontrol eder
islower(): Dizedeki tüm alfabe karakterlerinin küçük harf olup olmadığını kontrol eder
isupper(): Dizedeki tüm alfabe karakterlerinin büyük harf olup olmadığını kontrol eder
join(): Birleştirilmiş bir dize döndürür
strip(): Dizenin başından ve sonundan başlayarak verilen tüm karakterleri kaldırır
replace(): Alt dizeyi verilen bir dizeyle değiştirir
split(): Verilen dizeyi veya boşluğu ayırıcı olarak kullanarak dizeyi böler
title(): Başlık kodlu bir dize döndürür
swapcase(): Tüm büyük harf karakterlerini küçük harfe ve tüm küçük harf karakterlerini büyük harfe dönüştürür
startswith(): String'in Belirtilen String ile Başlayıp Başlamadığını Kontrol Eder
Metin bir string veri tipidir. Metin olarak yazılan her veri türü bir string'tir. Tek, çift veya üçlü tırnak içindeki tüm veriler string'tir. String veri türleriyle başa çıkmak için farklı string yöntemleri ve yerleşik fonksiyonlar vardır. Bir stringin uzunluğunu kontrol etmek için len() metodunu kullanın.
String Oluşturma
Python:
letter = 'P' # A string could be a single character or a bunch of texts
print(letter) # P
print(len(letter)) # 1
greeting = 'Hello, World!' # String could be made using a single or double quote,"Hello, World!"
print(greeting) # Hello, World!
print(len(greeting)) # 13
sentence = "I hope you are enjoying the Python Challenge"
print(sentence)
Çok satırlı dize, üçlü tek (''') veya üçlü çift tırnak (“”") kullanılarak oluşturulur. Aşağıdaki örneğe bakınız.
Python:
multiline_string = '''Ben bir öğretmenim ve öğretmekten keyif alıyorum.
İnsanları güçlendirmek kadar ödüllendirici bir şey bulamadım.'''
print(multiline_string)
# Aynı şeyi yapmanın başka bir yolu
multiline_string = “”"Ben bir öğretmenim ve öğretmekten zevk alıyorum.
İnsanları güçlendirmek kadar ödüllendirici bir şey bulamadım.“””
print(multiline_string)
String Birleştirme
Stringleri birbirine bağlayabiliriz. String'leri birleştirmeye veya bağlamaya concatenation denir. Aşağıdaki örneğe bakın:
Python:
first_name = 'PwnLabMe'last_name = 'Cyber'
space = ' '
full_name = first_name + space + last_name
print(full_name) # PwnLabMe Cyber
# len() yerleşik işlevini kullanarak bir stringin uzunluğunu kontrol eder
print(len(first_name)) # 8
print(len(last_name)) # 5
print(len(first_name) > len(last_name)) # True
print(len(full_name)) # 14
Dizelerdeki Kaçış Dizileri
Python'da ve diğer programlama dillerinde \ karakterinin ardından bir kaçış dizisi gelir. En yaygın kaçış karakterlerini görelim:
\n: yeni satır
\t: Tab araçları (8 boşluk)
\\: Sırt eğik çizgi
\': Tek tırnak (')
\": Çift tırnak (")
Şimdi yukarıdaki kaçış dizilerinin kullanımını örneklerle görelim.
Python:
print('Umarım herkes Python serisinin tadını çıkarıyordur.\nSiz?') # satır sonu
print('Days\tTopics\tExercises') # sekme boşluğu veya 4 boşluk ekleme
print('Gün 1\t5\t5')
print('Gün 2\t6\t20')
print('Gün 3\t5\t23')
print('Gün 4\t1\t35')
print('Bu bir ters eğik çizgi sembolüdür (\\)') # Ters eğik çizgi yazmak için
print('Her programlama dilinde \“Hello, World!\” ile başlar') # tek tırnak içine çift tırnak yazmak için
# çıktı
Umarım herkes Python serisinin tadını çıkarıyordur.
Ya siz?
Günler Konular Alıştırmalar
Gün 1 5 5
2. Gün 6 20
3. Gün 5 23
4. Gün 1 35
Bu bir ters eğik çizgi sembolüdür (\)
Her programlama dilinde “Merhaba, Dünya!” ile başlar.
String biçimlendirme
Eski Stil String Biçimlendirme (% Operatör)
Python'da karakter dizilerini biçimlendirmenin birçok yolu vardır. Bu bölümde bunlardan bazılarını ele alacağız. “%” operatörü, bir ‘tuple’ (sabit boyutlu bir liste) içine alınmış bir dizi değişkeni, normal metinle birlikte ‘argüman belirticileri’, ‘%s’, ‘%d’, ‘%f’, ‘%.number of digitsf’ gibi özel semboller içeren bir biçim dizesiyle birlikte biçimlendirmek için kullanılır.
%s - Dize (veya sayılar gibi dize gösterimine sahip herhangi bir nesne)
%d - Tamsayılar
%f - Kayan noktalı sayılar
“%.number of digitsf” - Sabit hassasiyetli kayan noktalı sayılar
Python:
# Strings onlyfirst_name = 'PwnLabMe'
last_name = 'Cyber'
language = 'Python'
formated_string = 'I am %s %s. I teach %s' %(first_name, last_name, language)
print(formated_string)
# Strings and numbers
radius = 10
pi = 3.14
area = pi * radius ** 2
formated_string = 'The area of circle with a radius %d is %.2f.' %(radius, area) # 2 refers the 2 significant digits after the point
python_libraries = ['Django', 'Flask', 'NumPy', 'Matplotlib','Pandas']
formated_string = 'The following are python libraries:%s' % (python_libraries)
print(formated_string) # "The following are python libraries:['Django', 'Flask', 'NumPy', 'Matplotlib','Pandas']"
Yeni Stil String Biçimlendirme (str.format)
Bu biçimlendirme Python sürüm 3'te tanıtılmıştır.
Python:
first_name = 'PwnLabMe'last_name = 'Cyber'
language = 'Python'
formated_string = 'I am {} {}. I teach {}'.format(first_name, last_name, language)
print(formated_string)
a = 4
b = 3
print('{} + {} = {}'.format(a, b, a + b))
print('{} - {} = {}'.format(a, b, a - b))
print('{} * {} = {}'.format(a, b, a * b))
print('{} / {} = {:.2f}'.format(a, b, a / b)) # limits it to two digits after decimal
print('{} % {} = {}'.format(a, b, a % b))
print('{} // {} = {}'.format(a, b, a // b))
print('{} ** {} = {}'.format(a, b, a ** b))
# output
4 + 3 = 7
4 - 3 = 1
4 * 3 = 12
4 / 3 = 1.33
4 % 3 = 1
4 // 3 = 1
4 ** 3 = 64
# Strings and numbers
radius = 10
pi = 3.14
area = pi * radius ** 2
formated_string = 'The area of a circle with a radius {} is {:.2f}.'.format(radius, area) # 2 digits after decimal
print(formated_string)
String Interpolasyonu / f-Strings (Python 3.6+)
Bir başka yeni string biçimlendirmesi de string interpolasyonu, f-strings. Dizeler f ile başlar ve verileri karşılık gelen konumlarına enjekte edebiliriz.
Python:
a = 4
b = 3
print(f'{a} + {b} = {a +b}')
print(f'{a} - {b} = {a - b}')
print(f'{a} * {b} = {a * b}')
print(f'{a} / {b} = {a / b:.2f}')
print(f'{a} % {b} = {a % b}')
print(f'{a} // {b} = {a // b}')
print(f'{a} ** {b} = {a ** b}')
Karakter Dizileri Olarak Python Stringleri
Python stringleri karakter dizileridir ve temel erişim yöntemlerini diğer Python sıralı nesne dizileri olan listeler ve tuplelar ile paylaşırlar. Dizilerden tek karakterleri (ve herhangi bir diziden tek tek üyeleri) çıkarmanın en basit yolu, bunları ilgili değişkenlere açmaktır.
Karakterleri Paketten Çıkarma
Python:
language = 'Python'
a,b,c,d,e,f = language # unpacking sequence characters into variables
print(a) # P
print(b) # y
print(c) # t
print(d) # h
print(e) # o
print(f) # n
Dizelerdeki Karakterlere Dizine Göre Erişme
Programlamada sayma sıfırdan başlar. Bu nedenle, bir dizenin ilk harfi sıfır indisindedir ve bir dizenin son harfi dizenin uzunluğu eksi birdir.
Python:
language = 'Python'
first_letter = language[0]
print(first_letter) # P
second_letter = language[1]
print(second_letter) # y
last_index = len(language) - 1
last_letter = language[last_index]
print(last_letter) # n
Eğer sağ uçtan başlamak istiyorsak negatif indeksleme kullanabiliriz. -1 son indekstir.
l
Python:
anguage = 'Python'
last_letter = language[-1]
print(last_letter) # n
second_last = language[-2]
print(second_last) # o
Python Dizelerini Parçalama
Python'da dizeleri alt dizelere bölebiliriz.
Python:
language = 'Python'
first_three = language[0:3] # sıfır endeksinden başlar ve 3'e kadar çıkar ancak 3'ü içermez
print(first_three) #Pyt
last_three = language[3:6]
print(last_three) # hon
# Another way
last_three = language[-3:]
print(last_three) # hon
last_three = language[3:]
print(last_three) # hon
Bir Dizeyi Tersine Çevirme
Python'da stringleri kolayca tersine çevirebiliriz.
Python:
greeting = 'Hello, World!'
print(greeting[::-1]) # !dlroW ,olleH
Dilimleme Sırasında Karakter Atlama
Dilimleme yöntemine adım bağımsız değişkenini geçirerek dilimleme sırasında karakterleri atlamak mümkündür.
language = 'Python'
pto = language[0:6:2] #
print(pto) # Pto
Dize Yöntemleri
Dizeleri biçimlendirmemizi sağlayan birçok dize yöntemi vardır. Aşağıdaki örnekte bazı string metotlarını görebilirsiniz:
capitalize(): Dizenin ilk karakterini büyük harfe dönüştürür
Python:
challenge = 'ne mutlu türküm diyene'
print(challenge.capitalize()) # 'Ne mutlu türküm diyene'
count(): dize içinde alt dizenin oluşumlarını döndürür, count(substring, start=.., end=..). Start, sayım için bir başlangıç indeksidir ve end, sayılacak son indekstir.
Python:
challenge = 'ne mutlu türküm diyene'
print(challenge.count('y')) # 1
print(challenge.count('y', 7, 14)) # 0
print(challenge.count('th')) # 0`
endswith(): Bir dizenin belirtilen bir sonla bitip bitmediğini kontrol eder
Python:
challenge = 'ne mutlu türküm diyene'
print(challenge.endswith('ne')) # True
print(challenge.endswith('tion')) # False
find(): Bir alt dizenin ilk oluşumunun indeksini döndürür, bulunamazsa -1 döndürür
Python:
challenge = 'ne mutlu türküm diyene'
print(challenge.find('y')) # 18
print(challenge.find('th')) # -1
rfind(): Bir alt dizenin son oluşumunun indeksini döndürür, bulunamazsa -1 döndürür
Python:
challenge = 'ne mutlu türküm diyene'
print(challenge.rfind('y')) # 18
print(challenge.rfind('th')) # -1
format(): dizeyi daha güzel bir çıktıya dönüştürür
Python:
first_name = 'PwnLabMe'last_name = 'Cyber'
age = 250
job = 'Blog'
country = 'Turkiye'
sentence = 'I am {} {}. I am a {}. I am {} years old. I live in {}.'.format(first_name, last_name, age, job, country)
print(sentence) # I am PwnLabMe Cyber. I am a 250. I am Blog years old. I live in Turkiye.
radius = 10
pi = 3.14
area = pi * radius ** 2
result = 'The area of a circle with radius {} is {}'.format(str(radius), str(area))
print(result) # The area of a circle with radius 10 is 314
index(): Bir alt dizenin en düşük dizinini döndürür, ek bağımsız değişkenler başlangıç ve bitiş dizinini belirtir (varsayılan 0 ve dize uzunluğu - 1). Alt dize bulunamazsa bir valueError döndürür.
Python:
challenge = 'ne mutlu türküm diyene'
sub_string = 'da'
print(challenge.index(sub_string)) # 7
print(challenge.index(sub_string, 9)) # error
rindex(): Bir alt dizenin en yüksek dizinini döndürür, ek bağımsız değişkenler başlangıç ve bitiş dizinini belirtir (varsayılan 0 ve dize uzunluğu - 1)
Python:
challenge = 'ne mutlu türküm diyene'
sub_string = 'da'
print(challenge.rindex(sub_string)) # 7
print(challenge.rindex(sub_string, 9)) # error
print(challenge.rindex('on', 8)) # 19
isalnum(): Alfanümerik karakteri kontrol eder
Python:
challenge = 'ThirtyDaysPython'
print(challenge.isalnum()) # True
challenge = '30DaysPython'
print(challenge.isalnum()) # True
challenge = 'thirty days of python'
print(challenge.isalnum()) # False, space is not an alphanumeric character
challenge = 'thirty days of python 2019'
print(challenge.isalnum()) # False
isalpha(): Tüm dize öğelerinin alfabe karakterleri (a-z ve A-Z) olup olmadığını kontrol eder
Python:
challenge = 'thirty days of python'
print(challenge.isalpha()) # False, space is once again excluded
challenge = 'ThirtyDaysPython'
print(challenge.isalpha()) # True
num = '123'
print(num.isalpha()) # False
isdecimal(): Bir dizedeki tüm karakterlerin ondalık (0-9) olup olmadığını kontrol eder
Python:
challenge = 'thirty days of python'
print(challenge.isdecimal()) # False
challenge = '123'
print(challenge.isdecimal()) # True
challenge = '\u00B2'
print(challenge.isdigit()) # False
challenge = '12 3'
print(challenge.isdecimal()) # False, space not allowed
isdigit(): Bir dizedeki tüm karakterlerin sayı olup olmadığını kontrol eder (sayılar için 0-9 ve diğer bazı unicode karakterleri)
Python:
challenge = 'Thirty'
print(challenge.isdigit()) # False
challenge = '30'
print(challenge.isdigit()) # True
challenge = '\u00B2'
print(challenge.isdigit()) # True
isnumeric(): Bir dizedeki tüm karakterlerin sayı veya sayı ile ilgili olup olmadığını kontrol eder (isdigit() gibi, sadece ½ gibi daha fazla sembol kabul eder)
Python:
num = '10'
print(num.isnumeric()) # True
num = '\u00BD' # ½
print(num.isnumeric()) # True
num = '10.5'
print(num.isnumeric()) # False
isidentifier(): Geçerli bir tanımlayıcı olup olmadığını kontrol eder - bir dizenin geçerli bir değişken adı olup olmadığını kontrol eder
Python:
challenge = '30DaysOfPython'
print(challenge.isidentifier()) # False, because it starts with a number
challenge = 'thirty_days_of_python'
print(challenge.isidentifier()) # True
islower(): Dizedeki tüm alfabe karakterlerinin küçük harf olup olmadığını kontrol eder
Python:
challenge = 'thirty days of python'
print(challenge.islower()) # True
challenge = 'Thirty days of python'
print(challenge.islower()) # False
isupper(): Dizedeki tüm alfabe karakterlerinin büyük harf olup olmadığını kontrol eder
Python:
challenge = 'thirty days of python'
print(challenge.isupper()) # False
challenge = 'THIRTY DAYS OF PYTHON'
print(challenge.isupper()) # True
join(): Birleştirilmiş bir dize döndürür
Python:
web_tech = ['HTML', 'CSS', 'JavaScript', 'React']
result = ' '.join(web_tech)
print(result) # 'HTML CSS JavaScript React'
strip(): Dizenin başından ve sonundan başlayarak verilen tüm karakterleri kaldırır
Python:
challenge = 'thirty days of pythoonnn'
print(challenge.strip('noth')) # 'irty days of py'
replace(): Alt dizeyi verilen bir dizeyle değiştirir
Python:
challenge = 'thirty days of python'
print(challenge.replace('python', 'coding')) # 'thirty days of coding'
split(): Verilen dizeyi veya boşluğu ayırıcı olarak kullanarak dizeyi böler
Python:
challenge = 'thirty days of python'
print(challenge.split()) # ['thirty', 'days', 'of', 'python']
challenge = 'thirty, days, of, python'
print(challenge.split(', ')) # ['thirty', 'days', 'of', 'python']
title(): Başlık kodlu bir dize döndürür
Python:
challenge = 'thirty days of python'
print(challenge.title()) # Thirty Days Of Python
swapcase(): Tüm büyük harf karakterlerini küçük harfe ve tüm küçük harf karakterlerini büyük harfe dönüştürür
Python:
challenge = 'thirty days of python'
print(challenge.swapcase()) # THIRTY DAYS OF PYTHON
challenge = 'Thirty Days Of Python'
print(challenge.swapcase()) # tHIRTY dAYS oF pYTHON
startswith(): String'in Belirtilen String ile Başlayıp Başlamadığını Kontrol Eder
Python:
challenge = 'thirty days of python'
print(challenge.startswith('thirty')) # True
challenge = '30 days of python'
print(challenge.startswith('thirty')) # False