python

Django - Benzersiz Slug Alanları Oluşturma

Normalde slugify fonksiyonu ile metni slug hale getirebiliyoruz. Ancak bu veritabanında bir kontrol yapmıyor elbette. Örneğin, kayıtları veritabanından URL'den gelen slug verisine göre çekecekseniz aynı başlıklı iki post olduğunda her zaman önce ilk ekleneni çekecektir.

Programı yazdıktan sonra çalışma zamanında oluşabilecek sonuçlar beklenmedik sonuçlara yol açabilir. Birçok dilde olduğu gibi Python'da da hata yakalama mekanizmaları mevcut. Hata oluşturması muhtemel kod parçalarını try-except blokları içine alarak hata oluşması durumunda programa alternatif bir yol gösterebiliriz.

PyGame ile 2D RPG Oyunu Yapalım (1. Bölüm)

Çoktandır blogla ilgilenmiyordum. Dün akşam tasarımı baştan aşağı değiştirdikten sonra tekrar yazma isteği uyandı. Ne yazabilirim diye düşünürken, yarım kalan projeler içindeki RPG oyununu buldum. Hem Türkçe kaynak olur hem de projeyi tamamlarım diyerekten bu yazı dizisini başlatmaya karar verdim.

Virtualenv ne işe yarar, nasıl kurulur?

Virtualenv, projenizde gerekli olan paketleri sistemden bağımsız olarak kurup kullanmanızı sağlayan bir sanal ortam sağlar. Mesela kullanmak istediğiniz bir modül sistem üzerinde zaten yüklü ama proje içinde aynı modülün daha düşük sürümünü kullanmak istediniz; ama direkt sistem üzerine kurarak karışıklık yaratmak da istemiyorsunuz. Bu durumda virtualenv ile sanal ortam oluşturup gerekli paketleri oraya yüklersiniz, işiniz bittiğinde de tek satır komutla silersiniz.

Veri Madenciliği: PasteBin Toplayıcı (Python)

PasteBin'i biliyorsunuz, en çok kullanılan snippet sitelerinden biri. Yeni snippet eklerken iki modu var; private ve public. Private olarak eklenen kayıtlar site arşivinde listelenmiyor, public olarak eklenenler de belirli bir süre (yenileri eklenene kadar) arşiv bölümünden görüntülenebiliyor. Bu sayede aradığımız bilgileri eklenen snippetleri inceleyip filtreleyerek elde edebiliyoruz.

Listelerin yapısını incelemiştik. Sıralı yapıdaydılar ve istediğimiz zaman veri ekleyip çıkarabiliyorduk. Demetler (tuple) de küme yapısında fakat listeler gibi ekleme - çıkarma yapamıyoruz. Demetler listelerden çok daha hızlı çalışır bu yüzden üzerinde oynama yapmayacağımız verileri demetlere atarak bir kaç fonksiyondan feragat edip hızdan kazanabiliriz.

Ufak bir projede lazım olmuştu, işim bitince gerek kalmadı. Silmeden önce buraya yazayım madem dedim. Belki işinize yarar. Dropbox resmi API'si ile hesabınıza dosya yükleyip indirebilisiniz.

Listelerdeki değerler dizi mantığıyla çalışıyordu. Yani her elemanın index numarası ve değeri vardı. Dolayısıyla sıralı ve kapalı bir yapıdaydı. Sözlüklerde veriler anahtar - değer ilişkisiyle tutulur. Anahtarlar bir nevi listelerdeki index numaraları yerine geçer ancak sözlükler sıralı bir yapıda değildir.

Hatırlarsanız değişkenler içlerinde sadece bir değer barındırabiliyordu. Yeni bir değer atamak istediğinizde bir önceki silinip yerine yenisi yazılıyordu. Listelerde durum böyle değildir, içlerinde birden fazla veri bulundurmak için tasarlanmışlardır. Bir çok dilin aksine Python'da listeler(diziler) birden fazla veri tipini bünyesinde barındırabilir.

Python ile Android Uygulama Geliştirme

Öğrenmeye başlayalı çok uzun zaman olmadı ama Python ile yapılabilecekler konusunda uzun bir araştırma yaptım. Çalışması için yorumlayıcıya ihtiyacı olduğundan başta ümitsizdim ama gerekli kütüphaneleri kurduktan sonra Android uygulaması geliştirilebileceğini öğrendim. Üstelik ara kütüphane (ya da artık adı ne ise) kullandığım için uygulamanın yavaş (bkz. phonegap) olmasını bekledim fakat gayet hızlıydı.

Şimdiye kadar tüm kodlarımızı blok olarak çalıştırmıştık. Fakat interaktif bir uygulama yazacaksak kullanıcıdan aldığımız verilere göre program akışını yönlendirip ona göre sonuçlar üretmeliyiz. Python'da koşullu işlemeyi if deyimi ile yaparız.

Python - Operatörler

Programlama dillerinde operatörler, verilen değerlere göre bir sonuç üretir ve bunu geri döndürürler. Bu değer bir veridir ve matematiksel ya da mantıksal olabilirler. Bir operatör gönderilen bir veya bir kaç değeri işleyip sonuç verebilir.

Python - Değişkenler

Geçen yazıda Python kabuğunu kullandık ve basit cümleler ya da aritmetik işlemler yaptık. Ancak bir programın faydalı olabilmesi için bir veri alması, veriyi işlemesi ve sonucu vermesi gerekir. Programa gönderilen verilerin hafızada tutulması için değişkenleri kullanırız. Değişkenler, belirlenen veri tipine göre hafızada (RAM) yer ayırırlar. Dilediğimizde bu alanı değiştirebilir, çağırabilir ya da silebiliriz.

Python - Etkileşimli Kabuk

Muhterem Romalılar! Geçen yazıda Python'un ubuntu ve windows üzerinde nasıl kurulacağını anlatmıştım. Bu yazıda biraz Python'un yapısından ve çalışma mantığından bahsedip etkileşimli kabuğu kullanacağız.

Python - Başlangıç

Yaklaşık bir hafta kadar önce Python öğrenmeye karar verdim ve başladım. Daha önceden programlama ve algoritma bilgim olduğu için öğrenmem oldukça hızlı (sizin de öyle olacaktır) oldu. Hem kendi öğrendiklerimin pekişmesi hem de python hakkında Türkçe kaynakların artması için öğrendiklerimi buraya da yazacağım. Bu yazıda -gerekirse- linux ve windows üzerinde nasıl kurulacağından bahsedeceğim.