Python Programlama

ZiksthemW

Haftanın Asistanı
28 Mar 2020
1,062
148
Pécs
Python Nedir?

Merhaba sevgili TurkHackTeam üyeleri.

Bu yazı ile Python hakkında kapsamlı bilgi edinebilir ve Python dilini öğrenebileceğiniz ücretsiz kursları bulabilirsiniz. Öncelikle Python dilinin tarihçesi ile başlayalım:


~ Python'un Tarihçesi ~

Python dili, 1990'lı yıllarda Hollanda'nın Amsterdam şehrinde Guido van Rossum tarafından geliştirilmiştir. Python dilinin adı bir yılandan değil, Guido van Rossum'un çok sevdiği "Monty Python's Flying Circus" adlı komedi grubundan gelmektedir. Guido van Rossum, Python dilini yazarken aynı zamanda Microsoft'ta çalışıyordu. Python dilinin en çok kullanılan dillerden biri olmasının nedenlerinden biri yorumlanabilir, nesne yönelimli, modüler ve etkileşimli bir dil olmasıdır. Öğrenme süresi ise tamamen sizin okuma ve anlama hızınıza bağlıdır.

~ Ücretsiz Kurslar ~

~ Neden Python'u Seçmeliyim? ~

Python dili oldukça hızlı gelişmekte olan bir dildir. 2017'de en çok kullanılan diller arasında 4. sırada iken, 2020'de diğer dillere kıyasla açık ara fark ile 1. sıradadır. Sırayı Kontrol Etmek için tıklayınız. Python dili çoğu büyük şirket tarafından kullanılıyor. Örnek olarak; Wikipedia, NASA, Google, YouTube, Reddit.

İsterseniz "Neden Python Öğrenmeliyim?" sorusunun yanıtlarına geçelim:

- Geniş bir kütüphaneye sahiptir ve kolay okunmaktadır ki bu da hızlı öğrenmeye yararlıdır.
- Çoğu internet protokolünü destekler.
- Yeterince uzun bir süredir kullanıldığından dolayı kullanıcısı çoktur yani destek almanız çok daha kolaylaşır.
- Platform bağımsızdır, yani Windows, MacOS, Linux gibi birçok işletim sisteminde çalışır.
- Büyük ve aktif bir topluluğa sahiptir, bu nedenle her zaman yardım alabileceğiniz birileri vardır.
- Veri bilimi, makine öğrenimi, yapay zeka ve web geliştirme gibi modern teknolojilerde geniş kullanım alanı vardır.


Bunun gibi birçok sebep daha var fakat buraya yazsam sayfa taşar.

~ Python Kullanım Alanları ~

Python dili şu ana kadar birçok platformda kullanılabiliyor. Bu platformlar; Windows, Mac, Linux, Android ve Symbian'dır.
5yg61nj.png
1. HACKING
2. MOBİL UYGULAMALAR
3. WEB UYGULAMALARI

4. YAPAY ZEKA

~ En Popüler Python Modülleri, Kullanım Alanları ve Basit Örnekleri ~

Python'un popülerliğinin bir diğer sebebi de geniş modül ve kütüphane desteğidir. İşte en popüler Python modülleri ve ne işe yaradıkları:


BeautifulSoup:
HTML ve XML dosyalarının içerisinden
veri çekmek için kullanılan bir kütüphane.
qg1lhm1.png
qmcluc7.png
Requests:
HTTP istekleri yapmak için kullanılan
basit ve kullanıcı dostu bir kütüphane.
Flask:
Web uygulamaları geliştirmek için kullanılan
hafif ve kullanıcı dostu bir kütüphane.
koknq33.png
sl2buvt.png
Pandas:
Veri analizi ve manipülasyonu için kullanılan güçlü bir kütüphane.
Veri yapıları ve veri analiz araçları sunar.
NumPy:
Bilimsel hesaplamalar için kullanılan temel kütüphane.
Çok boyutlu dizi nesneleri ve matematiksel fonksiyonlar sağlar.
bn3oynu.png

~ Python mu Java mı? ~

Evet, artık ortalık karıştı... dillerin birbirine meydan okuma vakti! Çalsın savaş davulları. Bir tarafta Python, diğer tarafta ise Java. Bakalım kim kazanacak. Bu soruyu eklememin sebebi, bazı kişilerin ikilemde kalması. "Java mı öğrenmeliyim, Python mu?" diye ve sadece dezavantajları ekledim, sebebi ise herkesin 2 dil arasındaki dezavantajlarını görmesi.
Python
dezavantajları
Python bazı kısımlarda maalesef Java'dan daha yavaştır. Sebebi ise Python'un yorumlanmış bir dil olmasıdır.
Java'ya kıyasla daha az platformda kullanılır.
Python öğrendiğinizde Java öğrenmek biraz zor olabilir.
Java dezavantajları
Geliştiriciler çoğunlukla Java kullanırken farklı dillere de yöneldikleri için
Java'nın kullanımı gittikçe azalıyor.
Java bazı kısımlarda sistemi yavaşlatabiliyor.

