Python Dizeler

Hüseyin

Hüseyin

Üye
Top Poster Of Month
Katılım
21 Ocak 2024
Mesajlar
78
Tepkime puanı
27
Puanları
18
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

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
 
Geri
Üst