Python’da İlk Adımlar – 1

Üç yazıdan oluşan R’da İlk Adımlar serisinden sonra şimdi de Python’da İlk Adımlar serisine başlıyorum. Bu serinin de üç yazıdan oluşmasını hedefliyorum.

Python ile ilgili yazılarda eğer aksi bir şey çıkmazsa Jupyter Notebook ve PyCharm’ı kullanacağım.

Buradan Anaconda dağıtıcısının sitesine giderek güncel Python 3.8’i işletim sisteminize göre indirebilirsiniz (anlatımım Windows kullanıcıları için olacak). Setup’ı açtıktan sonra kurulum adımlarını kolay bir şekilde tamamlayabilirsiniz. Kurulum sırasında Add Anaconda to the system PATH environment variable seçeneğini işaretlemeyi unutmayın. Bu işlemleri yaptıktan sonra Python’ın kurulup kurulmadığını cmd komutundan kontrol edebilirsiniz. Satıra python yazdıktan sonra enter’a basarak kurulup kurulmadığı anlaşılabilir. Buraya yazdığınız bir Python kodu çalışacaktır.

Yukarıdaki işlemleri tamamladıktan sonra Anaconda’yı açabiliriz. Açtıktan sonra karşınıza birçok uygulama çıkacak. Bunlardan Jupyter Notebook’u seçip Launch deyip ortamı açabilirsiniz. Bunu demekle jupyter-notebook.exe’yi açıp ekranda yazan Or copy and paste one of these URLs: satırının altındaki url’i çalıştırmak aynı şeydir. Yani, local’de size bir sunucu kurulmuş oluyor.

Bir de PyCharm’ı kuralım. R kullananlar için RStudio ne ise PyCharm da odur. Yani, PyCharm bir IDE denilen entegre geliştirme ortamıdır. Buradan JetBrains’in sitesine giderek Community versiyonunu gerekli kurulum adımlarını takip ederek indirebilirsiniz.

En azından bu seri için Jupyter Notebook’u kullanarak hem kodlarınızı yazabilirsiniz hem de notlarınızı alabilirsiniz. Kaydedeceğiniz yeri seçtikten sonra sağ tarafta yer alan New seçeneğinden Python 3’ü açabilirsiniz. Açtıktan sonra eğer kod yazacaksanız Code; not alacaksanız Markdown seçeneğini seçip yazacaklarınızı yazdıktan sonra Run diyebilirsiniz.

Değişken oluşturma ile başlayalım.

Python’da değişken oluştururken = operatörünü kullanıp değeri atamanız yeterlidir.

a = 3
b = 'sigma'

Değerleri bir değişkene atayarak depolanmasını sağladık. Neyi depoladığımızı görmek için print() fonksiyonu ile içeriğe bakabiliriz.

print(a)
print(b)

3
sigma

Sonrasında oldu da aynı değişken ismi ile farklı bir değer atamak istedik. Bu durumda değişken yeni değeri depolayacaktır. Daha önce oluşturulan a değişkenine farklı bir değer atayalım.

a = 1
print(a)

1

Daha önce 3’ü depolayan a değişkeni şimdi de 1’i depoluyor. Eğer a değil de A isimli bir değişkene atama yapsaydık bu durumda iki farklı değişken yaratmış olacaktık. Çünkü Python harfe duyarlıdır.

A = 3
print(A)
print(a)

3
1

Değişken oluşturmanın bir takım kuralları vardır. Nelerdir bunlar?

Değişkenin başına sayı gelmez.

3x = 'sigma'

SyntaxError: invalid syntax

_ haricinde sembol içermez.

x? = 'sigma'

SyntaxError: invalid syntax

Boşluk içermez.

uc sigma = 99.7

SyntaxError: invalid syntax

Anahtar kelime içermez.

for = 'sigma'

SyntaxError: invalid syntax

Doğru bir kullanım örneği şöyle olabilir:

