# int
tamsayi1= 5
print(tamsayi1)
# float
float1= 5.0
print(float1)
# complex
complex1= 5 + 0j
print(complex1)
print(complex(3,4))
digerKarmasikSayi= 5j
print(digerKarmasikSayi)
5
5.0
(5+0j)
(3+4j)
5j
Python karmaşık bir yapıya sahip, üst seviye bir programlama dilidir. Bu dili geliştirenler belli standartlar oluşturmuştur. Bu standartlar hem geliştiriciler hem de kullanıcılar için yol göstericidir. Bu kurallara genel adıyla PEP adı verilir. Ayrıntılı bilgi için resmi pep sayfasını ziyaret edebilirsiniz.
Aşağıda Python programlama dilinde kullanılan bazı temel kurallar listelenmiştir. Bu kuralların bazıları zorunlu olmakla beraber bazıları tavsiye niteliğindedir.
#
işareti ile yorum satırı yazılır.;
ile birden fazla komut aynı satırda yazılabilir. Ancak bu kullanım tavsiye edilmez.=
işareti kullanılır._
kullanılabilir. Değişken adı verme kabulleri (convension) için (PEP8-Naming-conventions) adlı bağıntıya gidiniz. Topluluğun benimsediği kabuller için buraya bakabilirsiniz.firstName
, lastName
gibi veya first_name
, last_name
gibi.for
, while
, if
, True
, in
gibi.\
kullanılarak alt satıra geçilebilir. Bazı durumlarda bu işlem gereksizdir. Örneğin parantez içerisinde uzun bir kod yazılması durumunda \
kullanılmayabilir.for
, if
gibi komutlardan sonra alt satıra geçildiğinde alt satırın başına 4 boşluk bırakılmalıdır. Bu işlemi yapmak için Tab
tuşuna basılabilir. (Tab tuşuna basıldığında 4 boşluk (space) bırakması gerekir.).py
olmalıdır.exit()
komutu konmalıdır. Bu komut betiği sonlandırmak için kullanılır.Diğer tavsiyeler için “PEP8 Programlama Tavsiyeleri” sayfasına gidiniz.
Bu ders boyunca sık sık kullanacağımız 3 çeşit değişken tipi olacaktır.
int
float
complex
Herhangi bir değişkene sayı ataması yaparken değişkenin cinsini belirlemeye gerek yoktur (C++ gibi değil). Python otomatik olarak değişkenin cinsini belirler.
Değişkenlere atananı ekrana yazdırmak için print()
fonksiyonu kullanılır.
# int
tamsayi1= 5
print(tamsayi1)
# float
float1= 5.0
print(float1)
# complex
complex1= 5 + 0j
print(complex1)
print(complex(3,4))
digerKarmasikSayi= 5j
print(digerKarmasikSayi)
5
5.0
(5+0j)
(3+4j)
5j
Değişken tanımlamarı hard diskte değil RAM’de depolanır. Bunun sebebi değişkenler ile ilgili okuma/yazma işleminin hızlı olması gerekir.
Değişkenleri silmek (RAM’den) için del
komutu kullanılır.
Bir metini (string) bir değişkene atamak için "
veya '
kullanılır. Bu yöntemlerden bir tanesini seçin ve onu kullanmaya özen gösterin.
str1= "Hello " # string
str2= 'World' # string
print(str1)
print(str2)
# İki stringi birleştirip yazdirir
print(str1, str2)
Hello
World
Hello World
Ekrana bir değişkeni veya string’i yazdırmak için print()
fonksiyonu kullanılır. Bu fonksiyonun kullanımı aşağıdakiler gibi olabilir.
print("Merhaba Dünya") # "" kullanarak
print('Merhaba Dünya') # '' kullanarak
dunyaDegiskeni= 'Dünya'
print("Merhaba", dunyaDegiskeni) # En kolay yolu
print(f"Merhaba {dunyaDegiskeni}") # Biz bunu kullanmaya özen göstereceğiz.
print("Merhaba %s" %dunyaDegiskeni) # C dilleri gibi
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Merhaba Dünya
Bir değişkenin türünü öğrenmek için type()
fonksiyonu kullanılır. Bu fonksiyonun çıktısı olarak class tipinde bir çıktı alınır. Bunun sebebi Python’da çoğu değişkenin bir nesne (object) olmasıdır.
tamsayi1 = 5
float1 = 5.0
complex1 = 5 + 0j
str1= "Selam"
print(type(tamsayi1))
print(type(float1))
print(type(complex1))
print(type(str1))
<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>
Herhangi bir değişkenin tipini çevirmek için int()
, float()
, complex()
fonksiyonları kullanılır. Bu fonksiyonların çalışmadığı durumlar olabilir.
print(int(4.9)) # 4
print(float(4)) # 4.0
print(complex(4)) # (4+0j)
print(complex(41,5)) # (41+5j)
#print(int(4+3j)) # int fonksiyonu karmaşık bir sayıyı tam sayıya çeviremez.
4
4.0
(4+0j)
(41+5j)
Mantıksal (“boolean” veya “bool”) değişkenler True
ve False
değerlerini alabilirler.
<class 'bool'>
True False
Birden fazla değişkeni tutmak için iki çeşit dizi (array) kullanacağız. Bunlardan biri listeler (dinamik) diğeri ise demettir (tuple) (statik). Listelerin içindeki eleman sayısı ve elemanları değiştirilirken demetlerin içindeki elemanlar ve eleman sayısı değiştirilemez.
Demetlerin bu özelliğine değişmez (immutable) denir.
Diğer çeşit diziler ise sözlükler dict
(örnekler için tıklayınız.) ve kümelerdir, set
(örnekler için tıklayınız).
Demet (tuple) oluşturmak için normal parantez, ()
kullanılır. Demet içindeki elemanlara erişmek için köşeli parantez []
kullanılır.
tuple1= (1,2,3,4,5) # tuple
print(tuple1[3]) # 4
#! tuple1[0] = 10 #! Demetler değişmezdir (immutable). Bu kod "TypeError" hatası verir.
print("Ilk elmani")
print(tuple1[0])
print("Son elmani")
print(tuple1[4])
4
Ilk elmani
1
Son elmani
5
Metinler (string) değişmez (immutable) bir veri tipidir. Bu yüzden metinler üzerinde değişiklik yapmak istediğimizde yeni bir metin oluşturmak gerekir.
Liste tanımlamak için köşeli parantez, []
, kullanılır. Liste içindeki elemanlara erişmek için de değişkenin yanına []
kullanılarak erişilir.
list1= [1,2,3,4,5,6,7,8,9,10] # list
print(list1) # Listenin tüm elemanları
print(list1[0]) # Listenin ilk elemanı
print(list1[3]) # Listenin 3. elemanı
print(list1[:]) # Listenin tüm elemanları
print(list1[1:3]) # Listenin 1. elemanından sona kadar olan elemanları # [2,3]
print(list1[::2]) # Listenin tüm elemanları 2'şer 2'şer atlayarak
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
1
4
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3]
[1, 3, 5, 7, 9]
Bir listenin içindeki elemanları değiştirebiliriz. Bunun için değiştirmek istediğimiz elemanın indeksini (index) yazıp onun yerine yeni bir değer yazmamız yeterlidir.
list5= [1,2,3,4,5,6,7,8,9]
print(list5)
list5[1] = 66 # Listenin 1. indeksindeki elemanı 66 yapar.
print(list5)
list5[4:6] = [78, 93] # Listenin 4. ve 5. indekslerindeki elemanları 78 ve 93 yapar.
print(list5)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 66, 3, 4, 5, 6, 7, 8, 9]
[1, 66, 3, 4, 78, 93, 7, 8, 9]
Listelerin sonuna eleman eklemek için append()
fonksiyonu kullanılır. Listenin boyutunu arttırır.
[1, 2, 3]
[1, 2, 3, 125]
Bir listenin sonuna değil de istenilen bir yerine eleman eklemek için insert()
fonksiyonunu kullanılar. Listenin boyutunu arttırır.
list3= [1,2,3]
print(list3)
list3.insert(1,66) # Listenin 1. indisi yerine 66'yı ekler ve diğer elemanları kaydırır.
print(list3)
[1, 2, 3]
[1, 66, 2, 3]
Bir listenin içinde kaç eleman olduğunu bulmak için len()
fonksiyonu kullanılır.
Sıralı yazılmış bir liste oluşturmak için list(range())
fonksiyonu kullanılır. Sadece range()
fonksiyonu kullanıldığında bir liste oluşturulmaz. range()
fonksiyonu sadece bir aralık oluşturur ve tek kullanıldığı yer çoğunlukla for
döngülerinin içerisidir.
print(list(range(10))) # 0'dan 10'a kadar olan sayıları listeye çevirir !! 10 Dahil değil !!.
print(list(range(3,10))) # 3'ten 10'a kadar olan sayıları listeye çevirir.
print(list(range(5,20,2))) # 5'den 20'a kadar olan sayıları 2'şer 2'şer atlayarak listeye çevirir.
print(list(range(20,5,-2))) # 20'den 5'e kadar olan sayıları 2'şer 2'şer atlayarak listeye çevirir.
print([*range(10)])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9]
[5, 7, 9, 11, 13, 15, 17, 19]
[20, 18, 16, 14, 12, 10, 8, 6]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Değiştirilebilir (mutable) değişkenler a=b
ifadesi ile a
değişkenine b
değişkeninin değerini atamaz. a
değişkeninin değeri b
değişkeninin değerini referans eder. Bu demektir ki b
değişkeninin değeri değiştiğinde a
değişkeninin değeri de değişir.
list5= [1.0, 2.0, 3.0] # list5= list([1.0, 2.0, 3.0])
list6_degismemesi_gereken= list5 # list5= [1.0, 2.0, 3.0], list6_degismemesi_gereken= [1.0, 2.0, 3.0]
print(list6_degismemesi_gereken)
list5[0] = 976.0 # list5= [976.0, 2.0, 3.0]
print(list6_degismemesi_gereken) #! Değiştirdiğimiz list5'in bir kopyası olan list6_degismemesi_gereken de değişti.
[1.0, 2.0, 3.0]
[976.0, 2.0, 3.0]
İki boyutlu listeler için iki parantez iç içe kullanılır. İlk parantezin içi ilk satırı, ikinci parantez içi ikinci satırı şeklinde devam eder.
İki boyutlu listelere matris olarak da bakılabilir.
İki boyutlu listelerdeki elemanlara erişmek için []
kullanılır. Köşeli parantezin içerisindeki ilk sayı satırı, ikinci sayı sütunu belirtir. Eğer sadece bir sayı yazılırsa o satırın tüm sütunları alınır.
list2d_1= [[1,2,3],[4,5,6],[7,8,9]]
print(list2d_1) # 2 boyutlu liste
print(list2d_1[1]) # 2 boyutlu listede 1. satır
print(list2d_1[1][2]) # 2 boyutlu listede 1. satırın 2. elemanı
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[4, 5, 6]
6
Yukarıdaki örnekten farklı olarak biz 2 boyutlu listeleri yani matrisleri numpy
paketi kullanarak çağıracağız. Bu pakette matris elemanlarına [i][j]
olarak değil [i,j]
olarak erişiriz.
araAlistirma1_1.py
dosyasını oluşturun. Bu dosyanın içerisinde aşağıdaki adımları yapın ve sonucu gösterin.
list1
adında bir değişken yarat ve içine \(1\)’den \(4889\)’e kadar değerlerini ata ve ekrana yazdır.list1
değişkeninin ilk \(10\) elemanını ekrana yazdır.list1
değişkeninin son elemanını ekrana yazdır.list1
değişkeninin \(10\). elemanını ekrana yazdır.list1
değişkeninin \(10\). elemanını 0 yap ve list1’i ekrana yazdır.list1
değişkeninin son \(5\) elemanını ekrana yazdır.araAlistirma1_2.py
dosyasını oluşturun. Bu dosyanın içerisinde aşağıdaki adımları yapın ve sonucu gösterin.
list2d_1
adında bir değişkene \(1\)’den \(12\)’e kadar tüm değerleri \(3\times 4\) matris oluşturacak şekilde teker teker elemanlarını yazarak ata ve ekrana yazdır.list2d_2
adında yeni bir değişken için yap ve ekrana yazdır. Bu sefer range()
fonksiyonunu kullanarak yap.#araAlışstşrma1_1.py
# Birinci Soru
print("\nBirinci soru:")
list1 = list(range(1,4890)) # 1'den 48'e kadar değerlerini ata.
print("list1 değişkeni:\n", list1, "\n") # ekrana yazdır.
print("İlk 10 değişken:",list1[0:10]) # ilk 10 değişken
print("Son değişken:",list1[-1]) # son değişken
print("Onuncu değişken:",list1[9]) # Onuncu değişken
list1[9] = 0 # onuncu değişkeni sıfır
print("10. eleman 0 yapıldıktan sonra list1 değişkeni:\n", list1, "\n") # ekrana yazdır.
print("Son 5 değişken:",list1[-5:]) # son 5 eleman
# İkinci Soru
print("\n---\nİkinci soru:")
list2d_1 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
print("list2d_1 değişkeni:\n", list2d_1, "\n") # ekrana yazdır.
list2d_1 = [list(range(1,5)),list(range(5,9)),list(range(9,13))]
print("list2d_1 değişkeni:\n", list2d_1, "\n") # ekrana yazdır.
exit(' -- Taygun Bulmus -- Program sonlandırıldı.')