-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAll-Python.py
More file actions
683 lines (491 loc) · 20.2 KB
/
All-Python.py
File metadata and controls
683 lines (491 loc) · 20.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
## Integer ( Tam Sayı )
print(5 + 6)
## Float ( Ondalık Sayı )
print(0.5 + 0.3)
x = 3
y = 5
print(x + y)
r = input("r: ") ## ---> Kullanıcıdan alınan veri.
r = int(r) ## ---> Kullanıcıdan alınan veri sadece integer olacak.
print(r + y)
## Strings
z = "1234567890"
print(len(z)) ## ---> len(z) ---> Z string'inin uzunluğu
print(z)
print("Welcome \nThe \nMatrix") ## ---> \n Escape Character. New Line anlamına gelir. Bir satır alta yazdırır.
print("Welcome \tThe \tMatrix") ## ---> \t Escape Character. Tab kadar boşluk bırakır.
## Indexing
print(z[0]) ## ---> z[0] ---> z Değişkenimde ki ilk harfi gösterir.
print(z[2:]) ## ---> z[2:] ---> z Değişkenimde ki ilk iki harfi alma diğerlerini göster. ---> Slicing denir.
print(z[:2]) ## ---> z[:2] ---> z Değişkenimde ki ilk iki harfi gösterir. ---> Stoping Index.
print(z[2:4]) ## ---> z[2:4] ---> z Değişkenimde ki ilk 4 harfi göster ama ilk ikisini alma.
print(z[::3]) ## ---> z[::3] ---> z Değikenimde ki harfleri 3'er 3'er atlar.
print(z[::-1]) ## ---> z[::-1] ---> z Değikenimi ters yazdır.
## String Methods
my_name = "mustafa"
## ---> Değişkenin yanına getirdiğimiz nokta o değişken ile yapabileceğimiz yada sorgulayabileceğimiz şeyleri gösterir.
print(my_name.capitalize()) ## ---> Capitalize ile baş harfini büyütür.
my_name_capitalized = my_name.capitalize() ## ---> Yeni bir değişken oluşturulup büyük harfi kaydetme.
print(my_name_capitalized) ## ---> Tüm değişkenlerin ilk harfi büyük olacak.
my_name2 = "Mustafa Kum"
print(my_name2.split()) ## ---> İçeride ki değişkenleri ayırır.
my_name2_split = my_name2.split() ## ---> Yeni değişken oluşturulup Split'i kaydetme.
print(my_name2_split) ## ---> Split aslında liste haline getiriyor ve 0 hiçbir şey yazmazsak tüm listeyi getiriyor.
print(my_name2_split[0]) ## ---> Split aslında liste haline getiriyor ve 0 yazarak ilk kelimeyi getiriyoruz.
print(my_name2_split[1]) ## ---> Split aslında liste haline getiriyor ve 1 yazarak ilk kelimeyi getiriyoruz.
print(my_name2.upper()) ## ---> Upper tüm string'i büyük harf haline getirir.
my_surname = "Kum"
my_full_name = my_name + my_surname ## ---> my_name ve my_surname değişkenlerini toplayabiliriz ama direkt olarak yan yana yazar.
print(my_full_name)
my_full_name = my_name + " " + my_surname ## ---> my_name ve my_surname değişkenlerini toplayabiliriz ama arada boşluk kullanarak yazar.
print(my_full_name)
## Lists
## ---> Immutabilty ---> String'in harflerini değiştiremezsin.
# my_string = "Mustafa"
# my_string[1] = "B" ---> My_string değişkenimin ikinci harfi (u) B olsun dedik fakat hata aldık.
my_list = [1,2,3]
print(my_list[0])
my_list[0] = 5
print(my_list[0]) ## ---> Mutable ---> Sayıların listler içerisinde ki değiştirilebilmesi.
my_list.append(7) ## ---> Append eklemek.
print(my_list)
print(my_list.pop()) ## ---> Listenin en son elemanını gösterdi ve listeden attı.
print(my_list)
my_list1 = [1,2,3]
my_list2 = [4,5,6]
my_list3 = my_list1 + my_list2 ## ---> Listeler toplanabilir. Tam sayılar ile çarpılabilir.
print(my_list3)
my_list1.reverse() ### ---> Reverse, listeyi ters çevirdi.
print(my_list1)
## ---> Nested List ---> İç içe geçmiş liste. Liste içine liste koymak.
new_list = [1,2,4,"a"]
new_list = [1,2,4,"a",[3,5]]
nested_list = new_list[4]
print(nested_list)
print(new_list[4][1])
## ---> Slicing
print(new_list[2:])
print(new_list[:2])
## Dictionary
my_dictionary = {"key":"value"}
print(my_dictionary["key"])
my_fitness_dictionary = {"run":100, "swim":200}
print(my_fitness_dictionary["run"]) ### ---> Anahtar ve değeri eşitleme. Örnek = run çağırınca direkt olarak 100 sayısı gelecek.
my_dictionary1 = {"key1":100, "key2":[1,2,3], "key3":{"a":5}}
print(my_dictionary1.keys()) ### ---> Sözlükteki keyleri gösterir.
print(my_dictionary1["key3"])
print(my_dictionary1["key3"]["a"])
print(my_dictionary1.values()) ### ---> Sözlükteki değerleri gösterir.
my_dictionary1["key4"] = 5 ### ---> Sözlüğe yeni key eklemek.
print(my_dictionary1)
## Set
my_list_set = [1,2,3,1]
## ---> Casting ---> Çevirme... List - Set,, INT - FLOAT
my_list_set = set(my_list_set)
print(my_list_set)
my_set = set() ### ---> Normal olarak set'i tanımlarsak Dictionary olarak görür fakat bu şekilde tanımlarsak hep set olarak görecektir.
my_set.add(1) ### ---> Set olarak tanımlamazsan .add çıkmaz.
my_set.add(2)
print(my_set)
my_dict = dict() ### ---> Dictionary olarak da yapılabilir.
my_dict["key1"] = 1
print(my_dict)
my_list4 = list() ### ---> List için de yapılabilir.
my_list4.append(1)
print(my_list4)
## Tuple
my_tuple = ("a", 2, "b")
## my_tuple[0] = "b" ---> Immutable ---> Tuple'de listenin elemanlarını değiştiremezsin.
my_tuple.count("a")
print(my_tuple.count("a")) ## ---> İçinde kaç tane a değişkeni olduğunu sayıyor.
my_tuple2 = (1,1,1,1,2,3,4,5,6)
print(my_tuple2.count(1))
print(my_tuple2.index(2)) ## ---> Kaçıncı sırada olduğunu bulur değişkenin.
## Boolean ---> Doğru yanlış cevabını veren operatör.
my_boolean = True
is_Dead = False
print(5>3) ## ---> Doğru olup olmadığını yazar.
a = 5
b = input("b: ")
b_int = int(b)
print(a > b_int)
## Comparison ---> Karşılaştırma. <=, >=, ==, !=, and, or, not
print(2 > 1 and 2 < 3) ## ---> And için ikiside doğru olması gerekiyor. True döner.
print(2 < 1 or 2 > 1) ## ---> Or iiçin bir tanesi doğru olması yeterli.
print(not 10 == 10) ## ---> Not direkt olumsuz. True ise False yapar.
## If Statements
if 3 > 2:
print("3 is greater than 2")
q = 4
w = 5
if q < w:
print("Q W'dan küçük") ## ---> Eğer q w'dan küçük ise Q W'dan küçük yazdır.
else:
print("W Q'dan büyük") ## ---> Eğer w q'dan büyük ise W Q'dan büyük yazdır.
e = 4
r = 5
if e > r:
print("E R'den büyük") ## ---> Eğer e r'den büyük ise E R'den büyük yazdır.
else:
print("E R'den küçük") ## ---> Eğer e r'den küçük ise E R'den küçük yazdır.
t = 4
u = 4
if t > u:
print("T U'dan büyük")
elif t == u:
print("T ve U birbirine eşit") ## ---> if ve else'den başka diğer bir kontrol aracı.
else:
print("Diğer durumlar.")
my_superhero = input("superhero: ") ## ---> Kullanıcıdan alınan input
if my_superhero == "IronMan":
print("Iron Man is the best defender of Earth") ## ---> Iron Man girdiyse kullanıcı bunu yazdır.
elif my_superhero == "SuperMan":
print("Iron Man is the best my man change it") ## ---> SuperMan girdiyse kullanıcı bunu yazdır.
else:
print("Just Iron Man just") ## ---> SuperMan yada Iron Man girmediyse kullanıcı bunu yazdır.
c = 10
v = 20
m = 30
if c < 20 and v > m: ## ---> And operatöründe ikiside doğru olması lazım. Doğru olmadığı için elif kontrolüne geçti.
print("IronMan")
elif v < m or c > m:
print("Batman")
else:
print("SuperMan")
isDeath = False
if isDeath:
print("Character is Death") ## ---> Burada direkt True ise bunu yazdır anlamına gelir.
else:
print("Character is not Death") ## ---> Burada direkt False ise bunu yazdır anlamına gelir.
if not isDeath:
print("Character is not Death") ## ---> Direkt True sorgulamasını geçiyoruz not ile.
my_string = "Hello World"
if "Hello" in my_string: ## ---> My_String'in içinde Hello var mı ? Kontrolü
print("True")
else:
print("False")
my_list5 = [1,2,3,4,5]
if 2 in my_list5: ## ---> Liste içinde de istediğimiz şeyin bulunup bulunmadığı kontrol edilebilir.
print("True")
else:
print("False")
my_dict2 = {"key1":100, "key2":200 }
if 100 in my_dict2.values():
print("True")
else:
print("False")
## For Loop
my_list6 = [1,2,3,4,5,6]
for number in my_list6: ## ---> My_list6'da ki elemanları al number diye bir değişkene ata.
print(number)
for item in my_list6:
new_number = item * 5
print(new_number)
for number1 in my_list6:
if number1 % 2 == 0: ## ---> Number1 diye bir değişken atadık her bir listenin karakterine. İçlerinden 2 ile tam bölünebilir olanları getirdi.
print(number1)
my_string1 = "Mustafa Kum"
for letter in my_string1:
print(letter)
for letter1 in my_string1:
if letter1 == "a":
print(letter1)
my_new_list = [("a","b"), ("c","d"), ("e","f"), ("g","h")]
for (x,y) in my_new_list:
print((x,y)) ## ---> Düzenli bir listeden bahsediyorsak basit olarak bu yapılabilir. Karışık olmayan liste.
for (x,y) in my_new_list:
print((x)) ## ---> Sadece x'leri aldı.
for (x,y) in my_new_list:
print((y)) ## ---> Sadece y'leri aldı.
my_dict3 = {"key1": 100, "key2": 200, "key3": 300}
for (a,b) in my_dict3.items(): ## ---> Dictionary için a ve b'yi değişken atadık ve içindekileri a ve b ile ayrı ayrı görebildik.
print(a)
print(b)
## Continue Break Pass
my_list7 = [10,20,30,40,50,60]
for num in my_list7:
if num == 30:
break ## ---> 30'a geldiğin anda işlemi kes.
print(num * 5)
for item in my_list7:
if item == 30:
continue ## ---> 30'a geldiği anda 30'dan sonrası için devam etti yani 40'dan
elif item == 40:
continue
print(item)
for no in my_list7:
pass ## ---> Bu işlemi geç anlamında. Hiçbir işlem yapma.
## While Loop
a = 0
while a < 5: ## ---> a 5'den küçük olduğu sürece a 5'den küçük yazdıracak.
print("a 5'den küçük")
a = a + 1
b = 0
while b < 5:
if b == 3: ## ---> a 3'e eşit olduğu anda duracak.
break
print(b)
b += 1
c = 0
while c < 20:
#print("value of c :" + str(c)) ## ---> Çıktının içine value of c'yi yazdırıp yanına string'e çevrilmiş c değerini yazdırıyoruz.
print(f"value of c : {c}") ## ---> Formanting ---> Başına f koyarak yukardakinin aynısını alabiliyoruz.
c +=1
## Useful Methods
# Range
print(range(20)) ## ---> 0'dan 20'ye gösterim. 20 dahil değil.
print(list(range(20)))
for number in list(range(20)): ## ---> Kolay yoldan tek kod ile liste içindeki herşey ile işlem yapma.
print(number * 5)
my_list8 = range(5,20,3) ##----> 3'er 3'er git.
for number in my_list8:
print(number)
my_list9 = list(range(0,10)) ## ---> 0 ile 10 aarsında liste oluşturdu. İstediğimiz zaman kullanabiliriz.
# Enumerate
for number in enumerate(list(range(5,15))): ## ---> Yanında index'ini gösterir. Yani listede kaçıncı sırada olduğunu.
print(number)
for (index,number) in enumerate(list(range(5,15))):
print(index)
print(number)
# Random
from random import randint ## ---> Anaconda ile birlikte random kütüphanesinden randint sözlüğünü çektik.
print(randint(0,1000)) ## ---> 0 ile 1000 arasında rastgele bir sayı verecek.
from random import shuffle ## ---> Karıştıma.
my_list10 = list(range(0,10))
shuffle(my_list10)
print(my_list10)
# Zip ---> Liste birleştirmek
sports_list = ["run", "swim", "basketball"]
calories_list = [100, 200, 300]
day_list = ["pazartesi", "salı", "çarşamba"]
new_list2 = list(zip(sports_list,calories_list,day_list))
print(new_list2)
for (x,y,z) in new_list2:
print(x)
print(new_list2[0])
## List advanced
new_list3 = []
my_string2 = "IronMan"
for element in my_string2: ## ---> My_string2'de ki harfleri tek tek new_list3'e ekliyoruz.
new_list3.append(element)
print(new_list3)
new_list4 = [Iron for Iron in my_string2] ## ---> Yukarıda ki işlemin aynısı.
print(new_list4)
new_list5 = [number2 for number2 in list(range(0,10))]
print(new_list5)
new_list6 = [number3*5 for number3 in list(range(0,10))]
print(new_list6)
## Methods And Fuctions
my_string3 = "Mustafa"
my_string3_upper = my_string3.upper() ## ---> Küçük Method örneği.
print(my_string3_upper)
def hello_world(): ## ---> Foksyonu tanımladın. Artık direkt olarak hello_world yazınca kullanabilirsin.
print("hello")
print("world")
hello_world() ## ---> Print yazmaya gerek yok direkt olarak döndürür.
# Input and Output
def IronMan(CivilWar): ## ---> CivilWar burada bir değişken olarak atandı. Yani input alıyor.
print(CivilWar)
IronMan("Cap")
def TonyStark(CivilWar = "Cap"): ## ---> Default olarak Cap yazdırır parantezi boş bırakınca.
print(CivilWar)
TonyStark()
TonyStark("IronMan") ## ---> Kendimizde buradan Input'u değiştirebiliriz.
def summ(number1,number2):
number3 = number1 + number2
print(number3)
summ(42,52)
def summation(num1,num2,num3):
return num1 + num2 + num3
summation(10,20,30)
my_result = summation(10,20,30)
print(my_result) ## ---> Değişkene de eşitleyebiliriz. Return yapmadan eşitleyemezsin.
def control_string(Marvel):
if Marvel[0] == "t":
print(Marvel.capitalize()) ## ---> Marvel değişkeninin ilk harfi t ise onu büyüt dedik.
control_string("tony")
def control_string(Marvel):
print(Marvel.capitalize()) ## ---> Marvel değişkeninin ilk harfi t ise onu büyüt dedik.
control_string("cony")
# Arbitrary arguments & Key word arguments
def summation_2(*args): ## ---> * buraya ne yazarsam onu al demek.
sum(args)
print(args)
summation_2(10,20)
def example_fuction(**kwargs): ## ---> ** keyword'lü bir şekilde yansıttı.
print(kwargs)
example_fuction(run=100, swim=200)
def summ2(*args):
return sum(args)
summ2(30,20,50)
print(summ2(10,20,30)) ## ---> Toplamlarını görmek için print ile yazdırmak zorunda kaldık.
def example_fuct(**kwargs):
if "Tony" in kwargs:
print("Iron Man")
else:
print("Cap")
example_fuct(Tony = 1)
## Advenced Fuctions
def divide(number):
return number / 2
my_list11 = [1,2,3,4,5,6,7,8,9]
my_new_list2 = []
for number in my_list11:
my_new_list2.append(divide(number))
print(my_new_list2)
# Map
## ---> iterable, tek tek gezilebilen liste.
list(map(divide,my_list11)) ## ---> Foksyon ve listeyi birbirine uyarladı ve liste şeklinde çıktısını verdi.
print(list(map(divide,my_list11)))
def control_string2(string):
return "Tony" in string
print(control_string2("Tony")) ## ---> Normalde sadece Foksyon ile dönmesi gerekirken print basmak zorunda kaldık.
my_artist_list = ["Tony", "Stark", "Steve", "Rogers"] ## ---> Koşula uyan ile işlem yapma.
print(list(map(control_string2,my_artist_list))) ## ---> Hepsine tek tek foksyonu uyguladı.
# Filter
list(filter(control_string2,my_artist_list))
print(list(filter(control_string2,my_artist_list))) ## ---> Koşullara uyandan yeni liste oluşturma.
# Lambda ---> Tek kullanımlık foksyonlar için
def multiply(number):
return number * 3
print(multiply(5))
multiply2 = lambda number: number * 3
print(multiply2(5))
my_list12 = [1,2,3,4,5,6]
list(map(lambda num:num * 2, my_list12 ))
print(list(map(lambda num:num * 2, my_list12 )))
## Decorator
def func(new_func):
print("Func started")
new_func() ## ---> İlk önce func ilk satırı çalıştı sonra new_func değişkeni çalıştı ve devam etti.
print("Func ended")
def my_func():
print("Hello World")
func(my_func)
def decorator_func(func):
def wrapper_func():
print("wrapper started")
func()
print("wrapper ended")
return wrapper_func
def func_new():
print("Hello World")
example_fuct2 = decorator_func(func_new) ## ---> Bunu.
@decorator_func ## ---> Üstte yaptığım işlemin direkt olarak entegre etti.
def func_new():
print("Hello World")
func_new()
## OOP Classes
my_list13 = list() ## ---> Liste sınıfından bir obje oluşturmak instance. ## ---> attribute, . koydukttan sonraki özzellikler.
class MyMusician():
job = "musician" ## ---> Buraya varsayılan olarak şeyler eklenebilir.
def __init__(self,name,age): ## ---> MyMusician ek özellikler atamamızı sağladı. Attribute gibi.
self.name_attribute = name
self.age_attribute = age
# Method
def sing(self):
print(f"We are the champions {self.age_attribute}")
my_musician = MyMusician("James", 50) ## ---> Yukarıda yaş ve isim attribute'unu atadık bu yüzden isim ve yaş yazdık.
print(my_musician.age_attribute) ## ---> Bu şekilde yaşını çağırırsak direkt olarak atadığımız yaşı verecek.
print(my_musician.name_attribute)
my_musician.name_attribute = "Lars" ## ---> İstediğimiz gibi değiştirebiliriz.
print(my_musician.name_attribute)
print(my_musician.sing())
class DogYear():
year_factor = 7
def __init__(self,age=0): ## ---> Default olarak istediğimiz şeyi gösterebiliriz.
self.age = age
def calculation(self):
return self.age * self.year_factor ## ---> DogYear.year_factor olarak da çalışır.
my_dog = DogYear(5)
print(my_dog.age)
print(my_dog.calculation())
# Inheritance ---> Kısaca miras alma.
class Class1():
def __init__(self):
print("Class 1 created.")
def method_1(self):
print("Method 1")
def method_2(self):
print("Method 2")
my_instance = Class1()
my_instance.method_1()
my_instance.method_2()
class Class2(Class1): ## ---> Class1'i Class2'nin içerisinde sorunsuz şekilde kullanabiliriz.
def __init__(self):
Class1.__init__(self)
print("Class 2 created.")
def method_3(self):
print("Method 3")
def method_1(self):
print("Method_1 overrided")
my_instance2 = Class2() ## ---> Kullandıktan sonra ikisini birden yazdıracaktır.
my_instance2.method_1() ## ---> Buradaki olay Class1'i Class2 için attiribute yapmış olduk.
my_instance2.method_3()
# Polymorphism ---> Aynı isimde ki methodları farklı sınıflara göre çalıştırma.
class Apple():
def __init__(self, name):
self.name = name
def information(self):
return self.name + "100 calories"
class Banana():
def __init__(self, name):
self.name = name
def information(self):
return self.name + "200 calories"
banana = Banana("banana")
apple = Apple("apple")
print(banana.information())
print(apple.information())
fruit_list = [banana, apple]
for fruit in fruit_list:
print(fruit.information()) ## ---> Aynı isimde ki attribute'ları liste şeklinde aynı anda çalıştırılabilir.
def get_info(fruit):
print(fruit.information())
get_info(apple)
get_info(banana)
## Speacial Methods
class Fruits():
def __init__(self,name,calories):
self.name = name
self.calories = calories
def __str__(self): ## ---> String'e çevirip print şeklinde yazdırır.
return("Example")
my_fruit = Fruits("Banana", 300)
print(my_fruit) ## ---> My_fruit default olarak Example yazdırıyor.
class Fruits():
def __init__(self,name,calories):
self.name = name
self.calories = calories
def __str__(self):
return(f"{self.name} has {self.calories}") ## ---> Hangi name ve calories'i verdiysek öyle yazdırdı.
def __len__(self):
return self.calories
my_fruit = Fruits("Banana", 300)
print(my_fruit)
print(len(my_fruit))
## Error Handling
#def summation(number1, number2):
#return number1 + number2
#x = input("Number1")
#y = input("Number2") ---> Bir tanesine sayı değilde string yazarsak program çöker onu ele alıcaz.
#####def numberpower(a,b):
#####return a + b
#####print(numberpower(3,5)) ## ---> String yazarsak çöker.
# Try, Except, Finally
##### while True:
#####try:
#####a = int(input("Enter a number: "))
#####b = int(input("Enter a number2: "))
#####except:
#####print("Enter a number!!")
#####continue ## ---> Hiçbir şey olmamış gibi başa dön.
#####else:
#####print("Ok")
#####break
#####finally:
#####print("Finally") ## ---> Her zaman çalıştırılacaktır.
## Modules Packages ---> pip install numpy .
import numpy as np ## ---> Numpy'ı np adı olarak da kaydedilebilir.
grades = np.random.normal(80,30,15) ## ---> Ortalama 80, Standart Sapma 30, 15 Tane
print(np.mean(grades)) ## ---> Ortalamasını al.