<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Data Typelar
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.
Step1:  print Fonksiyonu, Özel Karakterler ve str Fonksiyonu
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ı).
Step2:  Mantıksal İşlemler
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.
Step3:  Matematiksel İşlemler
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
Step4:  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}
Step5:  Bu konuda evde daha fazla pratik yapabilirsiniz. Konuyu geçiyorum.
Variablelar
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.
Step6:  Listler ve Tuplelar
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.
Step7:  If - Elif - Else Statementlar
Belli değerlere göre hangi kodun çalıştırılacağını bulmak için if - elif -else statementları kullanırız.
Step8:  Kullanıcıdan Input Almak - input()
Kullanıcıdan input almak programların en önemli parçalarından biridir. Bunu yapmak için Python 3'te input()
 fonksiyonunu kullanıyoruz.
Step9:  try - except - raise
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.
Step10:  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.
<ASSISTANT_TASK:>
Python Code:
2 #Integer yani tam sayı
2.0 #Float yani ondalıklı sayı
1.67 #Yine bir float
4 #Yine bir int(Integer)
'Bu bir string'
"Bu da bir string"
True #Boolean
False #Boolean
Explanation: Data Typelar
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.
End of explanation
print('test')
print('test2')
print("deneme123")
print(1)
print(2.55)
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.
print('\ttest')
print('\t test')
print('\' <= bu işaretin adı neydi?')
Explanation: print Fonksiyonu, Özel Karakterler ve str Fonksiyonu
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ı).
End of explanation
True and False
True or False
2 or False
0 or False
3 < 4
2.5 or False
3 >= 4
'string' or False
2 == 2
2 == 3
2 != 2
2 != 1034354435345
False or True and False
False and False or True
2 <= 4
not True
3 is False
Explanation: Mantıksal İşlemler
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.
End of explanation
2 + 2 + 4 - 1
2 * 3 / 2
2 ** 4
4 ** (1/2)
 5 // 2
5 % 2
Explanation: Matematiksel İşlemler
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.
End of explanation
2.3 == 23 or 10
0.1 == 1/10
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.
2 is not 3 is 3
3 is not 3 is 3
1 == 1 == 2
1 == 2 == 2
2 ** 2 ** 3 #İşlem sağdan sola yapılıyor.
2 * 2 ** 2 ** 3 / 3 #Önceliği yüksek işlemden başlanıyor.
2 ** -3 * 4
 2 ** (-3 + 4)
Explanation: 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}
End of explanation
a = 4
a = 5
b = 4
c = a != b
print(c)
variableda boşuk olmaz = 0
alt_cizgi_kullanilir = 5
yadaBuSekildeTanimlanir = 4
print(alt_cizgi_kullanilir, yadaBuSekildeTanimlanir)
Explanation: Bu konuda evde daha fazla pratik yapabilirsiniz. Konuyu geçiyorum.
Variablelar
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.
End of explanation
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)
print(1 not in (2, 3, 4), 2 in [2, 3])
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.
a = [[1, 3, 4], (2, 3)]
a.pop() # pop fonksiyonu listin son elementini verir.
a = [[1, 3, 4], (2, 3)]
a.pop(0) #Indexi verirsek o elementi çıkarır. Sonra stdouta basar.
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)
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.
a = (1, 2)
a.index(2)
a = 1, #Bu da bir tuple, parantez koymak zorunda değiliz.
a.append(1) #Hata verecek çünkü tuple immutable
Explanation: Listler ve Tuplelar
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.
End of explanation
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.
a = [1, 2, 3, 4, 5]
if 6 in a:
    print("6 dahil")
elif 2 in a:
    print('2 dahil')
Explanation: If - Elif - Else Statementlar
Belli değerlere göre hangi kodun çalıştırılacağını bulmak için if - elif -else statementları kullanırız.
End of explanation
input("Yaşın kaç: ")
age = input('Yaşınızı girin: ')
if age >= 13:
    print('Siteye devam edebilirsiniz.')
else:
    print('Siteye giremezsiniz.')
age = input('Yaşınızı girin: ')
if int(age) >= 13:
    print('Siteye devam edebilirsiniz.')
else:
    print('Siteye giremezsiniz.')
Explanation: Kullanıcıdan Input Almak - input()
Kullanıcıdan input almak programların en önemli parçalarından biridir. Bunu yapmak için Python 3'te input()
 fonksiyonunu kullanıyoruz.
End of explanation
try:
    a = input('Yaşınızı girin: ')
    age = int(a)
except ValueError:
    raise SystemExit('Hatalı Giriş')
Explanation: try - except - raise
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.
End of explanation
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.')
Explanation: 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.
End of explanation
<END_TASK>