Python

Hangi Dilleri Öğrenmeliyim

Merhabalar,

Uzun süredir blogumu güncelleyemiyordum, neredeyse iki yıl oldu. Bir arkadaşımın sorduğu bir soruya verdiğim cevapla, uzun süren sessizliği bozmak istedim.

Soru: Ben elektrik-elektronik mühendisliği öğrencisiyim. Yazılıma merakım çok. Yazılım konusunda kendimi geliştirmek istiyorum.Ancak, kafamda çok soru var.Sistem programlama,oyun programlama istiyorum.Orta seviyede c dilini biliyorum.Hangi dilleri öğrenmeliyim. Yardımcı olursanız sevinirim.

Devamını oku…

Git ve Github'a başlangıç

Bir arkadaş mail yoluyla Git ve Github kullanımıyla ilgili bir yazı rica etti, hazır vaktim varken hazırlayayım istedim. Bu yazının hedef kitlesi git ve github kullanmaya tamamen sıfırdan başlayacak kişiler olacak. Dolayısıyla, sadece en temel konulardan bahsedeceğim. Zaten kendim de ileri seviye bir git kullanıcısı değilim. Ancak, günlük ihtiyaçlarımı idare edecek kadar git kullanabiliyorum. Yine de, git ve github konusundaki deneyimlerimin, bu yazının ihtiyaçlarını karşılamak için yeterli olacağına inanıyorum. Başlamadan önce değinmek istediğim bir diğer nokta da, özellikle github'la birlikte git nasıl kullanılır ona değineceğim. Hatta bazen, sadece github'a özgü özelliklere de değineceğim. Dolayısıyla, eğer github kullanmak istemiyorsanız, bu yazının bazı bölümleri sizi ilgilendirmeyecektir, baştan belirteyim.

Devamını oku…

Python Çalışma Rehberi

Bir konuyu öğrenmeye başlamanın kendine göre zorlukları vardır. Bunların en başında, çalışma planına karar verilmesi gelir. Özellikle, internettin kaynak kaynadığı şu zamanlarda, asıl sıkıntı kaynak bulmakdan öte, hangi kaynakların hangi sırada kullanılması gerektiği sorusudur. Eğer siz de benim gibi, bol bol internetten birşeyler öğrenmeye çalışan bir insansanız, muhtemelen bir öğretmenin eksikliğini hissetmişsinizdir. Onca materyalin içerisinde size rehberlik edip yol gösterecek kimse yoktur ve belki de boğulduğunuzu hissedersiniz.

Devamını oku…

Python ile Fraktal Çizme

Ne zamandır fraktal geometri meraklısı bir insanım. Python'da turtle kütüphanesini olduğunu farkedince (bunca zamandır nasıl görmediysem...) ilk iş aklıma fraktal çizmek geldi. Blog'dan da paylaşayım istedim.

Devamını oku…

Threading mi, yoksa multiprocessing mi kullanmalıyım

Merhaba,

Uzun süredir blog atıl kalmıştı, kısa bir yazı yazayım istedim.

Python'a yeni başlayan arkadaşlarda, threading ve multiprocessing konusu kafa karıştırıyor. Kafa karıştıran iki önemli husus var;

  • Threading ve Multiprocessing mantığı nedir?
  • Hangisi ne zaman tercih edilmelidir?

Bununla birlikte, birkaç koldan çalışan işlemler arasında tesanüd nasıl sağlanır, onu da bilmek gerekiyor.

Devamını oku…

Python Metot Türleri

Python sınıflarında, temel olarak 3 farklı şekilde metot tanımı yapılabilir.

  • Örnek (Instance) metotları
  • Statik (@staticmethod) metotlar
  • Sınıf (@classmethod) metotları

Bunların arasındaki başlıca fark, aldıkları argümanlardır. Örnek metotlarına, ilk argüman olarak, objenin kendisine bir referans gönderilir. Bu argümana, geleneksel olarak self adı verilir. Statik metotlar, kendisini çağıran sınıf veya örnek hakkında herhangi bir bilgiye sahip değildir. Bunlar, işlevini kaybetmeden, sınıf dışında da aynı şekilde tanımlanabilir. Sınıf metotları ise, otomatik olarak, kendisini çağıran sınıfa veya örneğin sınıfına bir referans alır. Bu argümana da geleneksel olarak cls adı verilir.

Devamını oku…

Bir optimizasyon hikayesi

Birazdan okuyacaklarınız, Python'da yazdığım basit bir fonksiyonu optimize etme hikayemdir.

Çözmeye çalıştığım problem şu; bir string ve alt string verildiğinde, büyük string'in hangi indexlerindeki karakterleri birleştirerek alt string'i elde edebileceğimi bulan bir algoritma yazmak. Örneğin, büyük string "yasar arabaci", küçük string de "aa" olduğu zaman, algoritmanın vereceği sonuç [(1, 3), (1, 6), (1, 8), (1, 10), (3, 6), (3, 8), (3, 10), (6, 8), (6, 10), (8, 10)] olmalı. Örnekten de anlayacağınız üzere, alt stringi oluşturmak için, büyük string'den alacağım karakterlerin sırasının değişmesini istemiyorum. Diğer bir deyişle, sonuçlar içinde (3,1) istemiyorum.

Bu problemi çözmek için yazdığım ilk algoritma şu oldu:

Devamını oku…

Neden str toplamamalısınız

Günlerden pazar, bir yandan çay içip bir yandan Python kurcalarken, aklıma döngü optimizasyon yöntemlerini denemek geldi. Daha önce bir yerde gördüğümü hatırladığım için, bir liste içindeki int'leri karaktere dönüştürüp, bir str içinde birleştirmeyi deniyorum. Bu yöntem bu kadar hızlı, şu yöntem bu kadar yavaş derken, acaba str objelerini + ile toplamak ne kadar kötü olabilir ki diye merak ettim. 1 milyon karakter ile şunu denedim:

Devamını oku…