Merhaba,
Yeni bir yazıyla devam edelim. Keyifli okumalar :)
1. Fonksiyonlar
4. Exceptions (İstisnalar)
5. Sınıflar (Classes)
Yeni bir yazıyla devam edelim. Keyifli okumalar :)
1. Fonksiyonlar
- Fonksiyon, bir grup kodun özel bir görevi yerine getirdiği bir konteyner yapısıdır.
- Yazdığımız fonksiyonları kodumuzun içinde tekrar kullanabiliriz.
- Fonksiyon yapısı:
def greet_user(): print("Hello there!") print("Welcome abroad!")
- PEP8'e göre fonksiyon tanımladıktan sonra iki satır boşluk bırakmak gerekir.
- Her zaman önce fonksiyon tanımlanır, sonra çağrılır.
2. Parametreler
- Fonksiyonlarda, bir lokal değişken görevi üstlenen parametreler tanımlayabiliriz.
# with parameters
def greet_user2(name): print(f'Hello {name}!') # same as a local variable in function: name = "Hatice"
print("Welcome abroad!") greet_user2("Hatice")
- Argüman, fonksiyonlara sağladığımız asıl değerlerdir. Örnekteki "Hatice" argümandır.
- Parametre, fonksiyonlarda değer almamızı sağlamak için tanımladığımız yer tutuculardır (placeholders). Örnekteki name parametredir.
- Bir fonksiyonda birden fazla parametre tanımlanabilir.
3. Anahtar Argümanlar (Keyword Arguments)
- Fonksiyonda sıralamanın önemli olduğu argümanlara pozisyona bağlı (positional) argüman denir. Örneğin def greeting(first_name, last_name) olarak tanımlanan bir fonksiyonda argüman sıralaması önemlidir.
- Anahtar argümanlar sayesinde sıralamanın önemi ortadan kalkar. Yukarıdaki örnek için fonksiyon şöyle çağrılabilir:
- greeting(last_name="Ay", first_name="Hatice")
- Bu ikili kombinasyona anahtar argümanlar denir.
- Anahtar argümanlar her zaman kullanılmaz. Kodun okunabilirliğini arttırmak için karmaşık sayısal argümanları, anahtar argümanlar olarak yazabiliriz.
- Örneğin cost_calc(total=50, shipping=5, discount=0.1)
- ÖNEMLİ NOT: Anahtar argümanlar her zaman pozisyona bağlı argümanlardan sonra gelir.
- Örneğin cost_calc(total=50, 5, 0.1) şeklinde bir fonksiyon çağrılamaz. Önce pozisyona bağlı argümanları yazmalıyız. cost_calc(50, shipping=5, discount=0.1) doğru yazımıdır.
3. Return İfadesi
- Fonksiyonla bir değeri/sonucu döndürmek için kullanılır. Örneğin: hesaplanan bir sayı
- Fonksiyonda return yoksa Python varsayılan olarak "None" değerini döndürür.
def square(number): return number * number result = square(4) print(result)
4. Exceptions (İstisnalar)
- Exceptions ifadesi, programın çalışmasına engel (crashing program) olan hatalara denir.
- Hatasız olarak çalışan program her zaman "exit code 0" mesajı ile biter. Bu mesaj harici aldığımız sonuçlar hatayı temsil eder.
- Yapılan hatalarla baş etmek ve programımızın çökmemesi için "try: except: " yapısını kullanırız.
- Try bloğu ile çalıştırmak istediğimiz kodu yazarız. Except ile hangi hata tipiyle karşılaşacaksak onu belirtip, bu hata meydana geldiğinde programın nasıl davranması gerektiğini yazarız.
# örneğin age değerine asd gibi bir string yazılması # age değerine sıfır yazılmasıtry: age = int(input("Age: ")) income = 20000 risk = income / age print(age) except ValueError: print("Invalid value...") except ZeroDivisionError: print("Age can not be zero... Zero division error...")
5. Sınıflar (Classes)
- Nesne oluşturucu (object constructor) tanımlarken class yapısını kullanırız.
- Her nesne, oluşturulduğu class a ait farklı bir örnektir (instance).
- Class yapısı bir "blueprint" veya "template" olarak kullanılır. Bu taslakla istenildiği kadar nesne oluşturulabilir.
- Class yapısı metot ve property (özellik) içerir.
class Point: def move(self): print("move") def draw(self): print("draw") point1 = Point() point1.draw() # method
point1.x = 10 # attribute
print(point1.x)
- Constructor metodu ile tanımladığımız class için belli özelliklerin nesneyi oluştururken tanımlanmasını sağlayabiliriz.
class Point: # constructor init method:
def __init__(self, x, y): self.x = x # point.x = 10
self.y = y # point.y = 20 def move(self): print("move") def draw(self): print("draw") # point1.draw() --> method
# point1.x = 10 --> attribute
point1 = Point(10, 20) point1.draw() print(point1.x) print(point1.y)