Python programlama diliyle yazdığınız kodu daha etkili, daha okunabilir hale getirmenin pek çok yolu var. Bu blog yazımızda, Python junior seviyesinden senior seviyesine geçiş yaparken kullanabileceğiniz bazı pratik teknikleri ele alıyoruz. Kod yazmayla ilgilenenlerin kesinlikle faydalanacağı bu teknikler sayesinde Python becerilerinizi artırabilirsiniz.
PDB (Python Debugger) Kullanımı
junior:
import pdb
pdb.set_trace()
Senior:
import pdb; pdb.set_trace()
python junior geliştiriciler, kodlarının hatalarını tespit etmek için PDB’yi kullanır. Ancak PDB yoluyla import ifadesinin tek bir satırda daha etkili bir şekilde ifade edilebileceğini bilmek, kodlama becerilerinizi hızla geliştirmenize yardımcı olabilir.
Liste Oluşturma
Junior:
even_num= []
for i in range(2, 10):
if i % 2 == 0:
ciftSayilar.append(i)
Senior:
even_num = list(range(2,10,2))
Python genç geliştiriciler çift sayıları bir listeye eklemek için bir döngü yazarken, senior geliştiriciler tek bir satırda liste oluşturup filtreleyebilir. Tek satırlık kod, kodun daha kısa ve okunabilir olmasını sağlar.
Metin Biçimlendirme
Junior:
string = "Genc Yazilimci"
print("**********" + string)
print(string + "**********")
print("**********" + string + "**********")
Senior:
string = "Genc Yazilimci"
print(f"{string:*>10}")
print(f"{string:*<10}")
print(f"{string:*^10}")
Metin biçimlendirme, geliştiricinin yazılım kodunu daha okunaklı hale getirmesine yardımcı olur. Senior geliştiriciler daha yetenekli bir biçimlendirme seçeneği olan f-strings kullanarak metin biçimlendirmesi yapabilir.
Koşullu Durum İfadeleri
Junior:
name = "Abduley"
is_active = False
if name is not None:
is_active = True
else:
is_active = False
Senior:
name = "Abduley"
is_active = True if name else False
Tek bir satırlık koşullu ifadeler kullanarak, senior geliştiriciler kodlarını daha kısa ve okunabilir hale getirebilir. Bu nedenle, koşullu ifadelerin nasıl kullanılabileceğine dair iyi bir fikir sahibi olmak, geliştiricilerin daha modern bir Python kodu yazmalarına yardımcı olabilir.
Sayı Biçimlendirme
Junior:
hundred_million = 100000000
Senior:
hundred_million = 100_000_000
Alt çizgiler kullanarak sayıları daha okunaklı hale getirmek, geliştiricinin kodunu daha iyi organize etmesine yardımcı olabilir. Senior geliştiriciler, sayıları daha okunaklı olacak şekilde biçimlendirebilir ve potansiyel hataların önlenmesine yardımcı olabilir.
Tür Kontrolü
Junior:
num = 10.0
if type(num) == float:
print("Float")
Senior:
num = 10.0
if isinstance(num, float):
print("Float")
Tür kontrolü, kodlama sürecinde oldukça önemlidir. Senior geliştiriciler, tür kontrolü için daha yaygın ve Pythonik bir yöntem olan “isinstance” kullanarak kodlarını kontrol edebilirler.
Liste Elemanları Üzerinde İterasyon
Junior:
numbers = [1, 2, 3, 4, 5]
squared_numbers = []
for num in numbers:
squared_numbers.append(num**2)
Senior:
numbers = [1, 2, 3, 4, 5]
squared_numbers = [num**2 for num in numbers]
Python senior geliştiriciler liste elemanları üzerinde döngüyle yeni bir liste oluşturmak yerine, bir list comprehension kullanabilir. Bu kodlama teknikleri, kodların daha kısa ve okunaklı olmasını sağlar.
Sözlük Oluşturma
Junior:
keys = ["a", "b", "c"]
values = [1, 2, 3]
dictionary = {}
for key, value in zip(keys, values):
dictionary[key] = value
Senior:
keys = ["a", "b", "c"]
values = [1, 2, 3]
dictionary = {key: value for key, value in zip(keys, values)}
Sözlükler, geliştiricinin programlama sürecinde kullanabileceği önemli veri yapılarından biridir. Senior geliştiriciler, sözlük oluşturmak için daha kısa ve okunabilir kodlama tekniklerini kullanabilir.
Dosya Okuma
Junior:
file = open("example.txt", "r")
content = file.read()
file.close()
Senior:
with open("example.txt", "r") as file:
content = file.read()
Dosya işlemleri, programlama sürecinde önemli bir yer tutar. Senior geliştiriciler, dosya işlemlerini daha etkili bir şekilde yönetmek için “with” ifadesini kullanabilir.
Fonksiyon Tanımlama
Junior:
def square(x):
return x**2
Senior:
square = lambda x: x**2
Küçük işlevler için, lambda ifadeleri kullanarak, kodun daha kısa ve okunabilir hale getirilmesi mümkündür.
İleri Dize İşlemleri
Junior:
text = "Python"
reversed_text = ''.join(reversed(text))
Senior:
text = "Python"
reversed_text = text[::-1]
Senior geliştiriciler, diziyi ters çevirme işlemlerini daha kısa bir ifadeyle yapabilirler.
Filtreleme ve Haritalama
Junior:
numbers = [1, 2, 3, 4, 5]
even_squares = []
for num in numbers:
if num % 2 == 0:
even_squares.append(num**2)
Senior:
numbers = [1, 2, 3, 4, 5]
even_squares = [num**2 for num in numbers if num % 2 == 0]
Senior geliştiriciler filtreleme ve haritalama işlemlerini birleştirerek daha temiz bir liste oluşturabilirler.
Sözlükten Eleman Silme
Junior:
my_dict = {'a': 1, 'b': 2, 'c': 3}
if 'a' in my_dict:
del my_dict['a']
Senior:
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_dict.pop('a', None)
Senior geliştiriciler, sözlükten eleman silme işlemlerini daha etkili bir şekilde gerçekleştirebilirler.
İleri Koşullu İfadeler
Junior:
x = 5
if x > 0:
y = "positive"
else:
y = "non-positive"
Senior:
x = 5
y = 'positive' if x > 0 else 'non-positive'
Senior geliştiriciler, koşullu ifadeleri daha kısa ve anlaşılır hale getirmek için tek satırlık ifadelerden yararlanabilirsiniz
Hata Yakalama
Junior:
try:
result = 10 / 0
except ZeroDivisionError:
result = None
Senior:
result = None
try:
result = 10 / 0
except ZeroDivisionError:
pass
Senior geliştiriciler, hata-yakalama işlemlerini daha etkili bir şekilde yönetebilirler.
Liste Sıralama
Junior:
numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort()
Senior:
numbers = [3, 1, 4, 1, 5, 9, 2]
sorted_numbers = sorted(numbers)
Senior geliştiriciler, liste sıralama işlemlerini orijinal listenin değişmesine izin vermeden gerçekleştirebilirler.
Koşullu Listeler
Junior:
numbers = [1, 2, 3, 4, 5]
squared_even_numbers = []
for num in numbers:
if num % 2 == 0:
squared_even_numbers.append(num**2)
Senior:
numbers = [1, 2, 3, 4, 5]
squared_even_numbers = [num**2 for num in numbers if num % 2 == 0]
Senior geliştiriciler, koşullu ifade kullanarak liste oluşturma işlemlerini daha kısa ve anlaşılır hale getirebilirler.
Sözlük Birleştirme
Junior:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = {}
for key, value in dict1.items():
merged_dict[key] = value
for key, value in dict2.items():
merged_dict[key] = value
Senior:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {**dict1, **dict2}
Senior geliştiriciler, sözlükleri birleştirmek için daha etkili bir yöntem olan tek bir sözlük comprehension kullanabilirler.
Koşullu Sözlük Oluşturma
Junior:
key = 'a'
value = 10
my_dict = {}
if key is not None:
my_dict[key] = value
Senior:
key = 'a'
value = 10
my_dict = {key: value} if key is not None else {}
Senior geliştiriciler, koşullu ifade kullanarak sözlük oluşturma işlemlerini daha kısa ve anlaşılır hale getirebilirler.
Döngü İndeksiz İterasyon
Junior:
fruits = ['apple', 'banana', 'cherry']
for index in range(len(fruits)):
print(fruits[index])
Senior:
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
Döngü içinde indeks kullanmak yerine doğrudan elemanlar üzerinde iterasyon yapmak, kodu daha anlaşılır hale getirebilir.
Çoklu Parametreler ve args/*kwargs
Junior:
def print_colors(color1, color2, color3):
print(color1, color2, color3)
Senior:
def print_colors(*colors):
print(colors)
Python programlama dilinde çoğu zaman, bir depolama gişesi işlevi gören parametreler kullanılır. Senior geliştiriciler, *args ve **kwargs gibi birçok parametreyi aynı anda kullanarak, kodlarını daha kısa ve anlaşılır hale getirebilirler.
Tarih ve Saat Biçimlendirme
Junior:
from datetime import datetime
now = datetime.now()
formatted_datetime = now.strftime("%d%m%y %H:%M:%S")
print(formatted_datetime)
Senior:
from datetime import datetime
now = datetime.now()
print(f'{now:%d%m%y %H:%M:%S}')
Datetime biçimlendirme, tarih ve saat bilgilerini düzenleme. Junior seviyesindeki geliştiriciler genellikle strftime gibi yöntemleri tercih eder. Senior seviyesinde ise f-string kullanarak aynı işlemi daha sade ve anlaşılır bir şekilde gerçekleştirirler. Bu, kodun özlü ve okunabilir olmasını sağlar.
Bu kodlama teknikleri sayesinde geliştiriciler, Python programlama becerilerini geliştirerek daha modern kodlar yazabilirler. Bu yazıda ele alınan örnekler, python junior seviyesinden senior seviyesine geçerken kullanabileceğiniz pratik teknikleri göstermektedir.
Sevgili Okuyucularımız, Sizlere bilgi, eğlence ve ilham dolu içerikler sunabildiysek ne mutlu bize. Eğer yazımızda herhangi bir düzeltme veya öneri sunmak isterseniz, lütfen yorum yapmaktan çekinmeyin. Sizden gelen geri bildirimler, içeriklerimizi daha da geliştirmemiz için bize büyük bir yardımcı olacaktır. Teşekkür ederiz!
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki makalede görüşmek dileğiyle esen kalın.
İçeriğimi beğendin mi? Bana destek olup bir kahve ısmarlayabilirsiniz. Çok teşekkür ederim!
Kodun daha okunabilirliğini ve performansını artırmak için gerçekten çok iyi örnekler var. Hem gereksiz kod kalabalığından kurtuluyoruz hem de bazı yerlerde gereksiz metot kullanmaktan kaçınarak daha performanslı alternatif çözümler kullanıyoruz. Gerçekten çok güzel.