Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Python OPERATÖRLER VE MATEMATIKSEL İŞLEMLER

LeGoLaS

ikra
Emektar Yönetici
Konum
Türkiye
  • Üyelik Tarihi
    1 Ağu 2008
  • Mesajlar
    9,931
  • MFC Puanı
    1,646
  • MFC Seviyesi

OPERATÖRLER VE MATEMATIKSEL İŞLEMLER


Bu bölümde, programlamayla az çok uğraşmış herkesin hiç yabancılık çekmeyeceği bir konuya değineceğiz. Çünkü “Operatörler ve matematiksel işlemler” konusu hemen her programlama dilinde aynıdır. Lafı çok uzatmadan yazımıza ilk olarak operatörlerden başlayalım.





Matematiksel Operatörler

Python daki matematiksel operatörler herhangi bir hesap makinesindekiyle aynıdır. Bunlar, numerik klavyemizde de yan yana yer alan /, *, -, + operatörleridir.


Hemen basit bir örnek verelim:

[COLOR=white !important]?
1
2
3
4
>>>a=5+7
>>>print a
12
>>>


Aynı işlemler değişkenler ile de yapılabilir:
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>>a=5
>>>b=a+7
>>>print b
12
>>>


Bununla beraber oldukça karmaşık ifadeler de yazabilirsiniz:
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>>a=(3+4+21)/7
>>>b=(9*4)/(2+1)-6
>>>print(a*b)-(a+b)
14
>>>


Bu operatörler sadece rakamlarla kullanılabilir mesela aşağıdaki örnekler karşımıza hata mesajları getirir.

“Merhaba” + 5 “14” + 3

*Burada önemli olan nokta “14” ün sayı olarak değil bir String ifade olarak işleme sokulmasıdır.

Not: Yine her programlama dilinde olduğu gibi Python da işlem önceliğine dikkat eder. Bir diğer dikkat edilmesi gereken husus ise bölme işleminde karşımıza çıkar. İki integer sayıyı böldüğümüzde eğer bir kalan oluşursa Python bunu göz ardı eder.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>13/6
2
>>>


Bu sorundan iki sayıdan birini float dediğimiz yani türkçe tabiriyle kayan noktalı halde yazarak kurtulabiliriz.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>13/6.0
2.1666666666666665
>>>


Tabi her seferinde böyle virgüllü sayımı yazacağız diye soracak olursanız bunun da kolayı var :). Komut satırında da olsak text editör de de olsak şu komutu araya bir yere sıkıştırmak yeterlidir:
[COLOR=white !important]?[/COLOR]​
1
from __future__ import division


Eğer komut satırında isek Python bir dahaki açılışına kadar virgüllü sayıları es geçmez. :).. “__” işaretini nasıl yapacağım diyorsanız “_” işaretini iki kere ard arda koymanız yeterli arkadaşlar :).

Örnek olması açısından küçük bir örnek de String ifadeler için yapalım.
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
6
7
8
9
>>>a=”Hel”
>>>b=”lo”
>>>c=a+b
>>>print c
'Hello'
>>>c=c+” world”
>>>print c
'Hello world'
>>>


Matematiksel operatörlerde son olarak değineceğimiz kısım üs alma ve mod işlemi.
Bu işlemlerden mod almayı halletmek için Python ' % ' işaretini kullanır. Ancak üs alma işlemi dğer programlama dillerinden biraz farklıdır. Python da üs alma (a^b) işlemini ' ** ' yardımıyla yaparız. Hemen örnek verecek olursak:
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
6
7
>>>13%2
1
>>>2**3
8
>>>3**2
9
>>>


İlişkisel Operatörler
Bir diğer operatör türümüzde ilişkisel operatörler dediğimiz yapılardır. Bunlar == (eşit mi?), != (farklı mı), < (küçük mü?), > (büyük mü?), <= (küçükeşit mi?), >= (büyükeşit mi?) gibi işaretlerdir. Bu operatörler basit karşılaştırma işlemleri yaparlar ve yaptıkları işlemin sonucunda 'true' ya da 'false' değerleri döndürürler. Hemen örneklerimizde görelim arkadaşlar:
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
6
7
8
9
10
>>>4>=9
False
>>>’abc’!=’def’
True
>>>x=’abc’
>>>x==’abc’
True
>>>14!=9
True
>>>


Unutmadan yine operatörler konusunda bahsedilmesi gereken +=, -=, *=, /= c operatörlerini ele alalım.Bu operatörler hızlı bir şekilde değişkenin değerini işleme tabi tutup ardından tekrar değişkene atamak için kullanılır. Aşağıda ki örnekte iki işleminde aynı anlama geldiğini görebiliriz:
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
6
7
8
9
>>> x = 5
>>> x = x + 6
>>> print x
11
>>> y = 5
>>> y += 6
>>> print y
11
>>>


