Aslında Data Type çok geniş bir kavram. datetime mesela, bir data type. Biz data type derken built-in typelardan, temel data typelardan bahsediyoruz. Integer gibi, String gibi, Float gibi... Bunlar bir şey ifade etmiyorsa
telaşlanmayın, hepsinin üzerinden geçeceğiz. Aşağıda bazı örnekler var, gelin bunları inceleyelim.
In [12]:
2 #Integer yani tam sayı
Out[12]:
In [7]:
2.0 #Float yani ondalıklı sayı
Out[7]:
In [8]:
1.67 #Yine bir float
Out[8]:
In [9]:
4 #Yine bir int(Integer)
Out[9]:
In [13]:
'Bu bir string'
Out[13]:
In [11]:
"Bu da bir string"
Out[11]:
In [34]:
True #Boolean
Out[34]:
In [35]:
False #Boolean
Out[35]:
Debugging yaparken oldukça yoğun kullanacağımız için print fonksiyonuna biraz erken değinmek istiyorum. Print
fonksiyonu aldığı argümanı stdout(Standart Output)'a basar. Şimdilik stdout hakkında bilmeniz gereken tek şey
onun konsol olduğu ya da Windows'daki Command Line(Komut Satırı).
In [15]:
print('test')
In [17]:
print('test2')
print("deneme123")
print(1)
print(2.55)
In [22]:
print(1, 2, 'Hello World!')
print('\n')
print(1, '\n',2, '\nHelloWorld') #\n sonraki satırda bir boşluğa neden olacak.
print('\n')
print(1, '\n' + str(2)) #str fonksiyonu integeri stringe çevirecek. Toplama işlemi stringleri birleştirmeye de yarıyor.
In [33]:
print('\ttest')
print('\t test')
print('\' <= bu işaretin adı neydi?')
Python'da 13 mantıksal işlem yapabilirsiniz. Eşittir, eşit değildir, ve, veya, değil, büyüktür, büyük eşittir,
öyledir(is), içinde(in), içinde değil(not in), öyle değildir(is not), küçüktür ve küçük eşittir... Bu işlemlerin
sonuçları doğru ise True return edilecek yanlış ise False return edilecektir.
Mantıksal işlemlerden ve, veya soldan sağa yapılır yapılır. Matematiksel ve mantıksal işlemlerde sırayı
değiştirmek için parantez kullanılır. Diğerlerinde önce sağdaki ve soldaki değerler hesaplanır.
Bunlardan bazılarını daha sonra göreceğiz.
In [36]:
True and False
Out[36]:
In [37]:
True or False
Out[37]:
In [55]:
2 or False
Out[55]:
In [39]:
0 or False
Out[39]:
In [56]:
3 < 4
Out[56]:
In [41]:
2.5 or False
Out[41]:
In [57]:
3 >= 4
Out[57]:
In [43]:
'string' or False
Out[43]:
In [44]:
2 == 2
Out[44]:
In [45]:
2 == 3
Out[45]:
In [46]:
2 != 2
Out[46]:
In [47]:
2 != 1034354435345
Out[47]:
In [48]:
False or True and False
Out[48]:
In [49]:
False and False or True
Out[49]:
In [58]:
2 <= 4
Out[58]:
In [65]:
not True
Out[65]:
In [2]:
3 is False
Out[2]:
Python'da pek çok matematiksel işlemi yapabiliriz. Pek çok derken risk almamak için söylüyorum. Temel matematiksel
işlemlerden yapamadığım olmadı.
Peki matematiksel işlemler hangi sırayla yapılıyor. Bunu anlatmak için slayta döneceğiz ama önce matematiksel
işlemlerin nasıl yapıldığını karmaşık yapılara girmeden gösterelim.
Kendime not: Python 2'de float eşitliğinden bahset.
In [51]:
2 + 2 + 4 - 1
Out[51]:
In [52]:
2 * 3 / 2
Out[52]:
In [53]:
2 ** 4
Out[53]:
In [54]:
4 ** (1/2)
Out[54]:
In [63]:
5 // 2
Out[63]:
In [64]:
5 % 2
Out[64]:
Yönü Yok kavramını açacağız.
\begin{array}{|c|c|c|}
\hline
Yukaridan \space Asagi \space Islem \space Onceligi \space Sirasi \space & Ismi & Islem \space Yonu \\
\hline
() & Parantez & Yonu \space Yok \\
** & Ussu & Sagdan \space Sola \\
+ \space - & Isaret & Yonu \space Yok \\
* \space / \space // \space \% \space & Carpi, \space Bolu, \space Mod & Soldan \space Saga \\
+ \space - & Toplama, \space Cikarma & Soldan \space Saga \\
== \space != \space > \space >= \space < \space <= \space is \space (is \space not) \space in \space (not \space in) & Mantiksal \space Operasyonlar & Yonu \space Yok \\
not & Degil & Yonu \space Yok \\
and & Mantiksal \space Ve & Soldan \space Saga \\
or & Mantiksal \space Veya & Soldan \space Saga \\
\hline
\end{array}
In [5]:
2.3 == 23 or 10
Out[5]:
In [4]:
0.1 == 1/10
Out[4]:
In [25]:
2 is not 3 is 4 #Hem 2 is not 3 hem 3 is 4 doğru olduğunda doğrudur. Arada and var gibi.
Out[25]:
In [26]:
2 is not 3 is 3
Out[26]:
In [27]:
3 is not 3 is 3
Out[27]:
In [28]:
1 == 1 == 2
Out[28]:
In [29]:
1 == 2 == 2
Out[29]:
In [31]:
2 ** 2 ** 3 #İşlem sağdan sola yapılıyor.
Out[31]:
In [33]:
2 * 2 ** 2 ** 3 / 3 #Önceliği yüksek işlemden başlanıyor.
Out[33]:
In [35]:
2 ** -3 * 4
Out[35]:
In [36]:
2 ** (-3 + 4)
Out[36]:
Bu konuda evde daha fazla pratik yapabilirsiniz. Konuyu geçiyorum.
Pythom'da diğer pek çok dilde olduğu gibi değişkenler tanımlayarak ve onların üzerinde işlemler yaparak kod
yazarız. Değişken tanımlamak için eşittir işaretini kullanıyoruz.
Değişken tanımlarken hem kodu daha sonra okumanızı hem de başkalarının okumasını kolaylaştırmak için anlamlı
kelimeler seçmeniz gerekir.
Eşittir işareti stdout'u variablea atar. Bu nedenle Python variable atandığında değeri konsola basmaz.
In [43]:
a = 4
In [42]:
a = 5
b = 4
c = a != b
print(c)
In [39]:
variableda boşuk olmaz = 0
In [41]:
alt_cizgi_kullanilir = 5
yadaBuSekildeTanimlanir = 4
print(alt_cizgi_kullanilir, yadaBuSekildeTanimlanir)
Sıralı dizileri saklamak için listler ve tupleları kullanırız. Tuplelar değiştirilemez yani immutable, listler ise
değiştirilebilir yani mutable elementlerdir. İkisi üzerinde in ve not in argümanlarını kullanabilir ve listler
üzerinde çeşitli fonksiyonlar kullanabiliriz. Bunlara yakından bakalım.
In [44]:
myList = [] #Bu boş bir liste
myTuple = (1,) #Tuple en az bir element içermek zorundadır. Tek element olduğunda virgül eklemek zorundayız.
myTuple2 = 1, 2 #Parantez kullanmadan virgül ile de tuple oluşturabiliriz.
print(myList, myTuple, myTuple2)
In [46]:
print(1 not in (2, 3, 4), 2 in [2, 3])
In [51]:
a = [[1, 3, 4], (2, 3)] #Listler tuple ve list elementleri içerebilir.
b = (1, 2, 3, (3, 4), [1, 2])
print(a, b)
b[4].append(1) #List ve tuple indexi 0'dan başlar, erişmek için elementin ismi yanına köşeli parentezle indexini yazarız.
print(b) #Tuple içine list koymak tupleın immutable yapısını bozar.
In [55]:
a = [[1, 3, 4], (2, 3)]
a.pop() # pop fonksiyonu listin son elementini verir.
Out[55]:
In [61]:
a = [[1, 3, 4], (2, 3)]
a.pop(0) #Indexi verirsek o elementi çıkarır. Sonra stdouta basar.
Out[61]:
In [60]:
a = [[1, 3, 4], (2, 3)]
a.insert(0, 1) #Insert ile indexi verilen lokasyondaki elementten önce yeni element eklenir. Büyük listelerde verimsizdir.
print(a)
In [64]:
a = [0, 1, 3, 2, 4, 5, 6, 7, 8, 9]
a.index(3) # index fonksiyonu listler ve tuplelar üzerinde çalışır. Verilen elementin indexini stdouta basar.
Out[64]:
In [65]:
a = (1, 2)
a.index(2)
Out[65]:
In [66]:
a = 1, #Bu da bir tuple, parantez koymak zorunda değiliz.
a.append(1) #Hata verecek çünkü tuple immutable
In [67]:
a = True
if a is True: #İki nokta işaretine dikkat edelim.
print("a Doğru") #Statementın içinde boşlukla çalışmamız gerekiyor.
else:
print("a Yanlış") #Bu kod çalışmayacak.
In [68]:
a = [1, 2, 3, 4, 5]
if 6 in a:
print("6 dahil")
elif 2 in a:
print('2 dahil')
In [69]:
input("Yaşın kaç: ")
Out[69]:
In [70]:
age = input('Yaşınızı girin: ')
if age >= 13:
print('Siteye devam edebilirsiniz.')
else:
print('Siteye giremezsiniz.')
In [71]:
age = input('Yaşınızı girin: ')
if int(age) >= 13:
print('Siteye devam edebilirsiniz.')
else:
print('Siteye giremezsiniz.')
Hataları kontrol altında tutabilmek için try ve except argümanlarına ihtiyacımız var. Bu argümanları kullanarak
hata oluştuğunda ne yapılması gerektiğine karar verebiliriz.
Programı durdurmak için raise fonksiyonu kullanabilirsiniz. Bu durumda raise argümanını stdouta basacak ve
programı durduracaktır.
In [76]:
try:
a = input('Yaşınızı girin: ')
age = int(a)
except ValueError:
raise SystemExit('Hatalı Giriş')
Pekiştirme yapmak amacıyla şimdi bir program yazalım. Bu program toplam 3 adet not alıyor.
2 midterm, 1 final notu. Midtermler %30, final %40 etkiliyor. Öğrencinin ortalaması 55 ve üstü ise dersten
geçiyor değilse kalıyor.
In [77]:
mid1 = input('Midterm 1 Notunuz: ')
try:
mid1 = int(mid1)
except ValueError:
raise SystemExit('Hatalı Giriş')
mid2 = input('Midterm 2 Notunuz: ')
try:
mid2 = int(mid2)
except ValueError:
raise SystemExit('Hatalı Giriş')
final = int(input('Final Notunuz: '))
try:
final = int(final)
except ValueError:
raise SystemExit('Hatalı Giriş')
average = (mid1 * 30 + mid2 * 30 + final * 40) / 100
if average >= 55:
print('Dersten geçtiniz. Tebrikler.')
else:
print('Dersten kaldınız. Tekrar deneyiniz.')
In [ ]: