Python, 1991 yılında yayımlanmış, okunabilirliği yüksek, açık kaynaklı ve platform bağımsız bir programlama dilidir. Günümüzde en yaygın kullanılan sürüm ailesi Python 3'tür. Dilin en temel referans uygulaması C diliyle yazılmış olan CPython'dır.
Programlama dillerinde varsayılan çalışma mantığı, kodların yukarıdan aşağıya, sıralı ve doğrusal bir şekilde yürütülmesidir. Ancak gerçek dünya problemleri, belirli koşullara göre karar vermeyi, bazı işlemleri tekrarlamayı veya gereksiz kod bloklarını atlamayı zorunlu kılar. Bu doğrusal akışın yetersiz kaldığı noktalarda 'akış kontrol yapıları' devreye girerek programın yürütme sırasını dinamik bir hale getirir.
Programlama sürecinde karmaşıklığı azaltmak ve kodun okunabilirliğini artırmak için kullanılan fonksiyonlar, belirli bir görevi yerine getirmek üzere tasarlanmış bağımsız kod bloklarıdır. Tek bir ana program bloğu yerine, işlemleri küçük ve yönetilebilir parçalara bölmek, hata yapma olasılığını düşürür ve kodun tekrar kullanılabilirliğini sağlar. Python'da fonksiyon tanımlamak için 'def' anahtar sözcüğü kullanılır.
Python'da listeler, birden fazla öğeyi tek bir değişken altında toplayan, sıralı ve dinamik veri yapılarıdır. Köşeli parantezler [] kullanılarak tanımlanan bu yapılar, içeriklerinde farklı veri türlerini aynı anda barındırabilirler. Örneğin, bir liste hem metin hem de sayısal değerleri içerebilir.
Python'da sözlük (dictionary), verileri anahtar-değer (key-value) çiftleri halinde saklayan, indeks yerine anlamlı anahtarlar kullanan esnek bir veri yapısıdır. Liste yapılarında veriye ulaşmak için sayısal bir sıra (indeks) gerekirken, sözlüklerde veriye doğrudan o veriyi temsil eden anahtar ile erişilir. Bu yapı, gerçek dünyadaki telefon rehberi, ürün-fiyat listesi veya öğrenci not sistemi gibi ilişkisel verileri modellemek için oldukça uygundur.
Python'da metinler 'str' (string) veri türü ile temsil edilir ve programlamanın en temel yapı taşlarından biridir. Metinler yalnızca ekrana yazı yazdırmak için değil, kullanıcıdan alınan girdilerin işlenmesi, dosya yollarının yönetilmesi ve uygulamalar arası veri transferi gibi kritik süreçlerde kullanılır. Metinlerle etkileşim genellikle input() fonksiyonu ile kullanıcıdan veri alma ve print() fonksiyonu ile çıktı üretme şeklinde başlar.
Yazılım geliştirme süreci, sadece kod yazmaktan ibaret olmayıp analiz, tasarım ve programlama aşamalarını içeren sistematik bir mühendislik faaliyetidir. Tasarım aşaması, kodlamadan önce sistemin yapısını planlamayı hedefler. Plansız geliştirilen yazılımlar kısa vadede çalışsa da, zamanla teknik borç biriktirerek bakımın zorlaşmasına, hata oranının artmasına ve genişletilebilirlik sorunlarına yol açar.
Python'da nesne kavramı dilin temel taşıdır; sayılar, metinler, listeler ve hatta fonksiyonlar birer nesne olarak ele alınır. Nesne, veriyi (durum) ve bu veri üzerinde işlem yapan davranışları (metotları) bir arada tutan bir yapıdır. Prosedürel programlamadan farklı olarak, nesne yönelimli yaklaşımda odak noktası fonksiyonlar değil, sorumluluk sahibi nesnelerdir.
Nesne yönelimli programlama (NYP), yazılımı bağımsız bileşenlerden ziyade, birbirleriyle etkileşim hâlinde olan nesneler üzerinden kurgular. Nesne, gerçek dünyadaki varlıkların yazılım ortamındaki karşılığıdır; belirli verileri (özellikleri) ve bu veriler üzerinde işlem yapabilen davranışları (metotları) bünyesinde barındırır. Örneğin, bir elma gerçek dünyada bir nesne olduğu gibi, yazılımda da belirli özelliklere sahip bir nesne olarak temsil edilebilir.
Yazılım geliştirme sürecinde programların her zaman öngörülen şekilde çalışması beklenemez. Kullanıcı hataları, yanlış veri girişleri veya sistem kaynaklarının yetersizliği gibi durumlar programın normal akışını bozabilir. İstisna (exception), programın çalışma anında ortaya çıkan ve normal akışı kesintiye uğratan ancak sistem tarafından yakalanıp yönetilebilir hale getirilmiş olağan dışı durumlardır.
Nesne yönelimli programlama, yazılım sistemlerini gerçek dünyadaki varlıkları temsil eden bağımsız nesneler bütünü olarak ele alan bir yaklaşımdır. Geleneksel programlamanın aksine, sadece işlem sırasına odaklanmak yerine, sistemin sorumluluklarını nesnelere paylaştırarak modülerlik ve sürdürülebilirlik sağlar. Bir nesne iki temel bileşenden oluşur: 'Durum' (state) yani nesnenin sahip olduğu veriler (öznitelikler) ve 'Davranış' (behavior) yani bu veriler üzerinde işlem yapan metodlar.
Bir dosyayı tanımlayan iki temel unsur dosya adı ve dosya yoludur. Dosya yolu, dosyanın bilgisayar üzerindeki konumunu hiyerarşik bir yapıda belirtir. Bu hiyerarşinin en üstünde kök klasör yer alır; Windows işletim sisteminde bu genellikle bir sürücü harfi (C:\) iken, macOS ve Linux sistemlerinde düz bölü (/) karakteri ile temsil edilir.
Günümüzde elektronik tablolar, finansal kayıtlardan stok takibine kadar geniş bir yelpazede kullanılmaktadır. Ancak veri hacmi arttıkça, manuel işlemler zaman alıcı ve hata yapmaya açık hale gelir. Python, openpyxl kütüphanesi sayesinde bu süreci otomatize ederek, binlerce satırlık veriyi saniyeler içinde işleme, sınıflandırma ve raporlama imkanı sunar. openpyxl, .xlsx uzantılı dosyaları okumak, düzenlemek ve oluşturmak için kullanılan güçlü bir araçtır.
Dijital dönüşümle birlikte belge yönetimi, yazılım sistemlerinin ayrılmaz bir parçası haline gelmiştir. Word (.docx) ve PDF (.pdf) formatları, sadece düz metin değil; yazı tipi, stil, tablo ve görsel gibi biçimsel verileri içeren ikili (binary) dosyalardır. Bu yapı, onları basit metin dosyalarından ayırarak daha karmaşık işleme yöntemleri gerektirir.