Matematiksel Fonksiyonlar ve math Modülü

Evet arkadaşlar operatörleri bitirdikten sonra şimdi de matematiksel fonksiyonları tek bir çatı altında toplayan math modülünden bahsedelim. Bu konu modüller kısmında da anlatılabilirdi ama biz burada anlatmayı daha uygun gördük. Böylece math altındaki tüm fonksiyonları tek tek inceleyebiliriz.:)

Bu modülü kullanabilmemiz için öncelikle çalışmamıza import etmemiz gerekiyor:

[COLOR=white !important]?[/COLOR]​
1
2
>>>import math
>>>


Fonksiyonlar çağrılırken math.xxx şeklinde xxx kısmına fonksiyonlar yazılır.
Eğer math modülü altındaki tüm fonksiyonları görmek isterseniz:
[COLOR=white !important]?[/COLOR]​
1
2
>>>dir(math) #yazarak veya
>>>help(math) #yazarak görebilirsiniz.


help(math) kısmında ayrıca fonksiyonların özelliklerdinden kısa kısa bahsedilir.
Şimdi alfabetik sıraya göre bu fonksiyonları teker teker inceleyelim arkadaşlar.

-acos(x)
arccosinüs (cosinüs fonk. tersi) fonksiyonudur ve dönen değer radyan cinsindendir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.acos(0)
1.5707963267948966
>>>


-acosh(x)
Hiperbolik kosinüs fonksiyonunun tersidir ve bu da radyan cinsinden bir değer döndürür.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.acosh(1)
0.0
>>>


-asin(x)
Arcsinüs fonksiyonudur. Dönüş değeri radyandır.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.asin(1)
1.5707963267948966
>>>


-asinh(x)
Hiperbolik arcsinüs fonksiyonudur.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.asinh(0)
0.0
>>>


-atan(x)
arctanjant fonksiyonudur.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.atan(1)
0.7853981633974483
>>>


-atan2(y,x)
Sonuç olarak y/x in arctanjantını verir. Neden atan(y/x) bize yetmiyor mu derseniz atan2(y,x) fonksiyonu işaret karışıklığını gidermek için kullanılabilir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>atan2(5,5) # 5/5=1 olduğundan
0.7853981633974483
>>>


-atanh(x)
X değerinin Hiberbolik arctanjantını radyan cinsinden veren fonksiyondur.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.atanh(0)
0.0
>>>


-ceil(x)
ceil in kelime anlamı ingilizce de tavanla ilgilidir. Bu fonksiyonda adının hakkını vererek aldığı parametreye en yakın büyük tam sayıyı bize verir.
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>>math.ceil(3.56843)
4.0
>>>math.ceil(-3.56843)
-3.0
>>>


-copysign(x, y)
Bu fonksiyon kısaca y nin işaretini x e kopyalar diyebiliriz. Geri dönüş değeri yine x tir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.copysign(2.56,-3)
-2.56
>>>


-cos(x)
İlkokuldan beri bildiğimiz kosinüs fonksiyonu :). Burada parametre olarak radyan değer girilir arkadaşlar.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.cos(0.5235987755982988)
0.8660254037844387
>>>


-cosh(x)
Hiperbolik cosinüs fonksiyonudur.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.cosh(1)
1.5430806348152437
>>>


-degrees(x)
Radyan cinsinden girilen değerin açı olarak verir. Yukarıda radyan olarak kullandığımız değerlerin karşılığını görelim isterseniz :).
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>>math.degrees(1.5707963267948966)
90.0
>>>math.degrees(0.5235987755982988)
30.0
>>>


-exp(x)
Bu fonksiyon bize e^x işlemini yapmaktadır.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.exp(2)
7.38905609893065
>>>


-expm1(x)
Bu fonksiyonun exp(x) ten tek farkı sonucu 1 çıkarıp vermesidir. Yani e^x-1 işlemini yapar.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.expm1(2)
6.38905609893065
>>>


-fabs(x)
Girilen değerin mutlak değerini verir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.fabs(-3.26)
3.26
>>>


-factorial(x)
Fonksiyonumuz x! i bulur. Tabi negatif yazmamaya dikkat ediyoruz. :)
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.factorial(4)
24
>>>


-floor(x)
Floor türkçede zemin anlamına gelmektedir. Bu fonksiyonda aldığı değeri en yakın küçük tam sayıya yuvarlar.
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>> math.floor(3.56843)
3.0
>>> math.floor(-3.56843)
-4.0
>>>


-fmod(x,y)
fmod(x,y) fonksiyonu, a sayısının b sayısına bölümünden kalanı veren bir fonksiyondur. a%b işlemiyle aynıdır ama fmod ile ondalıklı sayılarıda kullanabiliriz.
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>> math.fmod(5,3)
2.0
>>> math.fmod(6,3.2)
2.8
>>>