_3sigma = 99.7

Ek olarak, değişken oluştururken şu kabul görmüş kurallardan birini kullanabilirsiniz: Pascal, Camel, Snake.

Pascal’da kelimelerin tüm ilk harfleri büyük yazılır.

YeniVakaSayisi = 17543

Camel’da ilk kelimenin harfi küçük; diğerleri büyük yazılır.

yeniVakaSayisi = 17543

Snake’de kelimeler _ ile birbirine bağlanarak yazılır.

yeni_vaka_sayisi = 17543

Tek bir satırda çoklu değişkenler oluşturulabilir.

a, b, c = 3, 'sigma', 99.7
print(a,b,c)

3 sigma 99.7

İki veya daha fazla değişkenle bir değişken oluşturulabilir.

kisaKenar = 4
uzunKenar = 8
dikdortgenAlan = kisaKenar * uzunKenar
print(dikdortgenAlan)

32

Dikdörtgenin alanı örneğinde yer alan kısa ve uzun kenarların 2 katını alıp sonucu bulalım. Bu durumda kısaca aşağıdaki işlem yapılabilir.

kisaKenar *= 2 #kisaKenar = kisaKenar * 2 yapmak ile aynıdır
uzunKenar *= 2 #uzunKenar = uzunKenar * 2 yapmak ile aynıdır
dikdortgenAlan = kisaKenar * uzunKenar
dikdortgenAlan

128

#veya

kisaKenar = kisaKenar * 2
uzunKenar = uzunKenar * 2
dikdortgenAlan = kisaKenar * uzunKenar
dikdortgenAlan

128

Gördüğünüz gibi işlemi uzatmadan aynı sonucu bulduk. Toplama, çıkarma, bölmede de aynı işlemler sırası ile +=, -=, /= şeklinde yapılabilir.

Bu arada yukarıda yorumu da görmüş olduk. Eğer kodların başına # koyarsanız bu yorum (comment) anlamına gelir. Bu işaret kodu pasifize eder; yani çalıştırmaz. Ya da yazılan kodların yanına yorumlar eklenebilir.

3 + 4 * 5

23

#3 + 4 * 5

Eğer çoklu yorum satırı yapılmak istenirse aşağıdaki yapı kullanılabilir.

"""
Bu Alan Yorum İçerir
"""

'\nBu Alan Yorum İçerir\n'

İki değişken karşılıklı olarak transfer edilebilir.

x = 0
y = 1
print(x,y)

0 1

x,y = y,x
print(x,y)

1 0

Değişkenler ile ilgili genel yapıyı kavradıktan sonra şimdi de bazı veri tiplerine bakalım. Bu veri tiplerini type() fonksiyonu ile kontrol edeceğiz.

String/Karakter Dizileri:

x1 = "Python Eğitimi"
print(type(x1))

<class 'str'>

Integer/Tam Sayı:

x2 = 1
print(type(x2))

<class 'int'>

Float/Ondalıklı Sayı:

x3 = 3.14
print(type(x3))

<class 'float'>

List/Liste:

x4 = ["Python","R","Diğer"]
print(type(x4))

<class 'list'>

Tuple/Demet:

x5 = ("Python","R","Diğer")
print(type(x5))

<class 'tuple'>

Dictionary/Sözlük:

x6 = {"Mean" : "Ortalama", "Median" : "Ortanca", "Mode" : "Tepe Değer"}
print(type(x6))

<class 'dict'>

Boolean/Mantıksal:

x7 = True
print(type(x7))

<class 'bool'>

Veri tipleri daha sonra değiştirilebilir. Örneğin, float veri tipinde olan x3’ü string’e dönüştürebiliriz.

x3 = str(x3)
print(type(x3))

<class 'str'>

Biraz daha örnek yapalım.

Integer’ın Float’a dönüştürülmesi:

x = 10
print(type(x))

<class 'int'>

