3. Temel İşlemler ve Veri Tipleri#
3.1. Temel Aritmetik İşlemler#
Python da tüm programlama dilleri gibi temelde bir hesap makinesidir. En basitinden başlayarak Python’da yapılabilecek matematiksel işlemlere göz atalım. Amacımız tabii ki Python’u bir hesap makinesi olarak kullanmak değil ancak kullandığınız editöre alışmak için alıştırma yapmak.
18 + 7
25
81 - 17
64
12 * 6
72
96 / 12
8.0
Bir değeri her defasında tekrar tekrar kullanmak yerine bu değeri bir değişkene atayıp değişkeni kullanmak ve değiştirmek gerekebilir.
a = 12
a
12
a ** 2
144
Anlaşılacağı üzere “**” operatörü üs alma için kullanılır. En son geçerli (hesaplanmış) değeri göstermek ya da kullanmak için alt çizgi “_” kullanılır.
_
144
_ / 24
6.0
Ekrana herhangi bir şey yazdırmak için print () komutu kullanılır.
print("Python öğreniyorum")
Python öğreniyorum
Python 3’te, Python 2’den farklı olarak print() komutu mutlaka parantez ile birlikte kullanılmalıdır. Python’da kullanılan başlıca matematiksel işlem ve karşılaştırma işaretleri (operatörleri) aşağıdaki gibidir:
Operatör |
Açıklama |
---|---|
+ |
Toplama |
- |
Çıkarma |
/ |
Bölme |
* |
Çarpma |
% |
Mod alma |
** |
Üs alma |
// |
Tamsayı bölme |
7 ** 2
49
12 == 12
True
13.5 == 12.5
False
2.78 <= 3.14
True
Python yazılan bir matematiksel işlemi değerlendirirken matematiksel kurallara uygun olarak önce parantez içini, sonra üs alma işlemini ve daha sonra da sırasıyla bölme ve çarpma işlemleri ile toplama ve çıkarma işlemlerini dikkate alır.
3**2 * 4
36
3**(2*4)
6561
5 + 4 / 2
7.0
(5 + 4) / 2
4.5
Python terminalinde ya da IPython veya Jupyter gibi bir ortamda işlem yapıyorsanız, yazdığınız işlemin sonucu yukarıda olduğu gibi hemen alt satırda görünecektir. Ancak PyCharm gibi entegre bir Python ortamında kod yazıyorsanız, programı çalıştırdığınızda yazdığınız matematiksel işlemin sonucu çıktılar arasında görünmez. Python, işlemi hesaplar ancak çıktıyı yazması gerektiğini bilemez. İşlemin sonucunu yazmasını print() komutu ile söyleyebilirsiniz.
12 * 5
Process finished with exit code 0
print (12*5)
60
Process finished with exit code 0
5 / 2
2.5
10 // 3
3
23 // 3
7
Python’u terminalden ya da IPython veya Jupyter gibi bir editörden kullanıyorsanız herhangi bir matematiksel işlemin sonucunu görmek için doğrudan işlemi yazmanız yeterli olacaktır. Terminal ve IPython Shell’de işlemi yazdıktan sonra Enter tuşuna, Jupyter notebook dokümanında ise hücre içine kodu yazdıktan sonra Shift + Enter tuşlarına basmanız gerekir. Diğer taraftan PyCharm gibi bir entegre geliştirme ortamında (IDE: Integrated Development Environment) kod dosyası içinde işlemi yazarsanız, program çalıştırdığınızda hiçbir çıktı ile karşılaşmazsınız. Burada bir aritmetik işleminin sonucunu görmek için ilgili işlemi print() fonksiyonu içinde yazmak gerekir. Aşağıdaki örnekte, deneme.py dosyasının içine sadece 5**4 yazdığımızı düşünelim.
5**4
C:\ProgramData\Anaconda3\python.exe
C:/Users/PycharmProjects/deneme.py
Process finished with exit code 0
Yukarıda deneme.py dosyası çalıştırıldığında çıktı da herhangi bir sonuç görünmemektedir. Aynı kodu print() fonksiyonu kullanarak çalıştırdığımızda ise aşağıdaki sonuç görünmektedir.
print (5**4)
C:\ProgramData\Anaconda3\python.exe
C:/Users/PycharmProjects/deneme.py
625
Process finished with exit code 0
Son olarak Python’da açıklama yazmayı görelim. Bütün programlama dillerinde kodların arasında açıklama yazabilmek için belirli kurallar vardır. Yazdığınız programları okuyanların daha kolay anlayabilmesi için kod satırları arasında açıklayıcı cümleler yazmak iyi bir uygulama şeklidir. Siz bile daha önce yazdığınız bir kodu incelerken “Acaba burada ne yapmak istemiştim?” diye düşünebilirsiniz. Yazılan bir açıklama cümlesinin kod parçası olmadığını anlatmanın bir yolu olmalıdır. Python’da bu cümlenin önüne # işareti getirmektir. Python’da, bu işaret görüldüğünde satırın geri kalan kısmı değerlendirmeye alınmaz.
print (5**2) # Üs alma işlemi
print(13 % 3) # Mod alma işlemi
# Aşağıdaki işlemde tam sayı bölme örneği veriliyor
print(15 // 4)
25
1
3
Python’da açıklama cümlelerini birden fazla satıra yaymak da mümkündür. Açıklamanın başına ve sonuna üç tane tırnak işareti “”” getirerek açıklamaları birden fazla satırda yazabilirsiniz.
""" Birden fazla satıra
yayılmış açıklama cümlesi örneği.
Verilen sayının karesini yazdırma.
"""
x = "42"
print (float (x)**2) # Kullanıcının 42 girdiği durumda
1764.0
3.2. Değişkenler#
Tüm programlama dillerinin ortak bir özelliği de değişken kullanmalarıdır. Değişken, en basit tanımıyla bir değeri daha sonra da kullanabilmek için bu değere verilen isimdir. Örneğin, e = 2.71828183 yazarsam, bundan sonra her defasında sayıyı uzun uzun yazmak yerine e yazmam yeterli olacaktır. Program, e yazdığımda aslında neyi kast ettiğimi anlayacaktır.
Programların çalışması sırasında bilgisayarların hafızasında farklı türde veriler depolanır ve kullanılır. Verilerin depolandığı yerler “nesne” olarak isimlendirilir. Bu nesnelere ulaşmak için de isimlere ihtiyaç duyarız. Bir nesneye verilen isme de “değişken” denir (Stroustrup, Programming Principles and Practice Using C++, Pearson, 2009). Veri nesneleri farklı türlerde olabilir. Bu farklı türlerin neler olduğuna izleyen bölümde değineceğiz.
Bir değişken tanımlamak için kullanılacak değişken ismi ve sonrasında = yazıldıktan sonra değişkene atanacak değer yazılır. Bir değişkene basit bir değer atanabileceği gibi daha karmaşık veri yapıları da atanabilir.
isim = "İlker Arslan"
pi = 3.14
x = 18
Bazı dillerde bir değişkeni kullanmadan önce mutlaka bu değişkeni ve bu değişkenin verinin tipini tanımlamak gerekir. Python’da ise buna gerek yoktur. Ayrıca, bir değişkenin hangi tipte olduğunu da açıkça belirtmeye de gerek yoktur. Python, değişkenin aldığı değere bakarak hangi tipte olduğunu anlayabilir.
Python’da değişken isimlerini belirlerken uyulması gereken kurallar aşağıdadır. Bu kurallardan bazılarına uymamak hataya ve programın durmasına yol açabilir. Bazıları ise sadece iyi programlama alışkanlığı olarak önerilmektedir (Matthes, Python Crash Course: A Hands on Project Based Introduction to Programming, San Francisco: No Starch Press, 2015).
Değişkenler harf, sayı ya da alt çizgi içerebilir. Bir değişken ismi harf veya alt çizgi ile başlayabilir ama sayı ile başlayamaz ve boşluk içeremez. Diğer dillerde değişken isimlerinde nokta da kullanılsa da Python’da buna izin verilmez.
Python’da tanımlanmış olan anahtar kelimeleri ve fonksiyon isimlerini değişken ismi olarak kullanmamaya dikkat edin. Örneğin “def”, Python’da fonksiyon tanımlamak için kullanılan bir kelimedir. Bu kelimeyi değişken ismi olarak kullanmak istersek hata mesajı ile karşılaşırız.
def = 4 # Hata
Cell In[26], line 1
def = 4 # Hata
^
SyntaxError: invalid syntax
Bazı diğer dillerde olmayan bir özellik de birden fazla değişkeni aynı anda tanımlamaya izin verilmesidir.
a, b = 3.14, 2.78
print(a)
print(b)
3.14
2.78
Birden fazla değişkeni tanımlarken normal veya köşeli parantez de kullanılabilir.
[x, y, z] = [7, 8, 9]
print(x)
print(y)
print(z)
7
8
9
Mümkün olduğu kadar kısa ancak aynı zamanda anlaşılır değişken isimlerini her zaman tercih etmeniz önerilir. Örneğin, bir programda müşteri numarası için değişkene ihtiyaç duymanız halinde mn, m_n, gibi pratik ancak anlaşılması zor değişken isimleri yerine musteri_no gibi bir değişken ismini tercih etmelisiniz.
Değişkenleri isimlendirme konusunda genel kabul gören birkaç yöntem vardır. Bu şekilde kullanmak mecburi olmamakla birlikte yazdığınız kodların kendi içinde tutarlı olması ve anlaşılabilir olması açısından belirli bir isimlendirme şeklini kullanmayı alışkanlık edinmeniz tavsiye edilir.
Öncelikle, değişken isimlerini küçük harflerle tanımlamak, şart olmamakla birlikte tavsiye edilen bir alışkanlıktır. Değişken ismi, birden fazla kelimeden oluşuyorsa kelimeleri alt çizgi ile ayırabilirsiniz ya da ilk kelime küçük harf, sonraki her kelimenin ise sadece ilk harfi büyük olacak şekilde bitişik olarak yazabilirsiniz: musteri_no ya da musteriNo gibi. Diğer dillerde değişkenlerde nokta kullanılması kabul edilse de Python’da değişken isminde nokta kullanılmaz. Bunun sebebini Python metodlarını anlatırken göreceğiz. Son olarak değişken isimlerinin büyük ve küçük harfe duyarlı olduğuna dikkat etmek gerekir. Yani, abc, ABC, Abc, aBc farklı değişken isimlerini temsil eder.
3.3. Temel Veri Tipleri#
Buraya kadar, bazı sayısal işlemler gerçekleştirdik. Ayrıca ekrana yazı yazdırdık. Bir programlama dilinde ilk öğrenilmesi gereken konulardan birisi de bu dildeki veri tipleridir. Nasıl ki bizler veirleri rakam, sayı, ondalık sayı, harf, kelime gibi farklı sınıflara ayırıyorsak bilgisayar programlarında da veriler farklı türlere ayrılır. Örneğin, 12, 13 tamsayı iken 3.14 gerçel sayı, “Merhaba Python” ise metin tipinde verilerdir.
Python’da temel olarak int (integer: tamsayı), float (gerçel sayı) ve string (metin) veri tipleri bulunmaktadır. Bu üç veri tipinin dışında da bir değeri olmayan ve yer tutucu görevi gören None (boş) ve sadece True, False (Doğru, Yanlış) değerlerini alabilen bool veri tipleri bulunmaktadır. Ayrıca, karmaşık sayıları belirtmek için complex veri tipi de mevcuttur. Daha ileride göreceğimiz daha karmaşık veri yapıları bu temel veriler kullanılarak oluşturulmaktadır.
3.3.1. Sayısal Veri Tipleri#
Integer: Tamsayı türündeki verilerdir. Python’da tamsayıları 10’luk sistem dışında ikilik, sekizlik veya 16’lık sistemde yazmak da mümkündür. İkilik sistemde bir tamsayı yazmak için sayının başına 0b (0 ve binary kelimesinin ilk harfi) getirilir. Benzer şekilde sekizli sayma düzeni için sayının başına 0o, 16’lı sayma düzeninde bir sayı yazmak için sayının başına 0x karakterleri getirilir.
# Onluk düzende 100 sayısı
100
100
# İkili düzende 100 sayısının onluk düzendeki karşılığı
0b100
4
# Sekizlik düzendeki 100 sayısının onluk düzendeki karşılığı
0o100
64
# Onaltılık düzendeki 100 sayısının onluk düzendeki karşılığı
0x100
256
Bir gerçel sayıyı tam sayıya çevirmek için int()
fonksiyonu kullanılır. Bu fonksiyon, gerçel sayının ondalık bölümünü atar.
int(-3.999)
-3
int(4.2)
4
int(-2.78)
-2
int(7.99)
7
int()
fonksiyonu, metin olarak girilmiş bir sayıyı da tamsayıya çevirebilir.
int("1807")
1807
int()
fonksiyonunu kullanırken, ikinci bir argüman olarak sayının hangi sayma sisteminde olduğunu da belirtebiliriz.
int("1010", 2)
10
int("A0", 16)
160
int("100", 4)
16
Bir verinin türünü öğrenmek için type()
fonksiyonu kullanılır.
type(17)
int
Bir verinin kaç bit büyüklüğünde olduğunu görmek için .bit_length()
metodu kullanılır. Bu özelliği tamsayılar için de kullanabiliriz.
(10).bit_length()
4
(1000000000).bit_length()
30
Float: Gerçel sayılar ya da ondalık sayılar float veri tipi olarak saklanır. Python ondalık kısmı olan her sayıyı float olarak kabul eder.
3.14
3.14
2.7818
2.7818
Çok büyük sayıları yazmak için bilimsel notasyon da kullanılabilir. Örneğin, \(4x10^{12}\) sayısı 4e12 olarak yazılabilir.
4e12
4000000000000.0
Tamsayılardaki int()
fonksiyonu gibi bir veriyi float veri tipine çevirmek için de float()
fonksiyonu kullanılır.
float(11)
11.0
float("18.07")
18.07
Complex: Karmaşık sayıları belirtmek üzere kullanılır. Bilindiği gibi karmaşık sayılar bir gerçel, bir de sanal kısımdan oluşan nesnelerdir. Python’da karmaşık sayının sanal kısmı j harfi ile belirtilir. Sanal kısmı belirten \(j = \sqrt{-1}\) olarak tanımlanır.
3 + 4j
(3+4j)
2 - 3j
(2-3j)
type(1 + 2j)
complex
5 + 3j + 3 - 2j
(8+1j)
Bir karmaşık sayı tanımlamak için complex()
fonksiyonu da kullanılabilir. Bu fonksiyon iki argüman alır. İlk argüman oluşturulacak karmaşık sayının gerçel kısmını, ikinci argüman ise sanal kısmını belirtir.
complex(4, 3)
(4+3j)
complex(2.7, 3.2)
(2.7+3.2j)
None: Herhangi bir değeri olmayan boş bir nesneyi temsil eder. İlk harf mutlaka büyük yazılmalıdır. Python’da herhangi bir değer döndürmeyen fonksiyonlar None nesnesini verir. Python’da genelde bir fonksiyonun opsiyonel argümanlarının varsayılan değeri None olur. Bu şekilde fonksiyon kullanıldığında, opsiyonel argümana bir değer atanıp atanamadığı program tarafından anlaşılır (Zelle, 2009).
x = None
x is None
True
Bool: Sadece True (Doğru) veya False (Yanlış) değerlerinden birini alabilen mantıksal bir veri türüdür. Sayısal olarak 0 değeri False ve sıfır dışındaki tüm sayılar True kabul edilir.
bool(0)
False
bool(-3)
True
bool(4.12)
True
İleride göreceğimiz, tuple, list, dictionary gibi veri yapılarında da veri yapısının hiç elemanı yoksa yani boş ise bool karşılığı False, bir veya daha fazla elemanı varsa True kabul edilir. None boş nesnesinin de hiçbir değeri ya da bir özelliği bulunmadığı için False bool değerini alır.
bool(None)
False
Bool verileri 0 ve 1 olarak kabul edildiğinden bunlarla yapılan matematiksel işlemlerde de 0 ve 1 değerlerini alırlar.
True + True
2
True + False
1
True * False
0
3.3.2. Metin Veri Tipi (String)#
String, bir veya daha fazla karakter dizisinden oluşan metin tipi veri yapısıdır. String veri tipi Pyhon’da tırnak işareti (“ ”) veya kesme işareti (‘ ’) arasında yazılarak belirtilir. İyi uygulama alışkanlığı açısından bir tanesini kullanmayı alışkanlık edinmekte fayda vardır. Metin veri tipi için iki işareti de kullanabilmenin bir faydası da metnin içinde tırnak veya kesme işareti kullanımına izin vermesidir.
"Python, 'Guido van Rossum' tarafından geliştirilmiştir."
"Python, 'Guido van Rossum' tarafından geliştirilmiştir."
Yukarıdaki metni aşağıdaki şekillerde yazarsanız hata mesajı ile karşılaşırsınız.
"Python, "Guido van Rossum" tarafından geliştirilmiştir." # Hata
Cell In[64], line 1
"Python, "Guido van Rossum" tarafından geliştirilmiştir." # Hata
^
SyntaxError: invalid syntax
'Python, 'Guido van Rossum' tarafından geliştirilmiştir.' # Hata
Cell In[67], line 1
'Python, 'Guido van Rossum' tarafından geliştirilmiştir.' # Hata
^
SyntaxError: invalid syntax
Yan yana metinleri ayrı tırnak işaretleri içinde yazarsanız Python bunları da bir araya getirir.
"birinci " "ikinci " "üçüncü"
'birinci ikinci üçüncü'
Python’da, string veri tipi UTF-8 karakter setini desteklemektedir. Bunun bizim için anlamı, Python’da string türü verilerde, Türkçe karakterleri de kullanabiliyor olmamızdır.
metin = "İıŞşÖöÜüĞğ"
print(metin)
İıŞşÖöÜüĞğ
Bazı programlama dillerinde, tek bir karakterden oluşan veri tipi karakter, birden fazla karakterden oluşan veri tipi ise metin olarak isimlendirilir. Python’da böyle bir ayrım yoktur. Metnin uzunluğu kaç karakter olursa olsun string veri tipindedir. Bir metnin içindeki karakterler 0’dan başlayan sıra numaraları ile numaralandırılmıştır. İlk karakterin sırası sıfır, ikinci sıradaki karakterin sırası iki olmak üzere devam eder. Bir metinde herhangi bir sıradaki karakteri çekmek için köşeli parantez, [ ], içinde sıra numarası yazılır.
P |
y |
t |
h |
o |
n |
p |
r |
o |
g |
r |
a |
m |
l |
a |
m |
a |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
il = "İzmir"
il[0]
'İ'
il[1], il[2]
('z', 'm')
il[3]
'i'
Sıra numarasının sıfır ile başladığına dikkat etmişsinizdir. Python’da tüm sıralamalar sıfırdan başlar.
Diğer yandan, yukarıdaki örnekler bir metnin içeriğinin kısmen değiştirilebileceği anlamına gelmez. Yani bir metni tanımladıktan sonra, metnin sözgelimi 3. karakterini değiştirmek isterseniz bir hata mesajı ile karşılaşırsınız.
ulke = "türkiye"
ulke[0] = "T" # Hata
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[73], line 2
1 ulke = "türkiye"
----> 2 ulke[0] = "T" # Hata
TypeError: 'str' object does not support item assignment
Python’da tüm değişkenleri olduğu gibi metinleri de yazdırmanın yolu print()
fonksiyonunu kullanmaktır. Birden fazla metni bir arada yazdırmak için print fonksiyonu içinde bir araya getirilmek istenen metinler arasında +
işareti konur.
print("Python " + "öğreniyorum" + "!")
Python öğreniyorum!
Bir veriyi metne çevirmenin yolu str() fonksiyonunu kullanmaktır.
x = 12345
type(x)
int
y = str(x)
y
'12345'
type(y)
str
Python’da metinleri birden fazla satırda yazmak da mümkündür. Bunun iki yolu vardır. İlk yolu, daha önce açıklama yazımında gördüğümüz gibi, metnin başında ve sonunda üçer adet tırnak ya da kesme işareti kullanmaktır. Arada kalan metni farklı satırlara yazabilirsiniz.
"""Python'da metinler
birden fazla satıra
yazılabilir.
"""
"Python'da metinler \nbirden fazla satıra \nyazılabilir.\n"
Metnin çıktısı tek satırda verilir ama çıktıdaki “\n” karakteri dikkatinizi çekmiştir. Bu karakter satır sonu karakteri olarak kullanılır. Program, metin içinde \n karakteri gördüğünde alt satıra geçer. Aynı şekilde, yukarıdaki gibi Enter tuşuna basılarak alt satıra geçildiğinde program buraya \n karakterini yerleştirir.
metin = "Bu metin \nbirden fazla \nsatırda yazılmıştır."
metin
'Bu metin \nbirden fazla \nsatırda yazılmıştır.'
print(metin)
Bu metin
birden fazla
satırda yazılmıştır.
Yukarıdaki kodda sadece değişken adı ile yazdırılan metinle, print() kullanılarak yazdırılan metin arasındaki farka dikkat edin. Benzer şekilde metin içinde sekme (tab) karakteri koymak için \t kullanılır.
metin = "Python \t ile \t programlama."
print(metin)
Python ile programlama.
Metin içinde tırnak işareti veya kesme işareti kullanmak için \”
ve \’
kullanılır. Yukarıda görüldüğü gibi “\”
karakterinin özel bir kullanımı olduğundan dosya ve klasör adreslerini yazarken bu karakterin olduğu gibi kullanılması hata mesajı alınmasına yol açabilir.
dir = "C:\users\ilker\Desktop"
Cell In[85], line 1
dir = "C:\users\ilker\Desktop"
^
SyntaxError: (unicode error) 'unicodeescape'
codec can't decode bytes in position 2-3: truncated \uXXXX escape
Bu hatanın önüne geçmek için yazılacak metnin önüne “r” harfi getirilir. Bu harf “raw” yani ham kelimesinin kısaltmasıdır ve yazılan metnin olduğu gibi alınmasını sağlar.
dir = r"C:\users\ilker\Desktop"
dir
'C:\\users\\ilker\\Desktop'
print(dir)
C:\users\ilker\Desktop
Metinleri ya da metin veri tipindeki değişkenleri toplamak da mümkündür. İki veya daha fazla metni, +
operatörü ile topladığımızda, bu metinler birleştirilir.
ad = "Guido"
soyad = "van Rossum"
adsoyad = ad + " " + soyad
adsoyad
'Guido van Rossum'
Nasıl ki metinlerle toplama işlemi yapmak mümkünse, çarpma işlemi de mümkündür. Çarpma işlemi de bir metni yan yana istenen sayıda yazmak için kullanılır.
dil = "Python "
dil3 = dil * 3
dil3
'Python Python Python '
Python’da metinlerle işlem yapmak ve metinleri değiştirebilmek için geliştirilmiş metodlar bulunmaktadır. Aşağıdaki örnekte yer alan .title()
metodu, metindeki her kelimenin ilk harfini büyük diğerlerini küçük yapar. Metodlar, Python’a özel fonksiyonlar olup ilerleyen bölümlerde ayrıntılı olarak aktarılacaktır.
isim = "Hüseyin Eren Arslan"
isim.title()
'Hüseyin Eren Arslan'
isim = "HUSEYIN EREN ARSLAN"
isim.title()
'Huseyin Eren Arslan'
Yukarıda görülen isim.title() şeklindeki kod, Python’a isim değişkeni üzerinde .title()
metodunu kullanmasını söylemektedir.
Bir metnin sadece ilk harfini büyük, diğerlerini ise küçük yapmak için .capitalize()
metodu kullanılır.
isim = "Hüseyin Eren Arslan"
isim.capitalize()
'Hüseyin eren arslan'
Benzer şekilde metnin büyük harf yapmak için upper()
, küçük harf yapmak için lower()
metodları kullanılabilir.
isim = "HüSeYin ERen ArSLan"
isim.upper()
'HÜSEYIN EREN ARSLAN'
isim.lower()
'hüseyin eren arslan'
Bir metin boşluk içeriyor ve bu metni saklamadan ya da bir işlemden geçirmeden önce metindeki boşlukları ortadan kaldırmanız gerekiyor olabilir. Bunun için, .rstrip()
, .lstrip()
ve .strip()
metodları kullanılır. Bu metodlardan ilk ikisi metnin sağındaki ve solundaki boşlukları kaldırır. Sonuncusu ise metindeki tüm boşlukları kaldırır.
metin = " Python öğreniyorum "
metin
' Python öğreniyorum '
metin.rstrip() # sağdaki boşlukları kaldır
' Python öğreniyorum'
metin.lstrip() #soldaki boşlukları kaldır
'Python öğreniyorum '
metin.strip() # her iki taraftaki boşlukları kaldır
'Python öğreniyorum'
Bir metni kelimelerine ayırmak içinse .split()
metodunu kullanabiliriz.
msj = "Python ile programlama öğreniyorum"
msj.split()
['Python', 'ile', 'programlama', 'öğreniyorum']
Metnin herhangi bir bölümünde değişiklik yapmak için .replace()
metodu kullanılabilir.
metin = "İstanbul Ankara Adana İstanbul Edirne Kars İstanbul"
metin.replace("İstanbul", "İzmir")
'İzmir Ankara Adana İzmir Edirne Kars İzmir'
İstediğimiz değişikliğin kaç kez yapılacağını da belirtebiliriz. Örneğin, Yukarıdaki örnekte, sadece ilk “İstanbul” kelimesinin değişmesini, diğerlerinin aynı kalmasını istiyorsak aşağıdaki gibi üçüncü bir argüman olarak 1 yazarız.
metin.replace("İstanbul", "İzmir", 1)
'İzmir Ankara Adana İstanbul Edirne Kars İstanbul'
Bir metinde belirli bir karakter dizisinin kaç kez yer aldığını bulmak için .count() metodu kullanılır.
metin = "İstanbul Ankara Adana İstanbul Edirne Kars İstanbul"
metin.count("İstanbul")
3
Metnin belirtilen bir karakter ya da karakter dizisi ile başlayıp başlamadığını görmek için .startswith()
, aynı şekilde belirli bir karakter ya da karakter dizisi ile bitip bitmediğini görmek için de .endswith()
metodu kullanılır.
kelime = 'Türkiye'
kelime.startswith('T')
True
kelime.endswith('A')
False
Metinde bir karakter ya da karakter dizisinin sırasını bulmak için .find() metodu kullanılır. Bu metod, ilgili harfin metinde ilk kez göründüğü sırayı verir. Metinde aranan harf bulunmazsa sonuç -1 olur.
kelime = "Programlama"
kelime.find("r")
1
kelime.find("ml")
6
kelime.find("f")
-1
Ayrıca, bir metnin belirtilen formatta olup olmadığını kontrol etmek için kullanılan .isupper()
, .istitle()
, .isspace()
, .isnumeric()
, .islower()
, .isdigit()
, .isdecimal()
yöntemleri bulunmaktadır.
x = "python"
x.islower()
True
x.istitle()
False
x = "234"
x.isnumeric()
True
bytes veri tipi: Python 3’te metin veri tipinden farklı olarak bytes veri tipi kullanıma sunulmuştur. Bytes veri tipi, adından da anlaşılacağı üzere byte’lardan oluşan dizilerdir. Metinlerden farklı olarak bytes veri tipini tanımlarken verinin başına b harfi getirilir.
b"bytesverisi"
b'bytesverisi'
b'bytesverisi'
b'bytesverisi'
Bytes veri tipi ile metin veri tipine uygulanan metodların birçoğu uygulanabilir.
metin = b"Python programlama dili"
metin.split()
[b'Python', b'programlama', b'dili']
Python’da metin veri tipinin bir karakter standardına uygun karakterlerin yazımına izin verdiğini belirtmiştik. Örneğin, Türkçe karakterler UTF-8 standardında yer almaktadır. Metin veri tipini bytes veri tipine çevirmek için .encode()
, tersi için de .decode()
metodunu uygularız. Metodun argümanı olarak da kullanılmasını istediğimiz standardı yazmamız gerekiyor.
metin = "İ ı Ş ş Ğ ğ Ö ö Ç ç Ü ü"
metin
'İ ı Ş ş Ğ ğ Ö ö Ç ç Ü ü'
byte1 = metin.encode("utf-8")
byte1
b'\xc4\xb0 \xc4\xb1 \xc5\x9e \xc5\x9f \xc4\x9e \xc4\x9f \xc3\x96 \xc3\xb6 \xc3\x87 \xc3\xa7 \xc3\x9c \xc3\xbc'
metin2 = byte1.decode("utf-8")
metin2
'İ ı Ş ş Ğ ğ Ö ö Ç ç Ü ü'