Buradan sonra hangi dili seçmek istediğiniz size kalmış, ne de olsa bilgi istenerek öğrenilir. Şimdiden hangi dili seçerseniz seçin geleceğinizin çok parlak olduğunu unutmayınız!

~ Python Dilinin Yapısı ~

Python tamamen açık kaynak kodludur. Diğer dillere göre parantez yerine girintileme (indentation) kullanır ve bu sayede okuması da bir hayli kolaydır. Bu özelliği sayesinde diğer dillere göre çok daha üst bir dildir ve çoklu platform desteği sağlamaktadır.

Örnek olarak;
Python'da bir ekrana yazdırma işlemi:
C++'da bir ekrana yazdırma işlemi:
jppafin.png
gog4m1i.png


~ Python Kurulumu ~

Python'u kurmak oldukça basittir. İşletim sisteminize göre aşağıdaki adımları izleyebilirsiniz:

Windows:
1. Python'un resmi web sitesinden indirin.
2. İndirilen dosyayı çalıştırın ve kurulum sihirbazını takip edin. "
Add Python to PATH" seçeneğini işaretlemeyi unutmayın.
3. Komut satırını açın ve "
python --version" yazarak kurulumun başarılı olup olmadığını kontrol edin.


MacOS:
1. Terminal'i açın.
2. "
brew install python" komutunu kullanarak Homebrew üzerinden Python'u kurun.
3. Kurulumu kontrol etmek için "
python3 --version" komutunu çalıştırın.


Linux:
1. Terminal'i açın.
2. "
sudo apt-get update" ve ardından "sudo apt-get install" python3 komutlarını çalıştırarak Python'u kurun.
3. Kurulumu kontrol etmek için "
python3 --version" komutunu çalıştırın.


~ Platform Bağımsızlığı ~

Python'un en önemli özelliklerinden biri platform bağımsız olmasıdır. Bu, Python kodunun herhangi bir değişiklik yapmadan Windows, MacOS ve Linux gibi farklı işletim sistemlerinde çalışabileceği anlamına gelir. Python'un bu özelliği her yerde kullanılabilir olmasını sağlar.

Python'un platform bağımsız olmasını sağlayan temel faktör, Python yorumlayıcısının her işletim sistemi için mevcut olmasıdır. Python kodu, yazıldığı gibi doğrudan yorumlayıcı tarafından çalıştırılır ve bu nedenle derleme gerektirmez.


~ Değişkenler ~
Python'da değişkenler, veri saklamak için kullanılan isimlendirilmiş depolama alanlarıdır. Değişkenler, program içerisinde farklı veri tiplerini tutabilir ve bu verilerle işlem yapmamıza olanak sağlar. Python'da değişken tanımlamak oldukça basittir ve herhangi bir tür belirtmeye gerek yoktur.

Örnek olarak sağdaki görsele bakabilirsiniz.
ji3assu.png

Yukarıdaki örnekte, `x` bir tam sayı (integer), `y` bir metin (string) ve `z` ise bir ondalıklı sayı (float) tutmaktadır. Python, değişkenin türünü otomatik olarak belirler.

- Değişken İsimlendirme Kuralları -

Değişken isimlendirirken dikkat edilmesi gereken bazı kurallar vardır:
  • Değişken isimleri harf, rakam ve alt çizgi (_) karakterlerinden oluşabilir, ancak rakam ile başlayamaz.
  • Büyük ve küçük harf duyarlılığı vardır. Örneğin, `deger` ve `Deger` farklı değişkenlerdir.
  • Python anahtar kelimeleri değişken ismi olarak kullanılamaz. (örneğin, `for`, `while`, `if` gibi)

- Örnek Değişken Tanımlamaları -
Aşağıda, farklı türlerde değişken tanımlamalarına dair birkaç örnek bulunmaktadır:
Bu örneklerde, `isim` bir string, `yas` bir integer, `maas` bir float ve `evli_mi` ise bir boolean türündedir.
6dz1azb.png
Python'da değişkenlerin türleri dinamik olarak belirlenir ve gerektiğinde değiştirilebilir.