x = float(x)
print(type(x))
print(x)

<class 'float'>
10.0

Float’un Integer’a dönüştürülmesi:

y = 2.718
print(type(y))

<class 'float'>

y = int(y)
print(type(y))
print(y)

<class 'int'>
2

Integer ve Float’un String’e dönüştürülmesi:

x = 2.718
print(type(x))

<class 'float'>

x = str(x)
print(type(x))
print(x)

<class 'str'>
'2.718'
y = 2
print(type(y))

<class 'int'>

y = str(y)
print(type(y))
print(y)

<class 'str'>
'2'

String’in Integer ve Float’a dönüştürülmesi:

x = '2.718'
print(type(x))

<class 'str'>

x = float(x)
print(type(x))
print(x)

<class 'float'>
2.718
y = '2'
print(type(y))

<class 'str'>

y = int(y)
print(type(y))
print(y)

<class 'int'>
2

print() fonksiyonunu bu kadar kullanmışken biraz daha açalım.

Bir şeyler yazdırırken \n ile bir sonraki satıra geçilebilir.

print("Python\nProgramlama\nDili")

Python
Programlama
Dili

\t ile 1 tab kadar boşluk bırakılabilir.

print("Python\tProgramlama\tDili")

Python	Programlama	Dili

sep ile yazı araları doldurulabilir.

print(1,2,3,4,5,sep = '-')

1-2-3-4-5

sep ile \n beraber kullanılabilir.

print(1,2,3,4,5,sep = '\n')

1
2
3
4
5

Birleşik yazılar * ile ayrılabilir.

print(*'ABD')

A B D

sep ile * beraber kullanılabilir.

print(*'ABD', sep = '.')

A.B.D

Formatlama ile daha önceden kaydedilen değişkenler kolay bir şekilde yazdırılabilir.

dil1 = 'R'
dil2 = 'Python'

print('Ben {} ve {} programlama dillerini öğreniyorum'.format(dil1,dil2))

Ben R ve Python programlama dillerini öğreniyorum

Görüldüğü gibi {} ve format() yardımı ile basit bir şekilde yazdırma işlemini gerçekleştirdik. Yine benzer bir örnek üzerinden bu defa noktadan sonra istediğimiz kadar sayı almayı görelim.

pi = 3.14159265359
print('Pi sayısını {:.2f} ya da {:.3f} alın'.format(pi,pi))

Pi sayısını 3.14 ya da 3.142 alın

Önce tanımlarını öğrendiğimiz veri tiplerine biraz daha yakından bakalım. R programlama dilinden gelenlerin de yabancı olacağı bazı veri tipleri bulunmaktadır.

String/Karakter Dizileri veya str:

String tanımlarken tek, çift veya üç tırnak kullanabiliriz.

baslik1 = 'Python Programlama Eğitimi'
baslik2 = "Python Programalama Eğitimi"
baslik3 = """Python Programlama Eğitimi"""

print("Başlık-1: {}\nBaşlık-2: {}\nBaşlık-3: {}".format(baslik1,baslik2,baslik3))

Başlık-1: Python Programlama Eğitimi
Başlık-2: Python Programalama Eğitimi
Başlık-3: Python Programlama Eğitimi

Eğer ‘ ile ayrılmış bir string olsaydı bu durumda kesme işaretlerine dikkat etmemiz gerekirdi.

icerik1 = 'Python'da İlk Adımlar'
print(icerik1)

SyntaxError: invalid syntax

Tek tırnak kullandığımız için Python bunu algılayamadı. Bu tip durumlarda çift tırnak kullanabiliriz.

icerik2 = "Python'da İlk Adımlar"
print(icerik2)

Python'da İlk Adımlar

Dikkat etmemiz gereken bir diğer nokta hangi tırnak ile başladıysak onunla bitirmemizdir.

dil = 'Python Programlama Dili"
print(dil)

SyntaxError: EOL while scanning string literal