-frexp(x)
Bu fonksiyon bize verilen değerin karakteristiğini ve mantisini veriyor. Sonu olarak bize (m,k) şeklinde bir değer döndürüyor. Burada m mantis, k karakteristiktir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.frexp(7)
(0.875, 3)
>>>


-hypot(x,y)
Evet sizinde tahmin ettiğniz gibi girilen değerlere karşılık gelen hipotenüs uzunluğunu bulur. Öklid in dik üçgen kanunundaki sqrt(x*x+y*y) işleminin sonucudur aslında.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.hypot(3,4)
5.0
>>>


-isinf(x)
Ne kadar işiniz düşer bilinmez ama bu fonksiyonumuz da bir sayının sonsuz olup olmadığını kontrol ederek bize true ya da false değer döndürür.

-isnan(x)
Bu fonksiyonunda girilen parametrenin belirsizlik durumunu kontrol eder. Yani (sonsuz/sonsuz), (sonsuz*0) gibi.
-ldexp(x,y)
Bu fonksiyonumuz da x*(2**y) işlemini döndürür. (** işlemi üs alma işlemiydi hatırlarsanız.)
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.ldexp(3,2)
12.0
>>>


-log(x,y)
Logaritması alınacak sayı x tir. Tabanımız ise y değeridir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.log(8,2)
3.0
>>>


-log10(x)
Girilen parametrenin 10 tabanındaki logaritmasını alır.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.log10(1000)
3.0
>>>


-log1p(x)
Bu fonksiyon 1+x değerinin e tabanındaki logaritmasını alır:
[COLOR=white !important]?[/COLOR]​
1
2
3
>>> math.log1p(4)
1.6094379124341003
>>>


-modf(x)
Girilen değerin ondalık kısmını ve tam kısmını birbirinden ayırıp geri döndürür.Girilen sayı tam sayı da ondalıklı sayı da olabilir.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>> math.modf(6.5)
(0.5, 6.0)
>>>


-pow(x,y)
xy işlemini yapan fonksiyonumuzdur. Bu fonksiyonu ayrıca math modülünü import etmeden de kullanabilirsiniz.
[COLOR=white !important]?[/COLOR]​
1
2
3
4
5
>>>math.pow(5,3)
125
>>>pow(2,3)
8
>>>


-radians(x)
Girilen açı değerinin radyan karşılığını verir:
[COLOR=white !important]?[/COLOR]​
1
2
3
>>> math.radians(180)
3.141592653589793
>>>


-sin(x)
Bildiğimiz sinüs fonksiyonudur. Tabi hep olduğu gibi burada da değer olara radyan giriyoruz.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>> math.sin(1.0471975511965976)
0.8660254037844386
>>>


-sinh(x)
Hiperbolik sinüs fonksiyonudur. Sinüs te nasıl değeri radyan cinsinden alıyorsa burada da radyan cinsinden geri döndürür.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.sinh(1)
1.1752011936438014
>>>


-sqrt(x)
Bir çok programlama dilinde aynı olan bu fonksiyonumuz eğer aşinalığınız varsa karekök alan fonksiyon olduğunu anlamışsınızdır. :)
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.sqrt(81)
9.0
>>>


-tan(x)
Yine klasik trigonometrik fonksiyonlardan bir tanesi olan tanjant fonksiyonu.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.tan(1)
1.5574077246549023
>>>


-tanh(x)
Hiperbolik tanjant fonksiyonudur.
[COLOR=white !important]?[/COLOR]​
1
2
3
>>>math.tanh(0)
0.0
>>>


-trunc(x)
Evet bu fonksiyonda modülümüzde yer alan son fonksiyonumuzdu arkadaşlar. Ne işe yarıyor diye soracak olursanız girilen sayımızın ondalık kısmını atıp elinde kalan değeri bize geri döndürür. Yaprığı işin yuvarlamayla ilgisi yoktur yani. Örneğimiz rahatlıkla açılar bu durumu:
[COLOR=white !important]?[/COLOR]​
1
2
3
4
>>>math.trunc(12.6)
12
>>>math.trunc(-12.6)
-12


Son olarak da bilgi olması açısından Pyhon' umuzun e ve Pi sabitlerinin sayı değerlerini verelim.
e = 2.718281828459045
pi = 3.141592653589793
Bu bölümde matematik modülünü işledik ve tüm fonksiyonlarımızı inceleme imkanı bulduk. Şimdi dışarı çıkıp temiz bir hava alabilirsiniz :)...

Kaynaklar:
- http://ocw.mit.edu/courses/electric...to-programming-using-python-january-iap-2011/

[COLOR=white !important]?[/COLOR]​
1
2
- >>>help()
help>math


- www.google.com
- http://www.istihza.com/py2/math.html

[/COLOR]
 
Üst Alt