İçerik
Pythonda Veri Tipleri Karakter Dizileri Sayılar
List
List Elemanlarına Erişme List Metotları
Tuple
Tuple Elemanlarına Erişme Tuple Metotları
Set
Set Metotları Dictionary
Dictionary Elemanlarına Erişme Dictionary Metotları
Veri Tipleri
String
String veri tipi, programlama dillerinde metinleri(yazıları) ifade etmek için kullanılır ve tırnak içinde yazmamız gerekmektedir;
File "<ipython-input-17-f57090ee02b7>", line 1 ali erbey
^
SyntaxError: invalid syntax
İçi boş karakter;
Boşluk karakteri;
İki karakter dizisini birleştirmek için + operatörü kullanılabilir;
'AliErbey'
İki karakter dizisi arasına boşluk bırakabilmek için 2 yöntem vardır;
. Yöntem;
In [17]: ali erbey
In [ ]: "ali erbey"
In [ ]: ""
In [ ]: " "
In [9]: "Ali" + "Erbey"
Out[9]:
'Ali Erbey'
. Yöntem;
'Ali Erbey'
Python yan yana yazılan karakterleri birleştireceğini öngörebilir.
'alierbey'
Karakter dizilerinde * işaretinin etkisi
'alialialialiali'
'hadi hadi hadi '
'boşluk uzar burada biter'
Sayılar
3 Farklı sayı türü vardır.
Integer (Tamsayı) Float (Ondalıklık Sayılar) Complex (Karmaşık Sayılar)
Integer
Tamsayı türlerinin ifade etmek için kullanılır. - ve + değerleri kapsar.
12
-17
Integer türündeki bir değerin type fonksiyonu ile çıktısı;
In [10]: "Ali" + " " + "Erbey"
Out[10]:
In [11]: "Ali " + "Erbey"
Out[11]:
In [12]: "ali" "erbey"
Out[12]:
In [13]: "ali" * 5 Out[13]:
In [14]: "hadi " * 3 Out[14]:
In [15]: "boşluk uzar" + " " * 5 + "burada biter"
Out[15]:
In [16]: a = 12 print(a)
In [17]: b = -17 print(b)
In [18]: a = 10
int
18
Float
Ondalıklı sayılar için kullanılır.
4.6
Float türündeki bir değerin type fonksiyonu ile çıktısı;
float
Complex
Karmaşık sayılar için kullanılır.
(10+4j)
Complex türündeki bir değerin type fonksiyonu ile çıktısı;
complex
Sayılar Üzerinde İşlemler
Sayılar üzerinde bilinen matematiksel operatörler olan
toplama + çıkarma - çarpma * bölme /
operatörleri kullanılabilir.
7
type(a) Out[18]:
In [7]: a = 3 b = 5
c = a + b * a print(c)
In [19]: a = 4.6 print(a)
In [20]: a = 4.6 type(a) Out[20]:
In [21]: a = 10 + 4j print(a)
In [22]: a = 10 + 4j type(a) Out[22]:
In [24]: #Toplama 3 + 4 Out[24]:
25
2.3333333333333335
6
Integer ve string arasındaki fark
Integer değişken türlerindeki veriler tırnak içerisinde yazılırsa string değişken olarak tanımlanır.
aşağıdaki örnek 12 değerinin integer olduğu görülürken "12" değerinin string olduğu görülmektedir.
int
str
Integer(Tamsayı)'lar toplandığında sayılar üzerinde bilinen toplama işlemi yapılır.
25
String ifadeler toplandığında yan yana yazılır.
1213
String ile integer toplanmak istendiğinde; ne toplama ne de yan yana yazma işlemi yapmaz, program unsupported operand type(s) for +: 'int' and 'str' hatası verir.
--- TypeError Traceback (most recent call last)
<ipython-input-27-d9b1769aa711> in <module>
----> 1 print(12 + "13")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Tür dönüşümleri
In [25]: #Çarpma 5 * 5 Out[25]:
In [26]: #Bölme 7 / 3 Out[26]:
In [27]: #Çıkarma 8 - 2 Out[27]:
In [23]: type(12) Out[23]:
In [24]: type("12") Out[24]:
In [25]: print(12 + 13)
In [26]: print("12" + "13")
In [27]: print(12 + "13")
In [ ]: yukarıdaki kod bloğunda eğer 12 ile 13 ü toplanmak istenirse tür dönüşümü yapılm
string bir ifade integer türüne dönüştürülebilmesi için ifadenin sayı içermesi gerekmektedir.
12
--- ValueError Traceback (most recent call last)
<ipython-input-51-6414b62a7162> in <module>
----> 1 print(int("ali"))
ValueError: invalid literal for int() with base 10: 'ali'
12
10.2
<class 'int'>
4.0
Boolean
Boolean ifadeler True ya da False değeri alabilen ifadelerdir. Programlamada çok sık kullanılan yapılardan biridir. Karşılaştırma ifadelerinde geriye True değeri dönerse ifadenin geçerli(doğru) olduğu, False değeri dönerse ifadenin geçersiz(yanlış) olduğu sonucu çıkarılır.
False
0
0 ve "" ifadesi haricinde bütün ifadeler true değer döndürürler.
True
False
In [50]: print(int("12"))
In [51]: print(int("ali"))
In [52]: print(str(12))
In [53]: print(float("10.2"))
In [29]: a = 4
print(type(a)) print(float(a))
In [ ]: # boolean değişken tanımlama a = True
print(a)
In [49]: a = False print(a)
In [31]: a = int(False) print(a)
In [65]: bool(4) Out[65]:
In [66]: bool(0) Out[66]:
True
True
False
Değişken Adı Belirleme
. Değişken isimleri sayı ile başlayamaz
File "<ipython-input-32-63a2f00ca374>", line 1 1sayi = 12
^
SyntaxError: invalid syntax
Değişken isimleri _ işareti ya da harf ile başlamalıdır.
12
13
12
. Anahtar kelimeler değişken ismi olarak kullanılamaz.
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Anahtar kelimelere aşağıdaki gibi ulaşabilirsiniz;
['False', 'None', 'True', 'and', 'as', 'assert', 'async', In [67]: bool("ali") Out[67]:
In [68]: bool(" ") Out[68]:
In [69]: bool("") Out[69]:
In [32]: 1sayi = 12 print(1sayi)
In [33]: _sayi1 = 12 print(_sayi1)
In [34]: _1sayi = 13 print(_1sayi)
In [35]: sayi1 = 12 print(sayi1)
In [19]: import keyword keyword.kwlist Out[19]:
'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
. Değişken isimlerinde özel semboller kullanılamaz !, @, #, $, % ...
File "<ipython-input-20-0275a12bb2b0>", line 1 sayi@ = 12
^
SyntaxError: invalid syntax
. Değişken isimleri arasına boşluk konulmaz
File "<ipython-input-36-98d128194ac3>", line 1 sayi 1 = 12
^
SyntaxError: invalid syntax
Değişken tanımlama yöntemleri
Değişken isimleri açık ve anlaşılır olmalıdır. Örnek olarak vize notu değişkeni tanımlanmak istenildiğinde vn gibi bir değişken ismi yerine vizenotu değişken ismi tercih edilmesi daha uygundur. Çünkü programlar karmaşık hale geldiğinde değişkenlerin ne ifade ettiği
karıştırılmaması için açıklık ve anlaşılırlık önemlidir.
Öneri : Değişken isimlendirmede ikinci kelime büyük harfle başlayarak yazılabilir. Bu yöntem okunurluğu artırabilir.
In [20]: sayi@ = 12 print(sayi@)
In [36]: sayi 1 = 12 print(sayi 1)
Öneri : Değişken isimlendirmede birinci ve ikinci kelime arasına alt çizgi işareti konulabilir. Bu yöntemde okunurluğu artırabilir.
Çift yıldız ** işareti de üst almak için kullanılır.
Print()
ali erbey
print fonksiyonu içinde değişkenleri yazdırabiliriz. Değişkenleri yazdırılırken tırnak işareti kulllanılmaz.
ali erbey
Tırnak işareti kullanılırsa bir string ifade olarak değerlendirilir.
isim
ali erbey
ali erbey
ali erbey
File "<ipython-input-43-f14f11cefa8c>", line 1 print(""""ali erbey """")
^
SyntaxError: EOL while scanning string literal
File "<ipython-input-44-a04340292400>", line 1 print("ali erbey "usak" üniversitesi")
^ SyntaxError: invalid syntax In [ ]: vn = 32
In [ ]: vizenotu = 32 In [ ]: vizeNotu = 32
In [ ]: vize_notu = 32
In [37]: print("ali erbey")
In [38]: isim = "ali erbey"
print(isim)
In [39]: isim = "ali erbey"
print("isim")
In [40]: print('ali erbey')
In [41]: print("ali erbey")
In [42]: print("""ali erbey""")
In [43]: print(""""ali erbey """")
In [44]: print("ali erbey "usak" üniversitesi")
In [45]: print('ali erbey "usak" üniversitesi')
ali erbey "usak" üniversitesi
ali erbey "usak" üniversitesi
File "<ipython-input-47-37c3aaa1a322>", line 1
print('Usak'ın tek üniversitesi Usak Üniversitesi) ^
SyntaxError: invalid syntax
Usak'ın tek üniversitesi Usak Üniversitesi
ali erbey
ali erbey usak
ali erbey
File "<ipython-input-53-c55d95d64bc1>", line 1 print('ali")
^
SyntaxError: EOL while scanning string literal
ali erbey 36
alierbey36
ali,erbey,36
ali erbey
ali erbey usak
İlk sayı a = 4 ikinci sayı b = 8
In [46]: print("""ali erbey "usak" üniversitesi """)
In [47]: print('Usak'ın tek üniversitesi Usak Üniversitesi)
In [48]: print("Usak'ın tek üniversitesi Usak Üniversitesi")
In [49]: print('ali', 'erbey')
In [51]: print('ali', 'erbey', 'usak')
In [52]: print('ali', "erbey")
In [53]: print('ali")
In [54]: print("ali", "erbey", 36)
In [55]: print("ali", "erbey", "36", sep="")
In [56]: print("ali", "erbey", "36", sep=",")
In [57]: print("ali \nerbey")
In [58]: print("ali", "erbey", "usak", sep="\n")
In [59]: a,b = 4, 8
print('İlk sayı a = {} ikinci sayı b = {}'.format(a,b))
print("İlk sayı a = " + str(a) + " ikinci sayı b =" + str(b) )
İlk sayı a = 4 ikinci sayı b =8
Örnek : Yandaki çıktığı yazan kod nedir? a.l.i.e.r.b.e.y
a.l.i.e.r.b.e.y
a.l.i.e.r.b.e.y
alierbey
string ifadenin önüne getirilen * işareti, string ifadenin her bir karakterinin virgül ile ayrılmış gibi davranmasına yol açar.
a l i e r b e y
Kaçış Dizileri (Escape Sequence)
Kaçış dizisi \ ters taksim işareti ile kullanılır.
File "<ipython-input-65-c9cc8ad2c6c2>", line 1
print('Usak'ın tek üniversitesi Usak Üniversitesidir') ^
SyntaxError: invalid syntax
Usak'ın tek üniversitesi Usak Üniversitesidir
Usak'ın tek üniversitesi Usak Üniversitesidir
File "<ipython-input-4-abc4ef96906b>", line 1 print("ali erbey "Usak" Universitesi") ^
SyntaxError: invalid syntax
ali erbey "Usak" Universitesi
\n satır başı yapar.
ali erbey
\t tab(sekme) tuşuna basılmış etkisi yapar.
In [60]:
In [61]: print("a","l","i","e","r","b","e","y",sep=".")
In [62]: print(*"alierbey", sep=".")
In [63]: print("alierbey")
In [64]: print(*"alierbey")
In [65]: print('Usak'ın tek üniversitesi Usak Üniversitesidir')
In [66]: print("Usak'ın tek üniversitesi Usak Üniversitesidir")
In [3]: print('Usak\'ın tek üniversitesi Usak Üniversitesidir')
In [4]: print("ali erbey "Usak" Universitesi")
In [5]: print("ali erbey \"Usak\" Universitesi")
In [6]: print("ali \nerbey")
ali erbey
\a bip sesi çıkartır.(Windows makineler düzgün çalışır)
\r bulunduğu satırın başına döner.
erbey
File "<ipython-input-10-37ce184bd12d>", line 1 print("C:\user\alierbey\deneme.txt")
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in positio n 2-3: truncated \uXXXX escape
C:\user\alierbey\deneme.txt
C:\user\alierbey\deneme.txt
36
'benim adım ali erbey yaşım 36'
'benim adım ali erbey yaşım 36'
Operatörler
Operatörler, bir programlama dilinde işlevlere sahip sembollerdir. Python programlama dilinde operatörler;
1. Aritmetik Operatörler 2. Atama Operatörleri
3. Karşılaştırma Operatörleri 4. Mantıksal Operatörler 5. Kimlik Operatörleri 6. Üyelik Operatörleri In [7]: print("ali \terbey")
In [8]: print("\a")
In [9]: print("ali \rerbey")
In [10]: print("C:\user\alierbey\deneme.txt")
In [11]: print("C:\\user\\alierbey\\deneme.txt")
In [12]: print(r"C:\user\alierbey\deneme.txt")
In [28]: 32 + 4 Out[28]:
In [30]: a = "benim adım {} yaşım {}"
a.format("ali erbey", "36") Out[30]:
In [31]: a = "benim adım {} yaşım {}"
a.format("ali erbey", 36) Out[31]:
Aritmetik Operatörler
Python programlama dilinde aritmetik operatörler matematiksel işlemler yapılmasını sağlayan sembollerdir. Aşağıdaki tabloda aritmetik operatörler görülmektedir.
Operatör İsmi Operatör Örnek
Toplama + a + b
Çıkarma - a - b
Çarpma * a * b
Bölme / a / b
Üs Alma ** a ** b
Mod Alma % a % b
Taban Bölme // a // b
7
3
15
125
34359738368
1
2
2.5
2
In [1]: #Toplama print(5 + 2)
In [2]: #Çıkarma print(5 - 2)
In [3]: #Çarpma print(5 * 3)
In [4]: #Üs Alma print(5 ** 3)
In [5]: print(2 ** 35)
In [6]: #Mod Alma print(5 % 2)
In [7]: #Mod Alma print(17 % 5)
In [8]: #Bölme
print(5 / 2)
In [9]: #Taban Bölme print(5 // 2)
2
Atama Operatörler
Python programlama dilinde atama operatörler değişkenlere değer atanması sağlayan sembollerdir. Aşağıdaki tabloda atama operatörler görülmektedir.
Operatör İsmi Operatör Örnek Eşdeğer İfade
Atama = a = b
Topla ve kendisine ata += a += b a = a + b Çıkar ve kendisine ata -= a -= b a = a - b Çarp ve kendisine ata *= a *= b a = a * b Böl ve kendisine ata /= a /= b a = a / b Mod al ve kendisine ata %= a %= b a = a % b Taban böl ve kendisine ata //= a //= b a = a // b Üs al ve kendisine ata **= a **= b a = a ** b
2
7
7
Karşılaştırma Operatörler
Python programlama dilinde karşılaştırma operatörleri değişkenler arasında sınama yapılmasını sağlayan sembollerdir. Karşılaştırma operatörlerinin işletilmesi sonucunda python programlama dili True ya da False ifadesi döndürmektedir. True ifadesi karşılaştırmanın sonucunu doğru olarak, False ifadesi karşılaştırmanın sonucunun geçerli olmadığını belirtir. Aşağıdaki tabloda karşılaştırma operatörler görülmektedir.
Operatör İsmi Operatör Örnek
Eşittir == a == b
Eşit Değildir != a != b Büyüktür > a > b In [10]: print(int(5/2))
In [11]: # atama operatörü a = 2
print(a)
In [12]: # topla ve kendisine ata a = 3
a += 4 print(a)
In [13]: # topla ve kendisine ata operatörünün eşdeğer ifadesi a = 3
a = a + 4 print(a)
Operatör İsmi Operatör Örnek Küçüktür < a < b Büyük Eşittir >= a >= b Küçük Eşittir <= a <= b
False
True
Mantıksal Operatörler
Python programlama dilinde mantıksal operatörler ifadeler arasında sınama yapılmasını sağlayan sembollerdir. Mantıksal operatörlerinin işletilmesi sonucunda python programlama dili True ya da False ifadesi döndürmektedir. True ifadesi karşılaştırmanın sonucunu doğru olarak, False ifadesi karşılaştırmanın sonucunun geçerli olmadığını belirtir. Aşağıdaki tabloda karşılaştırma
operatörler görülmektedir.
Operatör Örnek and ve) a and b or (veya) a or b not (değil) not a
And
Koşullardan hepsinin doğru olduğu durumlarda gerçekleşir. Aşağıdaki tabloda doğruluk tablosu gözükmektedir.
Koşul1 Koşul2 Sonuç
0 0 0
0 1 0
1 0 0
1 1 1
False
In [14]: # eşittir a = 2 b = 3
print(a == b)
In [15]: # eşit değildir a = 2
b = 3
print(a != b)
In [18]: # koşul1'e uygun örnek a = 12
b = 15
print (a == 16 and b == 20)
In [19]: # koşul2'e uygun örnek a = 12
False
False
True
Or
Koşullardan herhangi birinin doğru olduğu durumlarda gerçekleşir. Aşağıdaki tabloda doğruluk tablosu gözükmektedir.
Koşul1 Koşul2 Sonuç
0 0 0
0 1 1
1 0 1
1 1 1
False
True
True
True
Not
b = 15
print (a == 16 and b == 15)
In [21]: # koşul3'e uygun örnek a = 12
b = 15
print (a == 12 and b == 16)
In [23]: # koşul4'e uygun örnek a = 12
b = 15
print (a == 12 and b == 15)
In [25]: # koşul1'e uygun örnek a = 12
b = 15
print (a == 16 or b == 20)
In [26]: # koşul2'e uygun örnek a = 12
b = 15
print (a == 13 or b == 15)
In [27]: # koşul3'e uygun örnek a = 12
b = 15
print (a == 12 or b == 20)
In [28]: # koşul4'e uygun örnek a = 12
b = 15
print (a == 12 or b == 16)
Not operatörü koşulun sonucunun tersini almaktadır.
Koşul Sonuç
0 1
1 0
True False
False
Kimlik Operatörler
Nesneleri karşılaştırmak için kullanılır. Nesneler aynı bellek konumuna sahipse aynı ifade edilmektedir. Bir nesnenin bellek konumu id() fonksiyonu ile görülebilmektedir. Python küçük boyutlu nesneleri aynı bellek konumunda tutmaktadır. is operatörü ise aynı bellek konumunda olup olmadığının sonucu boolean(True, False) bir değer olarak verir. is not operatörü is operatörünün tersi olarak çalışır. Aşağıdaki tabloda kimlik operatörleri görülmektedir.
Operatör Örnek
is a is b
is not a is not b
a değişkeninin bellek konumu = 4350870784 b değişkeninin bellek konumu = 4350870784 True
python büyük boyutlu nesneleri farklı bellek konumlarına yerleştirir.
a değişkeninin bellek konumu = 140187150522928 In [30]: a = 12
# aşağıdaki ifade true döner print(a == 12)
# eğer not kullanılırsa true değerini false değere döndürür print (not(a == 12))
In [35]: a = 3
print(not (a > 1 and a < 10))
In [38]: a = 5 b = 5
# bellek konumuna bakalım
print("a değişkeninin bellek konumu =", id(a)) print("b değişkeninin bellek konumu =", id(b)) print(a is b)
In [39]: a = 1500 b = 1500
# bellek konumuna bakalım
print("a değişkeninin bellek konumu =", id(a)) print("b değişkeninin bellek konumu =", id(b)) print(a is b)
b değişkeninin bellek konumu = 140187150521552 False
string ifadeler içinde büyük olduğunda farklı bellek konumlarına yerleştirilirken küçük olduğunda aynı bellek konumuna yerleştirilmektedir.
a değişkeninin bellek konumu = 140187141153712 b değişkeninin bellek konumu = 140187141153712 True
c değişkeninin bellek konumu = 140187157769072 d değişkeninin bellek konumu = 140187157769504 False
Üyelik Operatörler
Python programlama dilinde üyelik operatörleri veri tipi içinde o verinin bulunup bulunmadığını sorgular. Üeylik operatörleri ile sorgulama sonucunda boolean(True, False) değeri döner.
Aşağıdaki tabloda üyelik operatörleri görülmektedir.
Operatör Örnek
in a in b
not in a not in b
True
False
Örnekler 1
Örnekler için input() Fonksiyonu
input() fonksiyonu, programa veri girişi yapılabilmesi için kullanılan fonksiyondur. input()
fonksiyonundan gelen değer her zaman string bir ifadedir. Eğer sayısal işlem yapılacaksa string In [42]: a = 'ali'
b = 'ali'
c = 'ali erbey uşak üniversitesi' d = 'ali erbey uşak üniversitesi'
# bellek konumuna bakalım
print("a değişkeninin bellek konumu =", id(a)) print("b değişkeninin bellek konumu =", id(b)) print(a is b)
# bellek konumuna bakalım
print("c değişkeninin bellek konumu =", id(c)) print("d değişkeninin bellek konumu =", id(d)) print(c is d)
In [ ]:
In [43]: a = "ali erbey"
print("e" in a)
In [46]: a = "ali erbey"
print("c" in a)
ifadelerin dönüştürülmesi gerekmektedir. Dönüşüm konusu için Tür dönüşümleri konusuna bakabilirsiniz.
Doğum yılınızı giriniz 1984 1984
Doğum yılınızı giriniz 1984
--- TypeError Traceback (most recent call last)
<ipython-input-2-c2d25d0d9c1b> in <module>
1 dogumYili = input("Doğum yılınızı giriniz ") ----> 2 print(2020 - dogumYili)
TypeError: unsupported operand type(s) for -: 'int' and 'str'
Kullanıcının doğum yılını alarak yaş hesaplayan program
Doğum yılınızı giriniz 1984 36
İki sayının toplamını yazdıran program
12 + 13.3 = 25.3
Girilen iki sayının toplamını yazdıran program
Birinci sayı = 12 İkinci sayı = 13 12 + 13 = 25.0
İki sayının ortalamasını yazdıran program
In [1]: dogumYili = input("Doğum yılınızı giriniz ") print(dogumYili)
In [2]: # yaşınızı hesaplayan program :
dogumYili = input("Doğum yılınızı giriniz ") print(2020 - dogumYili)
In [1]: # yaşınızı hesaplayan program :
dogumYili = input("Doğum yılınızı giriniz ") print(2020 - int(dogumYili))
In [3]: sayi1 = 12 sayi2 = 13.3
toplam = float(sayi1) + float(sayi2)
print("{} + {} = {}".format(sayi1,sayi2,toplam))
In [4]: sayi1 = input("Birinci sayı = ") sayi2 = input("İkinci sayı = ") toplam = float(sayi1) + float(sayi2)
print("{} + {} = {}".format(sayi1,sayi2,toplam))
In [6]: sayi1 = 12 sayi2 = 17
ort = (sayi1 + sayi2) / 2
Ortalama = 14.5
Yarıçapı girilen dairenin alanını hesaplayan program
Yarıçapı giriniz = 4 Dairenin alanı = 50.24
Girilen sayının karekökünü bulan program
Bir sayı giriniz = 4
Girilen sayı = 4, Karekökü = 2.0
İki değişkenin değerini değiştiren program
a = 6, b = 3
a = 6, b = 3
a = 6, b = 3
print("Ortalama = ", ort)
In [23]: # Dairenin alanı = pr^2 pi = 3.14
r = float(input("Yarıçapı giriniz = ")) alan = pi * ( r * r )
print("Dairenin alanı = ", alan)
In [10]: sayi = int(input("Bir sayı giriniz = "))
karekok = sayi ** 0.5
print("Girilen sayı = {}, Karekökü = {} ".format(sayi, karekok))
In [11]: # 1. yol a = 3 b = 6
# geçici bir değişken oluşturulması gerekir tmp = a
a = b b = tmp
print("a = {}, b = {} ".format(a,b))
In [12]: # 2.yol a = 3 b = 6 a,b = b,a
print("a = {}, b = {} ".format(a,b))
In [13]: # 3.yol a = 3 b = 6
a = a + b # a = 3 + 6 sonucu a = 9 olur b = a - b # b = 9 - 6 sonucu b = 3 olur a = a - b # a = 9 - 3 sonucu a = 6 olur print("a = {}, b = {} ".format(a,b))
Kilometreyi mil'e çeviren program
Kilometre giriniz = 130 130.00 km 80.78 mile eşittir
Fanrenhayt dereceyi santigrad dereceye çeviren program
80.0 fahrenhayt 26.7 santigrada eşittir
Girilen boy ve kiloya göre beden kitle indeksini hesaplayan program
Kilo (kg) =78 Boy (m)=1.80 İndeks = 24.07
Vize notu ve final notuna göre ortalama hesaplayan program (Vize %40, Final
%60)
Vize Notunu Giriniz 34 Final Notunu Giriniz 56 47.2
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< İçerik >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Python Veri Tipleri
Karakter Dizileri Sayılar
List
List Elemanlarına Erişme List Metotları
Tuple
Tuple Elemanlarına Erişme Tuple Metotları
In [14]: km = float(input("Kilometre giriniz = "))
mil = km * 0.621371
print('%0.2f km %0.2f mile eşittir' %(km,mil))
In [21]: f = 80
s = (f-32)/1.8
print('%0.1f fahrenhayt %0.1f santigrada eşittir' %(f,s))
In [30]: # beden kitle indeksi kilo bölü boyun karesi kilo = int(input("Kilo (kg) ="))
boy = float(input("Boy (m)=")) indeks = kilo / (boy * boy)
print("İndeks = %0.2f " %(indeks))
In [22]: vizeNotu = input("Vize Notunu Giriniz ") finalNotu = input("Final Notunu Giriniz ")
ort = (float(vizeNotu) * 0.4) + (float(finalNotu) * 0.6) print(ort)
List
[]
[1, 2, 3, 4]
[1, 2, 3, 'elma', 'armut']
List Elemanlarına Erişme
List elemanlarının indeks numarası 0 dan başlar.
[[1, 2, 3], ['elma', 'armut'], 4]
['ali', 'ayşe', 'hakan', 'leyla']
ali
hakan
leyla
hakan
[38, 56]
[32, 45, 38, 56]
len() fonksiyonu dizinin eleman sayısını verir.
7
In [35]: dizi = []
print(dizi)
In [37]: dizi = [1,2,3,4]
print(dizi)
In [39]: dizi = [1,2,3,"elma", "armut"]
print(dizi)
In [41]: dizi = [[1,2,3],["elma", "armut"], 4]
print(dizi)
In [44]: dizi=["ali","ayşe","hakan","leyla"]
print(dizi) print(dizi[0])
In [45]: print(dizi[2])
In [46]: print(dizi[-1])
In [47]: print(dizi[-2])
In [48]: dizi = [32,45,38,56,78,34,90]
print(dizi[2:4])
In [50]: print(dizi[:-3])
In [51]: len(dizi) Out[51]:
In [52]: print(dizi[:3])
[32, 45, 38]
[32, 45, 38, 56, 78, 34, 90]
[1, 4, 6, 8]
[1, 3, 5, 7]
List Metotları
List veri tipi için hazır bulunan metotlar ve işlevleri tabloda verilmiştir.
Metot Açıklama append(
) Listenin sonuna eleman ekler extend( ) Listenin sonuna yeni bir liste ekler
insert( ) Listede belirli bir alana ekleme yapar. iki parametre alır birincisi poziyon, ikincisi eklenecek değer
remove( ) Listede belirli bir değeri çıkartır pop( ) belirli bir pozisyondaki değeri çıkartır clear( ) listenin bütün elemanlarını siliyor index( ) index numarasını döndürür copy( ) listenin kopyasını oluşturur
count( ) Elemanın listede kaç kez tekrarladığının sayısını verir.
reverse(
) Liste elemanlarını tersten sıralar sort( ) Liste elemanlarını sıralar
Metot Açıklama
append() Listenin sonuna eleman ekler
[5, 2, 6, 7]
Metot Açıklama
extend() Listenin sonuna yeni bir liste ekler In [53]: print(dizi[:])
In [54]: dizi = [2,4,6,8]
dizi[0] = 1 print(dizi)
In [55]: dizi[1:4] = [3,5,7]
print(dizi)
In [57]: dizi = [5,2,6]
dizi.append(7) print(dizi)
In [60]: dizi = [5 , 2 ,6]
dizi.extend([3,4,1]) print(dizi)
[5, 2, 6, 3, 4, 1]
[1, 2, 3, 4, 5, 6]
[34, 45, 34, 45, 34, 45]
Metot Açıklama
insert() Listede belirli bir alana ekleme yapar. iki parametre alır birincisi poziyon, ikincisi eklenecek değer
[2, 3, 3]
[12, 13, 3, 14]
[2, 3, 4, 5, 7]
[2, 5, 7, 8]
[2, 7, 8]
--- NameError Traceback (most recent call last)
<ipython-input-72-b09dc6769b18> in <module>
1 del dizi ----> 2 print(dizi)
NameError: name 'dizi' is not defined
Metot Açıklama
remove() Listede belirli bir değeri çıkartır In [61]: dizi = [1,2,3]
yeniDizi = [4,5,6]
print(dizi + yeniDizi)
In [63]: dizi = [34, 45]
print(dizi * 3)
In [64]: dizi = [2,3]
dizi.insert(1,3) print(dizi)
In [66]: dizi = [12,13,14]
dizi.insert(2,3) print(dizi)
In [68]: dizi = [2,3,7]
dizi[2:2] = [4,5]
print(dizi)
In [69]: dizi = [2,5,1,7,8]
del dizi[2]
print(dizi)
In [71]: dizi = [2,5,1,7,8]
del dizi[1:3]
print(dizi)
In [72]: del dizi print(dizi)
In [73]: dizi = [2,3,5,1,7]
dizi.remove(3)
[2, 5, 1, 7]
Metot Açıklama
pop() belirli bir pozisyondaki değeri çıkartır
[2, 5, 1, 7]
[2, 3, 5, 7]
[2, 3, 5, 1]
Metot Açıklama
clear() listenin bütün elemanlarını siliyor
[]
Metot Açıklama
index() index numarasını döndürür
f harfinin dizideki index numarası = 3
--- ValueError Traceback (most recent call last)
<ipython-input-82-39c944593843> in <module>
----> 1 index = harfler.index('k')
2 print("k harfinin dizideki index numarası = ", index)
ValueError: 'k' is not in list
Metot Açıklama
copy() listenin kopyasını oluşturur print(dizi)
In [74]: dizi = [2,3,5,1,7]
dizi.pop(1) print(dizi)
In [75]: dizi = [2,3,5,1,7]
dizi.pop(3) print(dizi)
In [76]: dizi = [2,3,5,1,7]
dizi.pop() print(dizi)
In [77]: dizi = [2,3,5,1,7]
dizi.clear() print(dizi)
In [81]: harfler = ["i","a","e","f"]
index = harfler.index('f')
print("f harfinin dizideki index numarası = ", index)
In [82]: index = harfler.index('k')
print("k harfinin dizideki index numarası = ", index)
In [14]: dizi = [2,3,4,5]
kopyaDizi = dizi.copy() print(kopyaDizi)
[2, 3, 4, 5]
Metot Açıklama
count() Elemanın listede kaç kez tekrarladığının sayısını verir.
3
2 sayısı dizide 3 kez bulunuyor
Metot Açıklama
reverse() Liste elemanlarını tersten sıralar
['c', 'b', 'a']
[3, 2, 1]
Bir diğer diziyi tersine çevirme yöntemi;
[3, 2, 1]
Metot Açıklama
sort() Liste elemanlarını sıralar
[1, 3, 4, 5, 6, 9]
['ahmet', 'ali', 'ayşe', 'fatma', 'hakan']
Tuple
Tuple list veri yapısına benzemekte olup farkı değiştilemez(immutable) oluşudur. Program içinde değiştirilmesini istemediğiniz dizileriniz olduğunda kullanışlı olabilir.
()
In [25]: dizi = [2,3,4,1,2,8,9,3,2,7,9]
print(dizi.count(2))
print("2 sayısı dizide {} kez bulunuyor".format(dizi.count(2)))
In [28]: dizi = ["a","b","c"]
dizi.reverse() print(dizi)
In [29]: dizi = [1,2,3]
dizi.reverse() print(dizi)
In [43]: dizi = [1,2,3]
print(dizi[::-1])
In [32]: dizi = [4,5,6,1,9,3]
dizi.sort() print(dizi)
In [33]: dizi = ["ali", "ahmet", "ayşe", "hakan", "fatma"]
dizi.sort() print(dizi)
In [36]: a = () print(a)
In [34]: a = (1,2,3,4)
(1, 2, 3, 4)
Tuple parantez kullanılmadan da oluşturulabilir.
<class 'tuple'>
<class 'tuple'>
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Tuple Elemanlarına Erişme
Tuple elemanlarına erişme liste elamanları ile aynıdır.
43
(43, 47)
--- TypeError Traceback (most recent call last)
<ipython-input-49-de7f22ffc754> in <module>
1 a = (12,34,45,67) ----> 2 a[1] = 99
3 print(a)
TypeError: 'tuple' object does not support item assignment Tuple da elemanı değiştirmek için diziye dönüştürerek ekleyebilirsiniz.
[1, 2, 4]
Tuple Metotları
Metot Açıklama
index( ) index numarasını döndürür
count( ) Elemanın listede kaç kez tekrarladığının sayısını verir.
print(a)
In [45]: programlama_dilleri = "Python", "Java", "C", "C++", "Go"
print(type(programlama_dilleri))
In [46]: rakamlar = 0,1,2,3,4,5,6,7,8,9 print(type(rakamlar))
In [47]: print(rakamlar)
In [57]: a = (12,43,47,67) print(a[1])
In [48]: a = (12,43,47,67) print(a[1:3])
In [49]: a = (12,34,45,67) a[1] = 99
print(a)
In [54]: a = (1,2,3) dizi = list(a) dizi[2] = 4 a = tuple(dizi) print(dizi)
2
3
Set
Set veri tipi matematikte bulunan kümeler konusunda yapılan işlemlere(birleşim, kesişim) benzer işlemler yapılaiblmesini sağlayan veri tipidir. Set veri tipi küme parantezi { } işareti ile tanımlanır.
{1, 2, 3, 4}
<class 'set'>
Tuple ve list veri tipinde boş bir şekilde o veri tipinden bir değişken yaratılmak istenildiğinde;
tuple için a = ( ) list için a = [ ]
şeklinde yapılabilirken. Set için benzer şekilde yapılmak istenildiğinde dictionary veri tipi oluşmaktadır.
<class 'dict'>
Boş bir şekilde set veri tipinden değişken yaratmak için;
<class 'set'>
Set veri tipi oluşturulurken tekrarlayan elemanlar matematikte kümeler mantığında olduğu gibi 1 defa işlenir.
{2, 3, 4, 5}
Tekrarlayan elemanlı set veri tipinde elaman sayısına bakıldığında 1 defa işlenildiği görülebilir.
{2, 3, 4, 5}
4
In [55]: a = (23,32,45,67) print(a.index(45))
In [56]: a = (2,3,1,4,5,6,1,2,3,2) print(a.count(2))
In [50]: a = {1,2,3,4}
print(a)
In [51]: a = {1,2,3,4}
print(type(a))
In [53]: a = {}
print(type(a))
In [49]: a = set() print(type(a))
In [54]: a = {2,3,4,5,4,2,3,4,5}
print(a)
In [55]: a = {2,3,4,5,4,2,3,4,5}
print(a) print(len(a))
Set veri tipinde öğelere erişilirken listelerdekine benzer şekilde veriye ulaşılamaz. Bunu nedeni set veri tipinin list ve tuple veri tipinde olduğu gibi sıralı olmamasıdır.
--- TypeError Traceback (most recent call last)
<ipython-input-59-55758871361a> in <module>
1 a = {2,3,4,5}
----> 2 print(a[3])
TypeError: 'set' object is not subscriptable
frozenset({'Ali', 2, 'Python', 5})
<class 'frozenset'>
Set Metotları
Metot Açıklama
add( ) Eleman ekler
clear( ) Elemanları siler
copy( ) Kopyalar
update( ) Yeniler
remove( ) Eleman Siler
discard( ) Eleman Siler(Hatasız)
pop( ) İlk elemanı Siler
union( ) İki kümenin birleşmesini sağlar intersection( ) İki kümenin kesişimini sağlar
intersection_update( ) İki kümenin kesişimini sağlar ve günceller isdisjoint( ) İki kümenin kesişiminin boş olup olmadığı difference( ) İki kümenin arasındaki fark
difference_update( ) İki kümenin arasındaki farkını bulur ve günceller issubset( ) Başka bir kümenin altkümesi olup olmadığı
{3, 4, 5, 6, 7}
In [59]: a = {2,3,4,5}
print(a[3])
In [83]: a = frozenset(["Python", 2, 5, 'Ali']) print(a)
print(type(a))
In [41]: # add metodu a = {3,4,5,6}
a.add(7) print(a)
In [42]: # clear metodu a = {3,4,5,6}
a.clear() print(a)
set()
{3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8}
{3, 4, 6}
--- KeyError Traceback (most recent call last)
<ipython-input-46-7d44b6a65d59> in <module>
2 # remove metodu elemanın olmadığı örnek 3 a = {3,4,5,6}
----> 4 a.remove(7) 5 print(a) KeyError: 7
{3, 4, 6}
{3, 4, 5, 6}
{4, 5, 6}
In [43]: # copy metodu a = {3,4,5,6}
b = a.copy() print(b)
In [44]: # update metodu a = {1,2,3,4,5,6}
b = {7,8}
a.update(b) print(a)
In [45]: # remove eleman siler, eleman yoksa hata verir
# remove metodu elemanın olduğu örnek a = {3,4,5,6}
a.remove(5) print(a)
In [46]: # remove eleman siler, eleman yoksa hata verir
# remove metodu elemanın olmadığı örnek a = {3,4,5,6}
a.remove(7) print(a)
In [47]: # discard metodu eleman siler eleman yoksa hata vermez
# discard metodu elemanın oldugu örnek a = {3,4,5,6}
a.discard(5) print(a)
In [48]: # discard metodu eleman siler eleman yoksa hata vermez
# discard metodu elemanın olmadığı örnek a = {3,4,5,6}
a.discard(7) print(a)
In [49]: # pop metodu a = {3,4,5,6}
a.pop() print(a)
A kümesi ile B kümesinin birleşimi = {1, 2, 3, 4, 5, 6, 9, 10}
A, B, C kümelerinin birleşimi = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
A kümesi ile B kümesinin kesişimi = {3, 4}
A, B, C kümelerinin kesişimi = {4}
A kümesi ile B kümesinin farkı = {1, 2, 9}
False
False
Dictionary
Anahtar-değer yapısında verileri tutmayı sağlayan veri tipidir. Sözlüklerdeki kelime ve anlamı mantığına benzemektedir. Oluşturmak için küme parantezi kullanılır.
<class 'dict'>
{1: 'Python', 2: 'Go', 3: 'Java', 4: 'C'}
In [78]: # yukarıdaki Venn şemasına göre kümeler A = {1,2,3,4,9}
B = {3,4,5,6,10}
C = {4,7,8,9,10}
# union metodu
# iki kümenin birleşimi
print("A kümesi ile B kümesinin birleşimi =", A.union(B))
# üç kümenin birleşimi
print("A, B, C kümelerinin birleşimi =", A.union(B.union(C)))
# iki kümenin kesişimi
print("A kümesi ile B kümesinin kesişimi =", A.intersection(B))
# üç kümenin kesişimi
print("A, B, C kümelerinin kesişimi =", A.intersection(B.intersection(C))
# iki küme arasındaki fark
print("A kümesi ile B kümesinin farkı =", A.difference(B))
In [63]: # isdisjoint metodu
# iki kümenin kesişimin boş olup olmadığını döner A = {3,4,5,6}
B = {5,6,7,8}
print(A.isdisjoint(B))
In [79]: # issubset metodu
# bir kümenin başka bir kümenin alt kümesi olup olmadığını döner A = {3,4,5,6}
B = {3,4}
print(A.issubset(B))
In [62]: # boş dictionary a = {}
print(type(a))
In [61]: # integer anahtarlı dictionary
a = {1: 'Python', 2: "Go", 3:"Java", 4:"C"}
print(a)
{'isim': 'Ali', 1: [2, 4, 6]}
{1: 'Python', 2: 'Go'}
Dictionary Elemanlarına Erişme
Dictionary elemanlarına anahtar değerler aracılığıyla ulaşılabilir.
Ali
36
Anahtar değerin olmaması durumunda hata döndürür.
--- KeyError Traceback (most recent call last)
<ipython-input-71-9772d978239f> in <module>
1 a = {"isim" : "Ali", "yaş" : 36}
----> 2 print(a["adres"])
KeyError: 'adres'
Hata vermemesi için ya da hatayı özelleştirmek için get metodu kullanılır. get metodu dictionary metodları konusunda işlenmektedir.
{'isim': 'Ali', 'yaş': 37}
Dictionary Metotları
Metot Açıklama
clear( ) Elemanları siler copy( ) Kopyalar fromkeys( ) Yeniler
get( ) İstenilen eleman olmadığında hata vermeden ekrana mesaj yazdırır items( ) Bütün elemanları verir
keys( ) Anahtarları verir In [64]: # karışık anahtarlı dictionary
a = { "isim" : 'Ali', 1 : [2,4,6]}
print(a)
In [65]: # dict() kullanrak dictionary oluşturmak a = dict({1: 'Python', 2: "Go"})
print(a)
In [68]: a = {"isim" : "Ali", "yaş" : 36}
print(a["isim"])
In [69]: a = {"isim" : "Ali", "yaş" : 36}
print(a["yaş"])
In [71]: a = {"isim" : "Ali", "yaş" : 36}
print(a["adres"])
In [75]: a = {"isim" : "Ali", "yaş" : 36}
a["yaş"] = 37 print(a)
Metot Açıklama
pop( ) İstenilen elemanı siler popitem( ) Rastgele bir elemanı siler
setdefault( ) Aranılan anahtar yoksa değer vererek yazdırma update( ) Güncellemeye yarar
values( ) Değerleri verir
{}
{1: 'Elma', 2: 'Portakal'}
{1: None, 2: None, 3: None, 4: None, 5: None}
{1: 'yeap', 2: 'yeap', 3: 'yeap', 4: 'yeap', 5: 'yeap'}
dict_keys([1, 2])
dict_values(['Elma', 'Portakal'])
dict_items([(1, 'Elma'), (2, 'Portakal')]) In [76]: # clear metodu
# elemanları siler
a = {1 : "Elma", 2 :"Portakal"}
a.clear() print(a)
In [77]: # copy metodu
# kopyasını oluşturur
a = {1 : "Elma", 2 :"Portakal"}
b = a.copy() print(b)
In [79]: a = {1,2,3,4,5}
b = dict.fromkeys(a) print(b)
In [80]: a = {1,2,3,4,5}
deger = "yeap"
b = dict.fromkeys(a, deger) print(b)
In [85]: # key metodu
# anahtarları gösterir
a = {1 : "Elma", 2 :"Portakal"}
print(a.keys())
In [86]: # values metodu
# değerleri gösterir
a = {1 : "Elma", 2 :"Portakal"}
print(a.values())
In [80]: # items metodu
# bütün elemanları gösterir a = {1 : "Elma", 2 :"Portakal"}
print(a.items())
In [81]: # get metodu
# aranan anahtarın değerini gösterir
36
None
İstenilen anahtar değer yok
{1: 'Python', 2: 'Java', 4: 'Go', 5: 'C++'}
{1: 'Python', 2: 'Java', 3: 'C', 4: 'Go'}
Java Rust
{'ali': 80, 'hakan': 65, 'ayşe': 40, 'merve': 55}
Öğrt. Gör. Ali ERBEY
ali.erbey@usak.edu.tr
# aranan anahtarın olduğu örnek a = {"isim" : "Ali", "yaş" : 36}
print(a.get("yaş"))
In [82]: # get metodu
# aranan anahtarın değerini gösterir
# aranan anahtarın olmadığı örnek a = {"isim" : "Ali", "yaş" : 36}
print(a.get("adres"))
In [85]: # get metodu
# aranan anahtarın değerini gösterir
# aranan anahtar olmadığında çıktının değiştirildiği örnek a = {"isim" : "Ali", "yaş" : 36}
print(a.get("adres", "İstenilen anahtar değer yok"))
In [93]: # pop metodu
# istenilen elemanı siler
a = {1 : "Python", 2 : "Java", 3 : "C", 4 :"Go", 5 : "C++"}
a.pop(3) print(a)
In [91]: # popitem metodu
# ratgele bir eleman siler
a = {1 : "Python", 2 : "Java", 3 : "C", 4 :"Go", 5 : "C++"}
a.popitem() print(a)
In [99]: # setdefault
# aranılan eleman varsa değerini getirir yoksa default bir değer döndürür a = {1 : "Python", 2 : "Java", 3 : "C", 4 :"Go", 5 : "C++"}
print(a.setdefault(2,"Rust")) print(a.setdefault(7,"Rust"))
In [103… # update metodu
# güncelleme yapar
vizeNotu = {"ali" : 80, "hakan" : 50, "ayşe": 70, "merve": 55}
yeniVizeNotu = {"ali" : 80, "hakan" : 65, "ayşe": 40}
vizeNotu.update(yeniVizeNotu) print(vizeNotu)