Python Programlamada Tam Sayı ve Diziler

Herhangi bir sayı, sayısal değerdir. Örneğin matematikte 4 sayısı tam sayı olarak ifade edilir.

Tam sayılar pozitif, negatif ya da sıfır değeri alabilir. Kesirli değerleri içermez. Örneğin 99, 105, 0, -56 ve 7896 birer tam sayıdır. Ancak 4.5 bir tam sayı değildir. Python programlama dili, sayısal ve sözel ifade kullanımını destekler. Python programları, tam sayıları kullanarak işlem yapabilir. Örneğin;

print(4)

ifadesi 4 değerini ekrana yazdırır. İfadede tırnak (“) işareti kullanılmadığına dikkat ediniz. Python tam sayılar dışındaki diğer veri türlerini de desteklemektedir. Bu ifade Python satırlarının temel yapı taşıdır. Tek başına 4 sayısı bir anlam ifade etmez. Ancak yorumlayıcılar, bir anlatım olursa Python ifadelerini değerlendirir. Python etkileşimli yorumlayıcısı, hem ifadeleri hem de anlatımları değerlendirir. Örneğin;

>>> 4

Komutu yazıldığında, yorumlayıcı satırı okur, işler ve sonucu 4 olarak ekrana yazdırır. x = 10 girilirse bu ifadenin sonuca yönelik bir anlamı olmadığı için etkileşimli yorumlayıcı ekrana hiçbir şey yazdırmaz. Eğer kullanıcı bu ifadeden sonra yalnızca “x” girerse yorumlayıcı bunu değerlendirir ve ekrana x değeri olan 10 sayısını yazar. Şayet kullanıcı bundan sonra ekrana “y” yazarsa, bu değer daha önce tanımlanmadığı için yorumlayıcı hata verir.

Python, toplama işlemi için toplama (+) sembolünü kullanır. Böylece yorumlayıcı bir hesap makinesi gibi işlem yapar.

>>> 5 + 4

9

>>> 1+6+4+10

21

>>> print(1 + 6 + 4 + 10)

21

Son satırda toplama işleminin, doğrudan print ifadesi içerisinde yer alabildiği de görülmektedir. Şimdi de aşağıdaki işleme bakalım:

>>> 16

16

>>> “16”

“16”

>>> ’16’

’16’

İlk satırda tam sayı olan 16 değeri tek ya da çift tırnak içine alındığında sayı olarak değil metin (alfasayısal kelime yani dizi) olarak işlem görmektedir. Bu ifadeler karakter dizisi ya da dizi olarak anılır.

Python, dizileri ayırt etmek ve sınırları belirlemek için hem tek (‘) hem de çift tırnak (“) kullanımına izin vermektedir. Sınırları belirlemek demek, başlangıç ve bitiş noktalarını işaret etmek demektir. Kullanılan ilk ve soldaki sembol (‘) dizinin başlangıcını, sonra kullanılan ve sağda bulunan sembol (‘) ise dizinin bitişini ifade eder. Benzer biçimde çift tırnak sembolleri de (“) başlangıç ve bitiş için iki kez kullanılmalıdır.

İki sembol tek tırnak (‘) ve çift tırnak (“), birbiri yerine kullanılamaz. Bu nedenle;

>>> “ABC”

“ABC”

>>> “ABC”

“ABC”

ifadeleri doğru çalışırken;

>>> “ABC”

File “”, line 1

“ABC”

ˆ SyntaxError: EOL while scanning string literal

>>> “ABC”

File “”, line 1

“ABC”

ifadeleri hataya neden olur.

İfade olarak 4 ve ‘4’ yazımının farklı anlamlar taşıdığına dikkat ediniz. İlk değer bir tam sayı iken, ikinci değer karakter olarak algılandığı için bir dizidir. Python içindeki tüm ifadelerin bir türü vardır.

İfadenin türü anlatımın da türünü ifade eder. Bazen ifadelerin türü onların sınıfı olarak belirtilir. Şu ana kadar yalnızca tam sayı ve dizileri inceledik. Gömülü bir fonksiyon, Python ifadelerinin türünü belirtmek için kullanılabilir.

>>> type(4)

<class “int”>

>>> type(“4”)

<class “str”>

Gömülü str fonksiyonu tam sayı olarak görülen bir ifadeden dizi oluşturur.

>>> str(4)

“4”

>>> “5”

“5”

>>> int(“5”)

5

str(4) ifadesi 4 değerini karakter olarak değerlendirir, int(‘5’) ifadesi ise bu karakter değeri tam sayıya dönüştürür.

>>> int(4)

4

>>> str(“Python”)

“Python”

Tahmin edilebileceği gibi, bir programcı için bu dönüşümü yapmaya çoğunlukla gerek yoktur. Bu nedenle str ve int fonksiyonlarının kullanımı, değişkenler kullanılmadıkça çok anlamlı olmayacaktır.

Herhangi bir tam sayı, dizi olarak ifade edilebilir, ancak her dizi bir tam sayı olarak ifade edilemez.

>>> str(1024)

“1024”

>>> int(“sus”)

Traceback (most recent call last):

File “”, line 1, in

ValueError: invalid literal for int() with base 10: “sus”

>>> int(“3.4”)

Traceback (most recent call last):

File “”, line 1, in

ValueError: invalid literal for int() with base 10: “3.4

Görüldüğü gibi ne sus ne de 3.4, Python için geçerli bir tam sayıdır. Özetlemek gerekirse eğer dizi içerisinde sayısal ifade varsa int fonksiyonu kullanılarak bu, kolayca tam sayıya çevrilir. Bu arada toplama amacıyla kullanılan + sembolü diziler için farklı biçimde çalışır.

>>> 5 + 10

15

>>> “5” + “10”

“510”

>>> “abc” + “xyz”

“abcxyz”

Görüldüğü gibi sayı değerleri için toplama işlemi yapan + sembolü, diziler için birleştirme işlemi gerçekleştirir. Bu iki farklı tanımı aynı satırda bulundurmak hataya neden olur.

>>> “5” + 10

Traceback (most recent call last):

File “”, line 1, in

TypeError: Can”t convert “int” object to str implicitly

>>> 5 + “10”

Traceback (most recent call last):

File “”, line 1, in

TypeError: unsupported operand type(s) for +: “int” and “str”

Ancak int ve str fonksiyonları ile desteklenirse doğru sonuca ulaşılır.

>>> 5 + int(“10”)

15

>>> “5” + str(10)

“510”

Python için type fonksiyonu karmaşık ifadeler için kullanılabilir.

>>> type(4)

<class “int”>

>>> type(“4”)

<class “str”>

>>> type(4 + 7)

<class “int”>

>>> type(“4” + “7”)

<class “str”>

>>> type(int(“3”) + int(4))

<class “int”>

Python kapsamında sayıları ifade ederken “,” ya da “.” gibi ayırma sembolleri kullanılmaz. Dört bin altı yüz elli sekiz, 4658 olarak yazılmalıdır.

Yorum yapın