Python’da index’ler 0’dan başlar. Aşağıdaki örnekte string’in ilk harfini yazdırmak istediğimizde sıfırı kullanırız.

il = 'İSTANBUL'
il[0]

İ

Sondaki harfi yazdırmak isterken iki yolu kullanabiliriz.

il[7]

L

#veya

il[-1]

L

String veri tiplerinde kırpma işlemi yine index kullanarak şöyle yapılabilir: [::]

dizi = "Breaking Bad"
len(dizi)

12

Oluşturduğumuz string’in len() ile 12 karakter uzunluğunda olduğunu öğrendik. Şimdi kırpalım.

dizi[4:8]

'king'

4. index olan k’yı aldı ve 8. index’e kadar gitti. Boşlukları da saydığını not düşelim. Fakat son index’i almıyor.

dizi[:8]

'Breaking'

İlk alanı boş bıraktık. Bu, en baştan başla ve 8. index’e kadar git demektir.

Tersini de yapabilirdik.

dizi[8:]

' Bad'

Bu defa 8. index’i aldı. Çünkü oradan başla ve sonuna kadar git dedik.

[bunu anladık : bunu anladık : bu ne oluyor] diye sorabiliriz. Son alan atlama sayısını veriyor. Örneğin, hepsini al ama iki atlayarak al diyelim.

dizi[::2]

'Bekn a'

O zaman şunu diyebiliriz: -1 atlayarak giderse string’in tersini alacaktır.

dizi[::-1]

'daB gnikaerB'

Son olarak bazı string metotlarını tanıyalım.

dizi = " Breaking Bad "

Boşlukları temizleyelim. Tüm harfleri büyük yapalım. String’in içinde KING kelimesi var mı kontrol edelim.

dizi = " Breaking Bad "

dizi = dizi.strip()
print(dizi)
Breaking Bad

dizi = dizi.upper()
print(dizi)
BREAKING BAD

'KING' in dizi
True

Zamanla string’in birçok metoduna değineceğiz.

List/Liste veya list:

liste = ["Python","R","Diğer"]

#veya

liste = list(("Python","R","Diğer"))

Index ile listenin ilk elemanına ulaşalım.

liste[0]

'Python'

Listenin uzunluğunu len() ile öğrenebiliriz.

print(len(liste))

3

String’i parçalayarak liste oluşturabiliriz.

liste = list("parçalanacak")
print(liste)

['p', 'a', 'r', 'ç', 'a', 'l', 'a', 'n', 'a', 'c', 'a', 'k']

İki veya daha fazla listeden bir liste oluşturabiliriz.

liste1 = [3,4,5]
liste2 = [2,3,4]
liste3 = [7,8,9]
liste = liste1 + liste2 + liste3
print(liste)

[3, 4, 5, 2, 3, 4, 7, 8, 9]

Listedeki elemanı değiştirebiliriz.

liste = [3, 4, 5, 2, 3, 4, 7, 8, 9]
liste[0] = 100
print(liste)

[100, 4, 5, 2, 3, 4, 7, 8, 9]

Liste içinde listeler oluşturabiliriz.

liste1 = [3,4,5]
liste2 = [2,3,4]
liste3 = [7,8,9]
liste = [liste1,liste2,liste3]
print(liste)

[[3, 4, 5], [2, 3, 4], [7, 8, 9]]

Bu listeden örneğin 2. listenin ilk elemanına bakalım. Index’in sıfır ile başladığını unutmayın.

liste[1][0] #ikinci listenin index'i 1; bu listenin ilk elemanının bulunduğu index 0

2

Liste ile kullanılan bazı metotlara bakalım.

Bir liste oluşturalım. Bu listenin sondaki elemanını atalım. Sona bir eleman ekleyelim. Son olarak bu listeyi ters çevirelim.

liste = ["Almanca","İngilizce","İspanyolca","Rusça"]

