< Back | View original | http.pieter.net | Dark Mode


Python - Vikipedi

2005-02-03


Python

nesne yonelimli,zorunlu,fonksiyonel,yansiticiGuido van Rossum

Gelistirici

Python Yazilim Vakfi

Kararli surum

(3 Subat 2026 ) )

Onemli uygulamalari

CPython,IronPython,Jython,Python for S60,PyPy,Unladen Swallow

Lehceleri

Stackless Python,RPythonABC,ALGOL 68,C,Haskell,Icon,Java,Lisp,Modula-3,PerlBoo,Cobra,D,Falcon,Groovy,Ruby,JavaScript,Comfy,Land (programlama dili)

Platformu

Capraz platform

Isletim sistemi

macOS,Linux,Windows,OpenBSD,FreeBSD

Lisans

Python Yazilim Vakfi Lisansi

dosya uzantilari

Web sitesi

www.python.org

Python, nesne yonelimli, yorumlamali, birimsel (moduler) ve etkilesimli yuksek seviyeli bir programlama dilidir.[1]

Girintilere dayali basit soz dizimi, dilin ogrenilmesini ve akilda kalmasini kolaylastirir. Bu da ona soz diziminin ayrintilari ile vakit yitirmeden programlama yapilmaya baslanabilen bir dil olma ozelligi kazandirir.

Moduler yapisi, sinif dizgesini (sistem) ve her turlu veri alani girisini destekler. Hemen hemen her turlu platformda calisabilir (Unix, Linux, Mac, Windows, Amiga, Symbian). Python ile sistem programlama, kullanici arabirimi programlama, ag programlama, web programlama, uygulama ve veritabani yazilimi programlama gibi bircok alanda yazilim gelistirebilirsiniz. Buyuk yazilimlarin hizli bir sekilde prototiplerinin uretilmesi ve denenmesi gerektigi durumlarda da C ya da C++ gibi dillere tercih edilir.

Python 1980'lerin sonunda ABC programlama diline alternatif olarak tasarlanmisti. Python 2.0, ilk kez 2000 yilinda yayinlandi. 2008'de yayinlanan Python 3.0, dilin onceki versiyonuyla tam uyumlu degildir ve Python 2.x'te yazilan kodlarin Python 3.x'te calismasi icin degistirilmesi gerekmektedir. Python 2 versiyonun resmi gelistirilme sureci, dilin son surumu olan Python 2.7.x serisi versiyonlarin ardindan 1 Ocak 2020 itibariyla resmi olarak sona erdi.[2] [3] Python 2.x gelistirilme desteginin sona ermesinin ardindan, Python dilinin 3.7.x ve sonraki surumlerinin gelistirilmesi devam etmektedir.

[4]

Gecmis

[

degistir|

kaynagi degistir]

Gelistirilmeye 1990 yilinda Guido van Rossum tarafindan Amsterdam'da baslanmistir. Adini sanilanin aksine bir yilandan degil Guido van Rossum'un cok sevdigi, Monty Python adli alti kisilik bir Ingiliz komedi grubunun Monty Python's Flying Circus adli gosterisinden almistir. [5] Gunumuzde

Python Yazilim Vakficevresinde toplanan gonullulerin cabalariyla surdurulmektedir. Python 1.0 surumune Ocak 1994'te ulasmistir. 2.0 surumu 16 Ekim 2000'de yayinlanmistir.

3 Aralik 2008 tarihinden itibaren 3.x serisi yayinlanmaya baslamistir; ancak 3.x serisi 2.x serisiyle uyumlu degildir.

[6]

[7]

Kullanim

[

degistir|

kaynagi degistir]

Django, Zope uygulama sunuculari, YouTube ve orijinal BitTorrent istemcisi Python kullanan onemli projelerden bazilaridir. Ayrica Google, NASA ve CERN gibi buyuk kurumlar da Python kullanmaktadir. Pygame ile 2D oyun yapilabilir, Blockchain uygulamalari kodlanabilir, uzaktan kontrol veya goruntu isleme yapilabilir, veri analizi veya veri kontrolu yapilabilir, TensorFlow, PyTorch, Keras gibi kutuphanlerle derin makine ogrenmesi uygulamalari yapilabilir.

Ayni zamanda Python Siber Guvenlik icin cok kullanisli bir programlama dilidir. Kotu amacli yazilim analizi ve sizma testi dahil olmak uzere bircok siber guvenlik islevini yerine getirebilir.[8]

Ayrica OpenOffice.org, GIMP, Inkscape, Blender, Scribus ve Paint Shop Pro gibi bazi programlarda betik dili olarak kullanilir.

Pek cok Linux dagitiminda ve Apple macOS isletim sisteminde Python ontanimli bir bilesen olarak gelir.

Soz dizimi

[

degistir|

kaynagi degistir]

Python'un son derece kolay okunabilir olmasi dusunulmustur. Bu yuzden ornegin kume parantezleri yerine girintileme islemi kullanilir. Hatta bazi durumlarda girintileme islemine dahi gerek kalmadan kodun ilgili bolumu tek satirda yazilabilir. Boylece Python, program kodunuzu en az caba ile ve hizlica yazmaniza imkan tanir. Sade sozdizimi ile diger programlama dillerinden ustundur.

Girintileme

[

degistir|

kaynagi degistir]

Python'da ifade bloklarini sinirlandirmak icin suslu ayraclar ya da anahtar kelimeler yerine beyaz bosluk girintileme kullanilir. Belli ifadelerden sonra girinti artar; girintinin azalmasi gecerli blokun sonlandigini gosterir.

Islecler

[

degistir|

kaynagi degistir]

*
isleci, carpma islemleri icin

/
isleci, bolme islemleri icin

//
isleci, tam sayi bolme islemleri icin

+
isleci, toplama islemleri icin

-
isleci, cikarma islemleri icin

%
isleci, mod alma islemleri icin

<
isleci, 'kucuktur' anlamina gelir

>
isleci, 'buyuktur' anlamina gelir

==
isleci, 'esittir' anlamina gelir

<=
isleci, 'kucuk esittir' anlamina gelir

>=
isleci, 'buyuk esittir' anlamina gelir

!=
isleci, 'esit degil' anlamina gelir

**
isleci, 'us alma' anlamina gelir

True
isleci, 'dogru' anlamina gelir

False
isleci, 'yanlis' anlamina gelir

and
isleci, 've' anlamina gelir

or
isleci, 'veya' anlamina gelir

not
isleci, 'degil' anlamina gelir.

Ifadeler ve akis kontrolu

[

degistir|

kaynagi degistir]

Python ifadeleri sunlari icerir:

  • if
    ifadesi, bir kod blokunu belli bir kosula bagli olarak,
    else
    ve
    elif
    (else-if'in kisaltilmasi) ile birlikte calistirir.
  • for
    ifadesi, yinelenebilir bir nesne uzerinden yineleme yapar, bu sirada ilgili bloktaki her ogeyi bir yerel degiskene atar.
  • while
    ifadesi, kosulu dogru oldugu surece o kod blogunu calistirir.
  • try
    ifadesi, eklenmis kod blogundan dolayi olusan hatalari yakalar ve
    except
    maddeleriyle; ayrica
    finally
    blokundaki temizleme kodunun blok nasil sonlanirsa sonlansin calistirilmasini saglar.
  • class
    ifadesi, bir kod blokunu calistirir ve onun yerel ad alanini bir sinifa atar, bu sayede o sinifNesne Yonelimli Programlamadakullanilabilir.
  • def
    ifadesi ile fonksiyon tanimlanir.
  • with
    ifadesi, bir kod blokunu bir icerik yoneticisine hapseder (ornegin bir kod bloku calisitirilmadan once bir kilit edinir ve sonrasinda bu kilidi cozer)
  • break
    ifadesi, donguyu durdurur.
  • continue
    ifadesi, dongude gecerli degeri atlar ve sonrakinden devam eder
    break
    ifadesinden farkli olarak donguyu durdurmaz.
  • del
    ifadesi, nesneleri silmek icin kullanilir.
  • pass
    ifadesi, birNOPgorevi gorur ve gecici kod bloku yerine kullanilabilir.
  • assert
    ifadesi hata ayiklamada kosullari kontrol etmek icin kullanilir.
  • return
    ifadesi, fonksiyondan deger dondurur ve fonksiyonu sonlandirir.
  • yield
    ifadesi, fonksiyondan deger dondurmek icin kullanilir.
    return
    ifadesinden farkli olarak calistiktan sonra fonksiyonu sonlandirmaz. Fonksiyonun sonuna kadar devam eder.
  • print
    ifadesi, bir ekrana yazdirma gorevi gorur. Bu ifade Python 3 surumuyle birlikte
    print()
    fonksiyonu ile degistirildi.
  • import
    ifadesi, modulleri ice aktarmak icin kullanilir.
  • from
    ifadesi, modulun belli bir kismini ice aktarmak icin kullanilir
  • as
    ifadesi,
    import
    ve
    from
    ifadelerini ice aktarirken modullere takma ad vermek icin kullanilir.

Her ifadenin kendi sozdizimi vardir, ornegin

def
ifadesi diger ifadelerin genelinin aksine blokunu aninda calistirmaz.

Metotlar

[

degistir|

kaynagi degistir]

Nesneler uzerindeki metotlar nesnenin sinifina eklenmis fonksiyonlardir;

ornek.metod(degisken)
sozdizimi, normal metot ve fonksiyonlar icin
Sinif.metod(ornek, degisken)
ifadesi icin bir sozdizimsel sekerdir. Python metotlarinin ornek verisine ulasmalari icin acik
self
parametresine sahip olmalari gerekir. Bu durum Java, C++, Ruby gibi bazi diger nesne tabanli programlama diliyle farklilik gosterir.

Standart kutuphane

[

degistir|

kaynagi degistir]

Python'un cok buyuk bir standart kutuphanesi 30 Mart 2020 tarihinde Wayback Machine sitesinde arsivlendi. vardir. Bu, dilin arti ozelliklerinden biri olarak kabul edilir.

Ornekler

[

degistir|

kaynagi degistir]

Python 3 ve ustu surumler icin uygundur.

Merhaba dunya

[

degistir|

kaynagi degistir]

# -*- coding: utf-8 -*-
print("Merhaba Dunya")

Yorum satirlari

[

degistir|

kaynagi degistir]

#Tek satirlik bir python yorumu
"""Bu cok satirli
bir python 
yorumu"""

Girdi alma ve ekrana basma

[

degistir|

kaynagi degistir]

veri = input('Bir veri giriniz:')
print(veri)

Palindromik sayi kontrolu

[

degistir|

kaynagi degistir]

def palindrom_kontrol(number):
    # Sayiyi string veri tipine cevirir
    str_number = str(number)
    # Sayinin tersi kontrol edilir
    if str_number == str_number[::-1]:
        return True
    else:
        return False

# Asagidaki degisken kullanicidan sayi girisi alir.
sayi = int(input("Bir sayi girin: "))

# Asagidaki kosul yapilari fonksiyon uzerinden kontrol yapar ve sonucu ekrana yazdirir.
if palindrom_kontrol(sayi):
    print(f"{sayi} bir palindromik sayidir.")
else:
    print(f"{sayi} bir palindromik sayi degildir.")

Veri Tipleri

[

degistir|

kaynagi degistir]

Veri tipiDegistirilebilirAciklamaOrnekleri
bool
hayir

True
False
bytearray
bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
bytes
b'ASCII'
b"ASCII"
bytes([119, 105, 107, 105])
complex
Karmasik sayi
3+2.7j
dict
Komut cizelgesi
{'anahtar1': 1.0, 3: False}{}
float
Kayan nokta
1.414
int
42
list
arrayolarak ifade edilebilir
[4.0, 'string', True]
[]
NoneType
nullolarak bilinir.
None
range
for
dongulerinde yaygin olarak kullanilir
range(1, 10)
range(10, -5, -2)
set
{4.0, 'string', True}
set()
str
'Vikipedi' "Vikipedi"
""" Birden Fazla 
Satir"""
tuple
(4.0, 'string', True)
('element',)()

Surum Gecmisi

[

degistir|

kaynagi degistir]

SurumTarih

0.920 Subat 19911.026 Ocak 19941.111 Ekim 19941.213 Nisan 19951.313 Ekim 19951.425 Ekim 19961.531 Aralik 19971.65 Eylul 20002.016 Ekim 20002.115 Nisan 20012.221 Aralik 20012.329 Haziran 20032.430 Kasim 20042.519 Eylul 20062.61 Ekim 20082.73 Temmuz 20103.03 Aralik 20083.127 Haziran 20093.220 Subat 20113.319 Eylul 20123.416 Mart 20143.513 Eylul 20153.623 Aralik 20163.727 Haziran 20183.814 Ekim 20193.95 Ekim 20203.104 Ocak 20213.1124 Ekim 20223.122 Ekim 20233.137 Ekim 2024

Isim Kaynagi

[

degistir|

kaynagi degistir]

Python'un ismi, dilin yaraticisi olan Guido van Rossum'un dili gelistirirken keyif aldigi Ingiliz komedi grubu Monty Python'dan gelmektedir. Monty Python'a ait bircok atif Python kodunda ve kulturunde siklikla gorulebilir. [10] Ornegin, Python literaturunde siklikla kullanilan metasentaktik degiskenler, diger dillerde bulunan geleneksel "foo" ve "bar" yerine "spam" ve "eggs" olarak gecer.

Resmi Python belgeleri ayrica Monty Python rutinlerine cesitli referanslar icerir.

[11]

Py- on eki, bir seyin Python ile ilgili oldugunu gostermek icin kullanilir. Python uygulamalarinin veya kitapliklarinin adlarinda bu on ekin kullanimina icin Pygame,

[12]

Qtve GTK'yi Python'a baglayan PyQt ve PyGTK ve orijinal olarak Python dilinde yazilmis bir Python uygulamasi olan PyPy bunlara ornek olarak verilebilir.

Populerlik

[

degistir|

kaynagi degistir]

2003 yilindan itibaren PythonTIOBE Programlama Toplulugu Endeksi'nde en populer 10 programlama dili arasinda istikrarli bir sekilde yer alirken, Ekim 2021 itibariyla Java ve C programlama dillerini gecerek en populer dil konumunda bulunmaktadir. [13] 2007, 2010, 2018 and 2020 yillarinda ise bir yil icerisindeki en yuksek kademe artisi catisi altinda "Yilin Programlama Dili" secilmistir ve bunu 4 kez yapabilen tek dildir.

[14]

[15]

Deneysel bir akademik calisma, Python gibi komut dosyasi yazma dillerinin, dize islemeyi ve sozlukte aramayi iceren programlama sorunlari icin C ve Java gibi geleneksel dillerden daha uretken oldugunu raporlamis, bellek tuketiminin genellikle "Java'dan daha verimli ve C veya C++'dan cok daha verimsiz" olmadigini saptamistir.[16]

Python kullanan buyuk kuruluslar arasinda Wikipedia, Google,[17]Yahoo! [18] CERN,

NASA,

[19]

[20]

Amazon, Instagram

[21]

ve Spotify

[22]

gibi bazi kuruluslar yer almaktadir. Sosyal haber agi sitesi

[23]

[24]

Python'dan Etkilenen Programlama Dilleri

[

degistir|

kaynagi degistir]

Python programlama dilinin tasarimi ve felsefesi, diger bircok programlama diline de ilham vermis veya bu dillere etki etmistir:

  • Boo, benzer bir girintileme, sozdizimi ve nesne modeli kullanir.[25]
  • Cobra, benzer bir girintileme ve sozdizimi kullanir ve "Tesekkurler" kisminda bu dilin gelisimine ilham olan diller arasinda Python ilk sirada yer alir.[26]
  • JavaScriptile capraz derlenen bir programlama dili olan CoffeeScript, Python'dan ilham almis bir sozdizimine sahiptir.
  • ECMAScript/JavaScript, Python'dan yineleyiciler ve olusturucular odunc almistir.[27]
  • Python'a cok benzeyen bir betik dil olan GDScript, Godot oyun motoruna yerlestirilmistir.[28]
  • Go, "Python gibi dinamik bir dilde calisma hizi"ve dizileri dilimlemek icin ayni sozdizimini paylasmasi icin tasarlanmistir.[29]
  • Groovy, Python tasarim felsefesini Java'ya getirme motivasyonuyla gelistirilmistir.[30]
  • Julia, "genel programlama icin Python kadar kullanilabilir" olma hedefiyle tasarlanmistir.[31]
  • Nim, girintileme ve benzer sozdizimi kullanir.[32]
  • Ruby'nin yaraticisi Yukihiro Matsumoto Ruby'in gelisimine yonelik sunlari ifade etmistir: "Perl'den daha guclu ve Python'dan daha nesne yonelimli bir betik dil hedefliyordum. Bu yuzden kendi dilimi tasarlamaya karar verdim."[33]
  • Appletarafindan gelistirilen bir programlama dili olan Swift, Python'dan ilham alan bir sozdizimine sahiptir.[34]

Python'un gelistirme uygulamalari diger diller tarafindan da taklit edilmistir. Ornegin, Python'da "PEP" olarak gecen, bu dile yonelik bir degisikligin gerekcesini ve bununla ilgili konulari aciklayan belge talep etme uygulamasi, Tcl, [35] Erlang,

ve Swift'de de kullanilmaktadir.

[36]

[37]

Ayrica bakiniz

[

degistir|

kaynagi degistir]

Kaynakca

[

degistir|

kaynagi degistir]

Dis baglantilar

[

degistir|

kaynagi degistir]


Source: tr.wikipedia.org