Programlamadili.Net Yeni Nesil Programlama Portali
 
Makale Ara: 
Kullanıcı Adı : Şifre :
  • Makale Kategorileri
ACPI [0]
Action Script [5]
ASP [12]
ASP.NET [23]
Assembly [3]
Bash [1]
C [4]
C# [9]
C++ [10]
Cobol [1]
Delphi [31]
Flash [5]
Html [9]
JAVA [36]
Java Script [11]
JSF [2]
Jsp [1]
Lua [1]
Matlab [2]
MySQL [26]
Oracle [1]
Pascal [31]
Perl [4]
Photoshop [2]
PHP [108]
Python [8]
REXX [6]
Ruby [1]
SEO [4]
Visual Basic [20]
  • Gorsel Ders Kategorileri
Asp [25]
Asp.Net [5]
Csharp [33]
Delphi [3]
Fireworks [4]
Flash [10]
Java Script [0]
Photoshop [0]
PHP [11]
Vb.Net [9]
Visual Basic [4]
  • Dil
English
Deutsch
deutsch
  • Reklam Alani
Python / Python Veri Tipleri
Python Veri Tipleri
Yazar: SahinBey
Eklenme: 04/02/08    Okunma: 132    
 
 


Python'da da diğer dillerdeki temel veri tipleriyle birlikte kendine özgü bazı veri tipleri bulunur. Python'un en büyük avantajlarından biri öntanımlı veri tiplerinin kolayca programcı tarafından tanımlanacak sınıflar tarafından taklit edilebilmesidir. __getattr__ ve __str__ gibi özel metodların yaratılan sınıf tarafından taklit edilmesi ile tamamen isteğe göre hazırlanmış özel veri tipleri üretilip diğer tüm veri türleri gibi kullanılabilir. Örneğin bu sayede string, integer ve listenin çeşitli özelliklerine sahip sınıflar üretilebilir. Bu özel fonksiyonların tam listesi Python Dil Rehberi'nde2 bulunabilir



Boolean değerler

Python'un geniş veri tipi seçenekleri arasında en yeni olanı boolean değerlerdir. Python 2.2'ye kadar True ve False anahtar kelimeleri yoktur. 2.2'de ise 0 ve 1 sayılarına denk olarak bu kelimeler getirildikten sonra sonunda 2.3 sürümü ile Python gerçek bir boolean tipine kavuşmuştur. Boolean veri tipinin Python'da bu kadar geç ortaya çıkmasının sebebi Python'un C'ye benzer bir şekilde her türlü veri tipini doğruluk testinde kullanabiliyor olmasıdır. Örneğin boş bir string, boş bir liste veya 0 sayısı yanlış, 0 dışındaki herhangi bir sayı, boyutu 0'dan büyük olan herhangi bir liste veya string ise doğru kabul edilecektir. Bunun dışında __nonzero__ adlı fonksiyonu kendi sınıfımızın içerisinde tanımlayarak kendi yaratacağımız bir sınıfı da doğruluk testinde kullanmak mümkündür.



Sayısal Tipler

Python'da dört temel sayısal veri tipi bulunmaktadır. Bunlar integer (Tamsayı), long (Uzun tamsayı), float (Kayar noktalı sayı), complex (Karmaşık sayı) olarak adlandırılırlar. Bu veri tiplerinin tamamı işaretli sayılardır. Gerektiği durumlarda Python yorumlayıcısı integer, long ve float tipleri arasında otomatik değişimler yapabilmektedir. Örneğin Python yorumlayıcısına integer'ın sınırlarını aşan bir sayı verdiğiniz takdirde yorumlayıcı bunu otomatik olarak long tipine çevirecektir. Aynı şekilde bir işlemin operandlarından birinin float olması halinde sonuç ta float şeklinde dönecektir.



String Tipleri