liste.pop() #içini boş bırakmak ile sondaki index'i yazmak aynıdır: liste.pop(3)
print(liste)
['Almanca', 'İngilizce', 'İspanyolca']

liste.append("Çince")
print(liste)
['Almanca', 'İngilizce', 'İspanyolca', 'Çince']

liste.sort(reverse = True)
print(liste)

['İspanyolca', 'İngilizce', 'Çince', 'Almanca']

Tuple/Demet veya tuple:

Demetlerin listelerden farkı değiştirilemez oluşudur.

demet = ("R","Python")
demet.index("R")

0

demet[0] = "Java"

TypeError: 'tuple' object does not support item assignment

Yukarıda index() ile kaçıncı index olduğunu bulduk. Sonra ilk eleman R’ı Java ile değiştirmek istedik fakat izin vermedi.

Demet ile kullanılan bir metoda daha bakalım.

Bir demet oluşturalım ve bir elemanının kaç defa yazıldığını saydıralım.

demet = (1,1,1,1,1,2,2,3,3,3,3,3,4,4,4,5)

#veya

demet = tuple((1,1,1,1,1,2,2,3,3,3,3,3,4,4,4,5))

demet.count(3)

5

Dictionary/Sözlük veya dict:

Bu veri tipini bildiğiniz sözlük gibi düşünebilirsiniz.

sozluk = {"Python":56670.9, "C#":58469.1, "R":61629.6} #Dillere göre maaşlar

#veya

sozluk = dict({'Python':56670.9, 'C#':58469.1, 'R':61629.6})

Bir anahtarın karşısındaki değerini öğrenebiliriz.

sozluk["Python"]

56670.9

Yeni bir anahtar ve değer ekleyebiliriz.

sozluk["JavaScript"] = 55690
print(sozluk)

{'Python': 56670.9, 'C#': 58469.1, 'R': 61629.6, 'JavaScript': 55690}

Anahtar ve değerlere ayrı ayrı bakabiliriz.

print(sozluk.keys())

dict_keys(['Python', 'C#', 'R', 'JavaScript'])

print(sozluk.values())

dict_values([56670.9, 58469.1, 61629.6, 55690])

Son olarak boolean veri tipine ve bazı operatörlere bakalım.

Boolean veri tipi True ve False’dan oluşur. Eğer ifade doğru ise True; yanlış ise False döndürür.

print(-1 < 0)

True

print(-0.25 > -0.025)

False

Bazı operatörler ile konumuzu bitirelim.

Dört işlem yapmıştık. Bunun dışındaki operatörlere bakalım.

10 % 2 #10 mod 2

0

2 ** 8 #2'nin 8. kuvveti

256

13/3 #bildiğimiz bölme işlemi

4.333333333333333

13//3 #ondalıksız bölme

4

A == A #A, A'ya eşit mi

True

A != A #A, A'ya eşit değil mi

False

0 < 1/2 and 0 > -1/2 #0, 1/2'den küçüktür *ve* -1/2'den büyüktür (ikisi de True olmalıdır)

True

1 > -1 or 1 < -1 #1, -1'den büyüktür veya 1, -1'den küçüktür (bir tane ifadenin True olması yeterlidir)

True

not(1 == 1) #1, 1'e eşit değildir (içerisi True fakat not(True) False'tur)

False

Serinin ilk yazısının sonuna geldik. R’da da tekrar ettiğim gibi zamanla hem burada öğrendiklerinizi oturtacaksınız hem de yeni bilgiler öğreneceksiniz. Umuyorum iyi bir başlangıç olmuştur.

Bir not: Yazının görselini rasgele kullanmadım. Çok geniş alanlarda kullanabileceğiniz ve beraber kullanacağımız bir dile ilk adımı atmış oldunuz 😊

Serinin gelecek yazılarında görüşmek dileği ile.

One thought on “Python’da İlk Adımlar – 1

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir