1- Giriş
Python kolay okunabilirlik ve yazılabilirlik , yüksek seviyeli dil, zengin kütüphaneler ve modüller, platform bağımsızlık gibi özellikleri ile ön plana çıkmış bir programlama dilidir.
Python, genel amaçlı, yüksek seviyeli ve kolay okunabilir bir programlama dilidir. İlk olarak 1991 yılında Guido van Rossum tarafından geliştirilmiştir. Python, kullanıcı dostu yapısı, geniş kütüphaneleri ve modüler tasarımıyla özellikle veri bilimi, yapay zeka, web geliştirme ve otomasyon gibi alanlarda oldukça popülerdir.
Python’un Özellikleri
Kolay okunabilirlik ve yazılabilirlik: Python, basit ve anlaşılır bir sözdizimine sahiptir. Bu, kodun daha az hata yaparak yazılmasını ve başkaları tarafından kolayca anlaşılmasını sağlar.
Yüksek seviyeli dil: Python, düşük seviyeli ayrıntılarla ilgilenmenizi gerektirmez. Örneğin, bellek yönetimi Python’da otomatik olarak yapılır.
Dinamik tip kontrolü: Python’da değişken tipleri açıkça belirtilmez. Değişken tipleri, değer atandıkça otomatik olarak belirlenir. Bu, kod yazarken hız kazandırır, ancak bazen performans sorunlarına neden olabilir.
Zengin kütüphaneler ve modüller: Python, matematikten veri analizine, makine öğreniminden web geliştirmeye kadar geniş bir yelpazede zengin bir standart kütüphaneye sahiptir. Ek olarak, PyPI gibi platformlardan üçüncü taraf modüller eklenebilir.
Platform bağımsızlık: Python, platformdan bağımsız bir dildir. Yani aynı Python kodu, Windows, macOS veya Linux gibi farklı işletim sistemlerinde çalışabilir.
Topluluk ve kaynak desteği: Python’un geniş bir topluluğu vardır. Bu nedenle, öğrenme kaynakları, kütüphaneler ve üçüncü taraf araçlar açısından zengin bir ekosisteme sahiptir.
Python’un Kullanım Alanları
- Veri Bilimi: NumPy, pandas, matplotlib gibi kütüphaneler sayesinde veri analizi, görselleştirme ve modelleme işlemleri kolayca yapılabilir.
- Yapay Zeka ve Makine Öğrenmesi: Scikit-learn, TensorFlow, PyTorch gibi kütüphanelerle yapay zeka projeleri geliştirmek oldukça yaygındır.
- Web Geliştirme: Django, Flask gibi web çerçeveleriyle dinamik web uygulamaları geliştirilebilir.
- Oyun Geliştirme: Pygame gibi kütüphanelerle oyunlar yazılabilir.
- Otomasyon: Sistem ve dosya otomasyon süreçlerinde Python, betik dili olarak yaygın bir şekilde kullanılır.
Python’un sadeliği ve esnekliği sayesinde, hem yeni başlayanlar hem de profesyonel yazılımcılar tarafından tercih edilen bir dildir.
Python’un basit ve anlaşılır yapısını C ve C++ ile karşılaştırmalı bir şekilde açıklayarak kavramları derinlemesine anlamak, Python’un neden bu kadar yaygın kullanıldığını anlamaya yardımcı olabilir. Bu kavramları Python, C ve C++ ile kıyaslayarak açıklayalım:
Python’da değişken tanımlama ve açıklama satırları (yorum satırları) oldukça basittir. Aşağıda bu iki konuyu ayrıntılı bir şekilde inceleyelim:
Değişken Tanımlama
Python’da değişken tanımlamak için özel bir anahtar kelimeye gerek yoktur. Değişkenin adı ve değeri bir =
(eşittir) işareti ile atanır. Python dinamik olarak tür belirleyen bir dil olduğu için değişkenlerin türlerini açıkça belirtmeye gerek yoktur; Python, atanan değere göre değişkenin türünü otomatik olarak belirler.
Temel Değişken Tanımlama
1
2
3
4
x = 10 # x bir tamsayıdır (int)
y = 3.14 # y bir ondalıklı sayıdır (float)
name = "John" # name bir metin (string)
is_active = True # is_active bir boolean değeri (True/False)
Birden Fazla Değişken Tanımlama
Aynı anda birden fazla değişken tanımlamak mümkündür:
1
a, b, c = 1, 2, 3
Tüm değişkenlere aynı değeri atamak:
1
x = y = z = 100
Değişken İsimlendirme Kuralları
- Harf veya alt çizgi (
_
) ile başlamalıdır. Sayı ile başlayamaz. - Küçük büyük harf duyarlılığı vardır (yani
myVar
vemyvar
farklı değişkenlerdir). - Alfabetik harfler, rakamlar ve alt çizgi karakteri (
_
) kullanılabilir. - Python anahtar kelimeleri (örneğin
if
,while
,def
vb.) değişken ismi olarak kullanılamaz.
Geçerli değişken isimleri:
1
2
3
my_variable = 5
_name = "Python"
age1 = 25
Geçersiz değişken isimleri:
1
2
3
1st_name = "John" # Rakamla başlayamaz
my-variable = 5 # Tire (-) kullanılamaz
if = 10 # "if" anahtar kelime olduğu için kullanılamaz
Açıklama Satırları (Yorum Satırları)
Python’da açıklama satırları (yorum satırları), kodu belgelemek veya açıklamak için kullanılır ve Python yorumlayıcısı tarafından göz ardı edilir. Python’da açıklama satırları tek satırlık veya çok satırlık olabilir.
Tek Satırlık Yorum
Tek satırlık yorumlar için satırın başına #
karakteri eklenir. #
sonrasında gelen her şey, o satırda yorum olarak kabul edilir ve çalıştırılmaz.
1
2
# Bu bir açıklama satırıdır.
x = 10 # Bu değişkenin değeri 10
Çok Satırlı Yorum
Çok satırlı yorumlar, her satıra bir #
koyarak yapılabilir. Alternatif olarak, birden fazla satırı açıklama olarak işaretlemek için üç tırnak işareti ('''
veya """
) de kullanılabilir. Ancak üç tırnak işaretleri, aslında docstring olarak bilinir ve genellikle fonksiyon, sınıf veya modül açıklamaları için kullanılır.
1
2
3
4
5
6
7
# Bu çok satırlı
# bir açıklama
# örneğidir.
''' Bu da bir başka
çok satırlı açıklama
şeklidir. '''
Docstring (Dokümantasyon Dizgeleri)
Fonksiyonlar, sınıflar veya modüller için açıklamalar yazmak amacıyla docstring kullanılır. Docstring, üç tırnak işareti ile yazılır ve Python’un yardım sistemine (örn. help()
) erişim sağlamak için kullanılabilir.
1
2
3
4
5
6
def my_function():
"""Bu fonksiyon ekrana merhaba yazar."""
print("Merhaba")
# Fonksiyon hakkında bilgi almak için
help(my_function)
İyi Uygulamalar
- Anlamlı değişken isimleri kullanmak, kodun okunabilirliğini artırır. Örneğin,
x
yerineage
,price
gibi isimler kullanmak daha açıklayıcıdır. - Gereksiz yorumlar yerine, sadece karmaşık veya özel durumlar için açıklama satırları eklemek iyi bir uygulamadır.
1. Değişken Tanımlama
Python’da değişkenlerin tiplerini belirtmeye gerek yoktur, çünkü Python dinamik olarak tip belirler.
Python:
1
2
x = 10 # Değişken tipi belirtilmez, Python otomatik olarak integer (tam sayı) kabul eder.
y = "Merhaba" # Bu değişken ise string (metin) türünde.
C:
1
2
int x = 10; // Tipin açıkça belirtilmesi gerekir.
char y[] = "Merhaba"; // C'de string, karakter dizisi olarak tutulur.
C++:
1
2
int x = 10; // C++ da aynı şekilde tip belirtmeyi gerektirir.
std::string y = "Merhaba"; // C++’ta string için STL kullanılır.
Python burada dinamik tip belirleme ve yazım kolaylığı sunar, ancak bu esneklik bazen performans dezavantajına dönüşebilir.
2. Döngüler
Python’da döngüler daha basit ve okuması kolaydır. C ve C++’ta döngülerde daha fazla ayrıntı tanımlamak gerekir.
Python:
1
2
for i in range(5):
print(i)
C:
1
2
3
4
5
6
7
8
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
printf("%d\n", i);
}
return 0;
}
C++:
1
2
3
4
5
6
7
8
#include <iostream>
int main() {
for(int i = 0; i < 5; i++) {
std::cout << i << std::endl;
}
return 0;
}
Python’da döngülerin yazımı basit ve temizdir. C ve C++’ta ise tür, başlangıç ve artış değerlerinin açıkça belirtilmesi gerekir.
3. Fonksiyonlar
Python’da fonksiyonlar da oldukça basittir. C ve C++’ta yine veri türlerinin açıkça belirtilmesi gerekir.
Python:
1
2
3
4
5
6
def toplama(a, b):
return a + b
sonuc = toplama(3, 5)
#sonuc = 8
print(sonuc) # 8
C:
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int toplama(int a, int b) {
return a + b;
}
int main() {
int sonuc = toplama(3, 5);
printf("%d\n", sonuc);
return 0;
}
C++:
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
int toplama(int a, int b) {
return a + b;
}
int main() {
int sonuc = toplama(3, 5);
std::cout << sonuc << std::endl;
return 0;
}
Python’da fonksiyonlar hem yazması hem de kullanması açısından oldukça basitken, C ve C++’ta fonksiyonun döndüreceği tipin ve parametrelerin türlerinin belirtilmesi gereklidir.
4. Bellek Yönetimi
Python’da bellek yönetimi otomatik olarak yapılır. Bu sayede geliştiricinin manuel olarak belleği tahsis etmesi veya serbest bırakması gerekmez. Ancak, C ve C++’ta bellek yönetimi geliştiricinin sorumluluğundadır.
Python:
Python, arka planda bir çöp toplayıcı (garbage collector) ile kullanmadığınız değişkenlerin bellekten otomatik olarak silinmesini sağlar.
1
2
x = [1, 2, 3] # Liste tanımlandı.
x = None # Liste bellekten otomatik olarak temizlenir.
C:
C dilinde dinamik bellek yönetimi, malloc()
ve free()
fonksiyonları ile yapılır.
1
2
3
4
5
6
7
8
9
#include <stdlib.h>
#include <stdio.h>
int main() {
int *ptr = (int*) malloc(sizeof(int) * 3); // 3 tam sayı için bellek ayırır.
ptr[0] = 1; ptr[1] = 2; ptr[2] = 3;
free(ptr); // Bellek manuel olarak serbest bırakılmalıdır.
return 0;
}
C++:
C++’ta bellek yönetimi new
ve delete
ile yapılır.
1
2
3
4
5
6
7
8
#include <iostream>
int main() {
int* ptr = new int[3]; // 3 tam sayı için dinamik bellek ayırır.
ptr[0] = 1; ptr[1] = 2; ptr[2] = 3;
delete[] ptr; // Belleği serbest bırakmak gerekir.
return 0;
}
Python’un otomatik bellek yönetimi, yazılım geliştirme sürecinde bellek sızıntısı gibi hataların oluşmasını büyük ölçüde azaltır.
5. Nesne Yönelimli Programlama (OOP)
Python nesne yönelimli programlama (OOP) desteğine sahiptir ve sınıfların tanımlanması ve kullanılması oldukça basittir. C, yapısal programlama dilidir ve OOP desteği yoktur. C++ ise OOP destekleyen bir dildir.
Python:
1
2
3
4
5
6
7
8
9
10
class Araba:
def __init__(self, marka, model):
self.marka = marka
self.model = model
def bilgi_ver(self):
return f"Araba: {self.marka}, Model: {self.model}"
araba = Araba("Toyota", "Corolla")
print(araba.bilgi_ver())
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
class Araba {
public:
std::string marka;
std::string model;
Araba(std::string m, std::string mo) : marka(m), model(mo) {}
void bilgi_ver() {
std::cout << "Araba: " << marka << ", Model: " << model << std::endl;
}
};
int main() {
Araba araba("Toyota", "Corolla");
araba.bilgi_ver();
return 0;
}
Python’da OOP kavramları oldukça basit ve esnek bir şekilde uygulanabilir. C++’ta ise sınıflar daha karmaşık yapıdadır ve bazı fazladan sözdizimi gereksinimleri vardır.
Sonuç
Python, kodun okunabilirliği ve yazılabilirliği açısından büyük bir avantaja sahipken, C ve C++ daha düşük seviyede çalışarak performans açısından avantajlar sunar. Python, hızlı geliştirme ve prototip oluşturma için harikadır, ancak C ve C++ gibi diller performansın kritik olduğu uygulamalarda daha yaygın tercih edilir.
Bu karşılaştırmalı örnekler Python’un sade ve anlaşılır yapısının, özellikle başlangıç seviyesindekiler için ne kadar faydalı olduğunu gösteriyor. Ancak, düşük seviye kontroller gerektiğinde C ve C++ gibi dillerin tercih edilmesi avantajlıdır.