Python'da unicode desteği sonradan eklendiğinden string ve unicode verileri ayrı veri tipleri olarak tanımlanmıştır. Unicode nesneleri temelde string tipleri ile aynı özellikleri paylaşır ancak unicode kullanımına özgü bazı ek fonksiyonlara sahiptir. Unicode nesnelerini kullanırken unutulmaması gereken bir detay eğer nesne ASCII karakterlerinin dışında veri içerecekse unicode nesnesinin encode() fonksiyonunu kullanarak uygun karakter setine dönüştürülmesini sağlamaktır. Gerek string gerekse unicode nesneleri temelde bazı liste fonksiyonlarını ve dilimleme gibi bazı liste özelliklerini de destekler. Bir string ', " veya """ karakterlerinin arasına alınarak yazılabilir. Dikkat edilmesi gereken nokta sözkonusu string yazılmaya hangi karakter ile başlanmışsa aynı karakter ile bitirilmelidir. Örneğin "Ali'nin" geçerli bir yazım iken 'Ali "kırkiki" dedi" şeklinde bir yazım hatalıdır. Bir kısayol olarak unicode nesneleri yaratılacağında string operatörlerinin başına bir adet u harfi getirilerek doğrudan unicode nesneleri yaratılabilir. Buna göre "Kırkiki" bize normal bir string nesnesi u"Kırkiki" ise bir unicode nesnesi verecektir.



Python C printf tarzı metin biçimlendirme (String Formatting) karakterlerini destekler. Bu biçimlendirme karakterlerinin tam bir listesine http://www.python.org/doc/current/lib/typesseq-strings.htmla> adresinden ulaşabilirsiniz. Bu tip metin biçimlendirme işlemlerinde Python'un getirdiği bir kolaylık biçimlenecek metnin içine koyulacak değerleri bir liste yerine sözlükten alabilme özelliğidir. Bu sayede biçimlendirilecek metnin içine yerleştirilecek veriler listedeki sıralarından bağımsız olarak isimleriyle kullanılabilirler. Örneğin:


>>> print "%d = %s"%(42,"Kırkiki") #Klasik biçimlendirme.
42 = Kırkiki #Elemanların sırası değiştirilemez.
>>> sozluk = {"sayi":42, "yazi":"Kırkiki"}
>>> print "%(yazi)s = %(sayi)d"%sozluk #Sözlük kulanarak biçimlendirme
Kırkiki = 42 #yaptığımızda daha sonra elemanların sırasını değiştirebiliriz.
>>>


Dizi Tipleri (Sequence Types)

Python tek bir dizi tipi yerine kendi içerisinde Tuple (tüp) ve List (liste) olmak üzere iki farklı veri tipi barındırır. Diğer tüm veri tipleri gibi Bu tiplerde programcının oluşturacağı sınıflar tarafından taklit edilebilirler. Tüp tipindeki verilerin en büyük özelliği içerdiği verilerin değiştirilmesinin mümkün olmamasıdır. Buna karşılık Liste tipindeki veriler diğer dillerden bildiğimiz dizi tipindeki veriler ile aynı özellikleri gösterirler. Python dizi tiplerinin diğer dillerdeki benzer tiplerden en önemli farkı negatif indeksler ve dizi dilimlemeleridir (slicing). Negatif indeksler sayesinde dizi elamanlarına alışıldık 0'dan <dizi uzunluğu> - 1'e kadar olan sayılarla erişim dışında dizinin sonundan başlayarak negatif sayılarla da erişebiliriz. Dizinin son elemanı -1 olmak üzere başa doğru gidildikçe küçülen negatif sayılarla dizinin diğer elemanlarına erişebiliriz. Buna göre dizi[-1] bize dizinin son elemanını verirken dizi[-2] sondan ikinci elemanı verecektir. Bu özellik Python'un dizi dilimleme yetenekleri ile birleştirildiğinde bize dizilerin belirli bölümlerini ayıklamak konusunda oldukça güçlü bir araç sunar.