5y5a42l.png

Sonuç olarak, Python'da değişkenler esneklik sağlar ve farklı veri türlerini kolayca saklayabilir. Bu özellik, Python'un kullanımını daha basit ve anlaşılır hale getirir.

~ Veri Yapıları ~
Python'da veri yapıları, verileri düzenlemek, depolamak ve üzerinde işlem yapmak için kullanılan yapılar ve koleksiyonlardır. Python'da en yaygın kullanılan veri yapıları "list", "tuple", "dict" ve "set" dir.

Örnek olarak sağdaki görsele bakabilirsiniz.
lhzhfad.png

Yukarıdaki örnekte, listeler sıralı ve değiştirilebilir, tupleler sıralı ve değiştirilemez, dictler anahtar-değer çiftleriyle çalışır ve setler eşsiz ve sırasız elemanlardan oluşur.

- Veri Yapılarının Özellikleri -

Python'daki temel veri yapıları şunlardır:
  • List: Sıralı ve değiştirilebilir veri yapılarıdır. Farklı veri tiplerini içerebilirler ve köşeli parantez [] ile oluşturulurlar.
  • Tuple: Sıralı ancak değiştirilemez veri yapılarıdır. Farklı veri tiplerini içerebilirler ve parantez () ile oluşturulurlar.
  • Dict: Anahtar-değer çiftlerinden oluşan veri yapılarıdır. Anahtarlar benzersiz olmalıdır ve süslü parantez {} ile oluşturulurlar.
  • Set: Eşsiz ve sırasız elemanlardan oluşan veri yapılarıdır. Süslü parantez {} ile oluşturulurlar.
~ Python S.S.S. ~

Python Sıkça Sorulan Sorular bölümüne hoş geldiniz! Burada birçok sorunuza yanıt bulabilirsiniz.

1-) Python kodumu .exe'ye nasıl çeviririm?
1.a-) Python kodunuzu .exe'ye çevirebilmek için bu GitHub sayfasına gidin. Ardından kurulumu yapınız ve pyinstaller /script/klasoru/scriptadi.py komutu ile kolayca .py'yi .exe'ye çevirebilirsiniz!

2-)
Python'a başlamak istiyorum fakat kurs bulamıyorum, bir kaynağınız var mı?
2.a-) Konumuzda yukarıda bulunan ücretsiz videolu/yazılı kaynaklar ile kolayca öğrenebilirsiniz.

3-)
Python dilini birazcık öğrendim ama kendimi test etmek için ne kodlayacağımı bilmiyorum!?
3.a-) Forumumuzda Python kategorisinde birçok örnek kod öbeği görebilirsiniz. Bu örnek kod öbeklerinden fikir edinip benzer birkaç program kodlayabilirsiniz.

4-)
Python'un geleceği hakkında ne düşünüyorsunuz?
4.a-) Python'un geleceği oldukça parlak görünüyor. Özellikle yapay zeka, veri bilimi ve web geliştirme alanlarında popülaritesi artmaya devam ediyor. Ayrıca, Python'un geniş topluluğu ve sürekli gelişen kütüphaneleri sayesinde yeni teknolojilere hızla uyum sağlayabiliyor.

5-)
Python'da hangi editör veya IDE'yi kullanmalıyım?
5.a-) Python geliştirme için birçok editör ve IDE mevcut. En popüler olanlar arasında PyCharm, VSCode, Jupyter Notebook ve Spyder bulunmaktadır. Kişisel tercihinize göre bu araçlardan birini seçebilirsiniz.

6-)
Python ile veri bilimi projeleri yapabilir miyim?
6.a-) Evet, Python veri bilimi için en popüler dillerden biridir. Pandas, NumPy, Matplotlib gibi kütüphaneler ile veri analizi ve görselleştirme yapabilir, scikit-learn, TensorFlow ve Keras gibi kütüphaneler ile makine öğrenimi modelleri geliştirebilirsiniz.

7-)
Python öğrenmek ne kadar zaman alır?
7.a-) Bu tamamen sizin çalışma temponuza ve ayırdığınız zamana bağlıdır. Temel düzeyde Python öğrenmek birkaç hafta sürebilirken, ileri seviye konular ve kütüphaneler için aylarca pratik yapmanız gerekebilir.

"Basitlik tüm karmaşıklığı ve detayı içinde barındırır." - Steve Jobs

Bu makalemiz bu kadardı, herhangi bir olayda konumuz güncellenecektir. İyi forumlar THT Ailesi!
 
Moderatör tarafında düzenlendi:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.