Dizi dilimleme dizi veya dizi-benzeri bir veri tipindeki verilerin belirli bir bölümünü almamızı sağlar. Dilimler başlangıç ve bitiş indeksleri verilerek diziden alınır. Dizi dilimlemek için olağan dizi erişim şekli olan dizi[indeks] yazımı yerine dizi[başlangıç indeksi:bitiş indeksi] şeklinde bir yazım kullanmak gerekir. Bu şekilde aldığımız bölüm dizinin belirttiğimiz indekse sahip elemanlarının arasındaki elemanların bir kopyası olacaktır. Başlangıç indeksinin verilmemesi durumunda dizinin başından bitiş indeksine kadar, bitiş indeksinin verilmemesi durumunda ise başlangıç indeksinden dizinin sonuna kadar olan bölüm alınacaktır. Bu durumu birkaç örnekle açıklamak gerekirse:


>>> dizi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> dizi[-3] #Negatif indeks dizinin son elmanını döndürür
7
>>> dizi[3:8] #Dizinin üçüncü ile sekizinci elemanları arasındaki bölümü döndürür
[3, 4, 5, 6, 7]
>>> dizi[3:-2] #Dizinin üçüncü ile sondan ikinci elemanları arasındaki bölümü döndür
[3, 4, 5, 6, 7]
>>> dizi[:4] #Dizinin ilk dört elemanını döndürür
[0, 1, 2, 3]
>>> dizi[4:] #Dizinin dördüncüden sonraki elemanlarını döndürür
[4, 5, 6, 7, 8, 9]
>>> dizi[:] #Dizinin bir kopyasını döndürür
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>



Eşleştirme Tiperi (Mapping Types)

Python öntanımlı olarak sadece bir temel eşleştirme tipi ile gelir: Sözlük (Dictionary). Eşleştirme tipleri anahtar:veri şeklindeki veri yapılarını saklamak için kullanılırlar. Eşleştirme tipleri yapı olarak dizi tiplerine benzese de dizilerin indekslerinin aksine eşleştirme tiplerinin anahtarları sıralı değildir. Anahtarlar hemen hemen her tipteki veriden karışık şekilde oluşabilir ancak tek kural anahtar olacak verilerin değişmez (immutable) bir tipte olmasıdır. Örneğin tüpler, stringler ve sayısal tipler anahtar olabilirken değişken bir tip olan listenin anahtar olması mümkün değildir. Veri kısmı içinse bu tip bir kısıtlama mevcut değildir.



Bir sözlük yaratmanın en kolay yolu anahtar, veri ikililerini süslü parantezlerin ("{" ve "}" karakterleri) içerisine yazmaktır. Örneğin:



sozluk = {42:'Kırkiki', '00101010':'foobar'}



None Nesnesi

None nesnesi C'deki NULL veya Pascal'daki Nil değerinin Python'daki benzeridir. Varolmayan değerleri ifade etmekte kullanılan None nesnesinin doğruluk değeri yanlış'a denktir.




Taglar: Hello World! Python 'da İlk Programı Yazalım Neden Python Peki ama neden Python? Python Anahtar Sözcükler Python Sözdizimi Python Veri Tipleri Python yorumlayıcısı Python'a Gelişimi

Isminiz:
E-mail adresiniz:
Güvenlik Kodu:
  
 

 

Istatistikler ,
Sitemizde su anda 30 kategori, 377 makale , 104 görsel ders ve 6 Ziyaretci bulunmaktadir...
Toplam üye sayimiz : 496

Copyright © 2007 Programlamadili.net - Programlama & Tasarim: Recep Ikiz & Ferdi Küçük

| Site Haritasi |

"Ne Aradığını Bilmeyen Bulduğunun Farkına Varamaz "
ACPI Programlama dili, Action Script Programlama dili, ASP Programlama dili, ASP.NET Programlama dili, Assembly Programlama dili, Bash Programlama dili, C Programlama dili, C# Programlama dili, C++ Programlama dili, Cobol Programlama dili, Delphi Programlama dili, Flash Programlama dili, Html Programlama dili, JAVA Programlama dili, Java Script Programlama dili, JSF Programlama dili, Jsp Programlama dili, Lua Programlama dili, Matlab Programlama dili, MySQL Programlama dili, Oracle Programlama dili, Pascal Programlama dili, Perl Programlama dili, Photoshop Programlama dili, PHP Programlama dili, Python Programlama dili, REXX Programlama dili, Ruby Programlama dili, SEO Programlama dili, Visual Basic Programlama dili,
Reklam alanı