Skip to main content

Python Dersleri -3 || Python Öğren Serisi

Python Dersleri -3

Python nedir ? Python nasıl kullanılır ? Pythonda işlemler nedir ? Pythonda aritmetik işlemler , hata yakalama nedir ? Bu ve benzeri sorulara cevap aradığımız bu yazımızda incelemelerimize devam ediyoruz.

Pyton Derslerine Devam

Sys.stdout’u Kalıcı Olarak Değiştirme :

>>>import sys (Bu kod ile sys adlı özel bir modülü programa dahil ettik)

Import etmek derken ?

>>>import. os

>>>os.getcwd () (os adlı bir modül içerisinde getcwd kullanılarak hangi dizinde bulunduğumuzu öğrendik)

Diğer bir örnek ;

>>>import keyword

>>>keyword.kwlist (burada da keyword adlı diğer bir modül içerisinde kwlist adlı değişkeni kullanarak hangi kelimelerin kullanıp kullanılmayacağını öğrenmiştik)

Şu anda ek olarak ‘sys’ adlı bir modülden sizlere söz ediyoruz.

>>>import sys

>>>sys.stdout (buradan değişken değerine ulaşabiliriz)

Çıktısı ise -> <_io.TextIOWrapper name=’<stdout>’ mode=’w’ encoding = ‘cp1254’> şeklinde olacaktır.

Program çıkmak için : >>>import sys; sys.exit() kullanılabilir.

Pekala exit()’da sys modülü içerisinde bulunur.

Sys modülü içerisindeki değişkenlere bir örnek stdout ; fonksiyona örnek ise -> exit()’dır.

Kaçış Dizileri :

Python’da özel anlam taşıyan işaret veya karakterleri, sahip oldukları bu özel anlam dışında bir amaçla kullanmamızı sağlayan birtakım araçlardır.

Ters Taksim (\)

>>>print(‘İstanbul\’un 5 günlük hava durumu tahmini’)

’\’ bu tarz işaretlere Python’da kaçış dizisi denir.Karakter dizisi tanımlanırken bu işaretler oluşabilecek hatalardan kaçınmayı sağlar.

‘\’ python bu işareti gördüğünde okumaya devam eder yani burayı atlar.Buradaki tek tırnak hata vermesine sebep olacakken hatayı önlemiş olur.

Satır Başı (\n)

Satır başı karakteri ya da yeni satır karakteri.

>>>print(“birinci satır\nikinci satır\nüçüncü satır”)

Çıktı :

Birinci satır

İkinci satır

Üçüncü satır

‘\n’ bir kaçış dizisi olup yeni bir satıra geçmeyi sağlar.

Sekme (\t)

>>>print(“abc\tdef”)

Çıktı : abc  def

Tab tuşu gibi bir işlem görür ve sonraki ifadeyi sağa doğru iter.

Zil Sesi (\a)

!bip! sesi benzeri bir zil sesi üretilmesini sağlayabilir.

>>>print(“\a”)

Çıktı :  !bip!

Aynı Satır Başı (\r)

Bir karakter dizisinde aynı satırın en başına dönülmesini sağlar.

>>>print(“Merhaba\rZalimDünya!”)

Çıktı : Zalim Dünya

\r’ın bulunduğu konumdan itibaren sağında kalanlar en baştan itibaren yazdırılır.

Düşey Sekme (\v)

Eğer \v kullanırsak düşey sekme elde edilir.

>>>print(“düşey\vsekme”)

Çıktı :

Düşey

Sekme

İmleç Kaydırma (\b)

İmleci o anki konumundan sola kaydırır.Peki nasıl ?

>>>print(“yahoo.com\b”)

Çıktı : yahoo.co

Burada bir sola kaydırıldığı için ‘m’ harfi silinmiştir.

Küçük Unicode (\u)

Unicode ; karakterlerin , harflerin , sayıların ve bilgisayar ekranında gördüğümüz öteki bütün işaretlerin her biri için tek ve benzersiz bir numaranın tanımlandığı bir sistemdir.

Kod konumu denilen özel bir gösterim şekli vardır.

Örnek olarak ;

‘a’ harfi sistemde şu kod konumu ile görünür ; u+0061

Python programlama dilinde ise bu durum ; \\u0131 şeklindedir.

Python her bir kod konumunu gösterebilmek adına \u şeklinde bir kaçış dizisi tanımlar.

Eğer \u kaçış dizisinin ardından doğru bir kod konumu belirtmezsek , Python bize hata verecektir.

Büyük Unicode (\U)

\u gibi \U da aynı şekilde Unicode kod konumları için kullanılır.Ancak biraz daha uzundur.

\u için ‘ı’ : ‘\u0131’dir. \U için ‘ı’ : ‘\U00000131’dir.

Uzun Ad (\N)

Unicode ile ilgilidir.Unicode sisteminde her karakterin tek ve benzersiz bir kod konumu ve tek,benzersiz bir de uzun adı vardır.

‘a’ harfinin UNICODE sistemindeki uzun adı şudur ;

  • LATIN SMALL LETTER A

Bir karakterin Unicode sistemindeki uzun adını öğrenmek için unicodedata adlı bir modülden faydalanılabilir.

>>>import unicodedata

>>>unicodedata.name(‘a’)

Onaltılık Karakter (\x)

Bir kaçış dizisi meydana getirir.

Bunu kullanarak onaltılı (hexadecimal) sayma sistemindeki bir sayının karakter karşılığını gösterebiliriz.

>>>”\x41”   çıktısı : ‘A’

Bu işlem aslında ASCII tablosunu kullanır.Mesela ‘4E’ sayısı ‘N’ harfine denk gelir.

Etkisizleştirme(r)

Bir kaçış dizesidir.Karakter dizisinin başına getirdiğimizde r kaçış dizisi , karakter dizisi içerisinde geçen kaçış dizelerinin işlevlerini yerine getirmesine engel olarak , istediğimiz çıktıyı elde etmemizi sağlıyor.

>>>print(r”Kaçış dizileri: \, \n , \t , \a , \\ , r”)

‘\r’ kaçış dizisi ile karıştırmayınız.

Sayfa Başı (\f)

Eski tip yazıcılarda bir sayfanın sona erip yeni bir sayfanın başladığını göstermektir.

Örnek bir program :

Aylık yol masrafını hesaplayan bir program ;

Masraf = gün sayısı x (gidiş ücreti + dönüş ücreti)

gün=22

gidiş_ücreti=1.5

dönüş_ücreti=1.4

masraf=gün * (gidiş_ücreti+dönüş_ücreti)

print(“-” * 30)

print(“çalışılan gün sayısı\t:” , gün)

print (“işe gidiş ücreti\t:”,gidiş_ücreti)

print(“işten dönüş ücreti\t:”,dönüş_ücreti)

print(“-”*30)

print (“AYLIK YOL MASRAFI\t:”,masraf)

Pythonda Yorum İşareti :

‘#’ işareti yorum işaretidir.Eğer bir yere yorum bırakmak isterseniz , o ifadelerin başına ‘#’ işaretini koymalısınız.

Kullanıcıdan Bilgi Almak :

Input () Fonksiyonu :

Type(),len(),print() gibi bir fonksiyondur.

Örnek:

>>>isim=  input (“isminiz nedir”)

>>>print(“Merhaba”,isim, end=”\n”)

Örnek :

Çap = input(“dairenin çapı:   ”)

Yarıçap = int (çap) /2

Pi = 3.14159

Alan = pi * (yarıçap * yarıçap)

Print(“Çapı” , çap , “cm olan dairenin alanı: ”  ,alan , “cm2’dir”)

Tip Dönüşümleri

Kullanıcının girdiği verinin sayı , karakter vb. değişmesi durumunda hata almamak için ;

>>>sayı = input (“herhangi bir veri girin : ”)

>>>tip = type (sayı)

>>>print(“Girdiğiniz verinin tipi : ”, tip)

Şeklinde veriyi bir değişkene atayarak , ardından da bunu yazdırabiliriz bu şekilde.

Karakter dizileri ile aritmetik işlemler yapılamaz veya tam tersi durumda da.

İnt ()

İnput() fonksiyonundan gelen veri her zaman bir karakter dizisidir.Aritmetik işlem yapabilme için bu veriyi dönüştürmemiz gerekmektedir.

Bunun için kullanılması gereken dönüştürücü int()’dir.

Örnek :

>>>karakter_dizisi=”23”

>>>sayı = int (karakter_dizisi)

>>>print(sayı)

Çıktı : 23

Fakat 23 yerine armut yazsa idiniz program hata verecekti.İnt ifadeye çevireceğiniz herşey sayı değerli olmalıdır.

Str ()

Karakter dizisi olmayan verileri karakter dizisine dönüştürmek amaçlı kullanılır.

Float ()

Noktalı sayılar için kullanılır.Bir tamsayıyı ya da sayı değerli bir karakter dizisini kayan noktalı sayıya dönüştürmek isterseniz , float() kullanmalısınız.

Complex ()

Karmaşık sayıları ifade eder aslında.15+0j gibi.Eğer bir ifadeyi karmaşık bir sayıya çevirmek istersek , complex fonksiyonundan faydalanmalıyız.

NOT : Bir ifadenin türünü bilmiyor ve öğrenmek istiyorsak ; type() fonksiyonunu kullanmalıyız.

Eval() ve exec() Fonksiyonları

Eval() : Çok güçlü bir fonksiyondur ve dehşet güçleri vardır.

Örnek :

>>>print(“ bla bla ”)

>>>veri= input(“işleminiz : ”)

>>>hesap=eval(veri)

>>>print(hesap)

Eval -> evaluate (değerlendirmeye tabi tutmak , işleme sokmak) kelimesinden gelir.

Eval() fonksiyonu ile kullanıcının girdiği verileri değerlendirmeye sokuyor ve komutları işleme sokuyoruz.

Mesela 10 ile 26 sayısını çarpıyor olalım.Eval fonksiyonu olmazsa , alacağı cevap dümdüz bir 10*26 çıktısı olacaktır.Eval fonksiyonu ise her bir Python komutunu algılar ve veriyi işleme sokar.Ekrana doğrudan yazdırmak yerine de işlem sonucu olan 260 sayısını bize verir.

Şimdi buradaki tehlikeli durum ise şudur ;

>>>open(“deneme.txt” , “w”) ile kendi bilgisayarınızda bir dosya oluşturulur.Ve bu şekilde aslında program kontrolden çıkmış olur.Çünkü , siz bir hesap makinası yazmıştınız ama bir başkası geldi ve

>>>__import__(“os”).system(“dir”) diyerek mevcut dizindeki tüm dosyalarınıza erişebilir.

Bu şekilde tüm verilerinizi kaybedebilirsiniz.Bu sebeple eval fonksiyonunun dehşet hatta şeytani bir tarafı bulunmaktadır.

Burada diğer bir örnek ;

SQL Injection kavramı : SQL injection tarzı saldırılar ile hacker ya da crackerlar web sitesini programlayan kişinin kullanıcıya verdiği rastgele SQL komutu işleme yetkisini kullanarak gizli ve özel bilgilerini ele geçiriyorlar.

Eval() fonksiyonuda aynı şekilde kullanıcılara rasgele kullanma yetkisi verdiği için kötü niyetli kişilerin programınıza sızma ihtimalini doğurur.

Engellemek adına ise ;

Veri -> KONTROL -> Eval() -> Çıktı şeklinde bir kontrol mekanizması oluşturmalısınız.

Bu komuta benzer diğer bir komutta exec() komutudur.

Eval ile şu işlemi yapamazsınız : >>>eval (“a=45”)

Exec ile yapabilirsiniz ama : >>>exec(“a=45”) // print (a) -> çıktı : 45

Exec ile yaptığımız işleri eval ile de yapabiliriz ama exec fonksiyonunda da güvenlik açıkları mevcuttur.

Bu sebeple bu komutlara çok dikkat edilmelidir.

Format() Methodu

Googleda bir site bulunamadı hatası illaki almışsınızdır.

Buradaki kullanım mantığı ise ;

>>>url = input(“Lütfen bir site adresi gir : ”)

>>>print(“Hata!  Google chrome” , url , “sitesini bulamadı”)

Format aracının kullanım mantığı :

>>>url = input (“Lütfen bir site adresi gir :”)

>>>print(“Hata! Google chrome {} sitesini bulamadı”.format(url))

Format() methodu nasıl çalışır?

>>>print(“{} ve {} iyi bir ikilidir.”format(“Python”,”Django”))

Çıktı : Python ve Django iyi bir ikilidir.

Yada şu şekilde kullanılabilirdi  ;

>>>metin = “{} ve {} iyi bir ikilidir”

>>>metin.format(“A”,”B”)

Burada da format() methoduna parametre vermeden önce bir değişkene atama işlemi yapılır.

Koşul Deyimleri

İf Deyimi :

If , Elif , Else :

İşaretler ->

  • > : Büyüktür
  • < : Küçüktür
  • >= : Büyük eşittir
  • <= : Küçük eşittir
  • == : eşittir
  • != : eşit değildir

If : Eğer anlamına gelir.Eğer büyükse , küçükse , eşitse gibi kullanılır

>>> if n> 20 :

>>>       print(“sayı 20’den büyüktür”)

Girinti koymak başa , python dilinde çok büyük önem taşır.Genel olarak 4 boşlukluk bir girintileme işlemi uygun olmaktadır.

Örnek :

>>>sayı = int(input(“Bir sayı gir : ”))

>>>if sayı > 10:

Print (“Girilen sayı 10’dan büyüktür!”)

>>>if sayı < 10:

Print(“Girdiginiz sayı 10’dan küçüktür!”)

>>>if sayı ==10 :

Print(“Girilen sayı 10’dur”)

Elif :

If ile arasındaki fark aslında çok büyüktür.

Mesela ‘-’ değerlikli bir sayıyı girdiğimizi düşünelim.

İf yapısında birden fazla sıfırdan küçüktür işleminde hepsi birden çalışacakken (if yas<18 ve if yas<100 gibi) elif yapısında sadece doğru olan ilk sonucu verip diğerlerini çalıştırmayacaktır.

Fakat ilk olarak ‘elif’ asla kullanılmaz.Bu sebeple ilk olarak ‘if’ kullanmak önemlidir.Her zaman if ile başlamalısınız.

Else :

Diyoruz ki burada ;

Falanca ise çıktıyı ver değilse (else) şu çıktıyı ver.

Eğer else öncesinde doğru bir ifade varsa else çalışmadan o komut çalışır ve çıktıyı verir.

İŞLEÇLER

Operatörler yani işleçler , sağında ve solunda bulunan değerler arasında bir ilişki kuran işaretlere  denir.

Altı başlık altında incelenebilirler ;

Aritmetik işleçleri :

toplama (+) , çıkarma(-) , çarpma (*) , bölme(/) , kuvvet(**), modülüs(%)|mod alma gibi davranır|, taban bölme(//)|kesirli bölmez , taban bölme işlemi yapar|

Round ise ; yuvarlama işlemi yapar.

>>>round(2.55) -> çıktı :3

>>>round(2.55 , 1) : çıktı : 2.5 (burada 1 sayısı virgülden sonraki hassasiyeti belirler.)

Pow() ise (**) gibi kuvvet alma işaretidir.

Örnek : >>>pow(25 , 2)  -> Çıktısı : 625

Pow üç parametre alabilir.>>>pow(25,2,5) -> çıktısı : 0

Anlamı ise >>>(25 ** 2) %5’tir.

Karşılaştırma işleçleri :

== (eşittir) , != (eşit değildir) , > (büyüktür) , < (küçüktür) , >= (büyük eşittir) , <= (küçük eşittir)

Bool işleçleri ( 1 ve 0 yani True ya da False’tır)

Ek olarak ; 0 değeri ve boş veri tipleri False’tur.Bunlar dışında kalan herşey True’dur.

>>>bool(3) : True //bool(“  ”) : True //bool(“adasda”) : True //bool(0) : false

Not : 0’ın bir sayı , “0”ın ise bir karakter dizisi olduğunu unutmayınız.Sayı olan 0’ın bool değeri False’tur.Karakter dizisi olan “0”ın değeri True’dur.

Bool işleçleri ise ; and , or ve not

And (Ve) : Örnek : if kullanıcı_adı == “derstagram” and parola = “123456”

Or (Veya) : True olması için önermelerden en az birinin doğru olması gerekmektedir.

Not (Değil) : Burada true olan ifadeyi false veya tam tersi durumlarını gerçekleştirebiliriz.

Örnek :

>>>a = “ ”

>>>not  a

Çıktı : True (Normalde False’tur)

Değer atama işleçleri

+= İşleci :

A = 23 iken 28 yapmak için a= a+5 işlemi kullanılır ancak a += 5 denilerek daha hızlı toplama işlemi yapılır.

-= İşleci

A -=5 işlemi ile de A içerisindeki değerden 5 çıkarılır.

/= İşleci

A /= 3 ile a içerisindeki değeri 3 e böler.A/3 ile aynıdır.

*= İşleci

A *=2 A içerisindeki değeri 2 ile çarpar.

%= İşleci

A %=3 a içerisindeki değerden bölme işleminden kalan sayıyı aynı değişkene atar.

**= İşleci

A **= 2 ile a içerisindeki değerin kuvvetini hesaplar.

//= İşleci

A //= 2 ile a içerisindeki değerin taban bölme işlemini yapar.

Aitlik işleçleri

Bu işlecin adı ‘in’ işlecidir.

>>> a = “abcd”

>>>”a” in a

Çıktısı : True

Burada in ilgeci veri tipi içerisinde kod içerisinde verilen ifadenin olup olmadığını kontrol ediyor.Varsa true yoksa false döndürüyor.

Kimlik işleçleri

Python’da herşeyin kimliği vardır.Bu sebeple bize id() diye bir fonksiyon sunulur.(identity kısaltması)

>>>a = 100

>>>id(a)

Çıktısı : 137990748’dir. Bu ifade a içerisindeki 100 sayısının kimlik numarasını gösterir.

Her nesne eşsiz ve benzersizdir.

Burada ‘is’ adlı kimlik işlecini kullanabiliriz ;

>>> a is 1000     False

>>>b is 1000      False

Görünüşte aynı olan iki nesne aslında birbirinin aynısı olmayabiliyor.

İs işleci ile == aynı işleve sahip değildirler.

>>> a is 1000    false

>>> a == 1000 True

Buradaki kritik konu ;

Python dili -5 ile 257 arası sayıları ufak , diğerlerini ise büyük olarak kabul ediyor ve bu aralık dışındaki sayılar için her defasında ayrı bir nesne oluşturuyor.

Pythonda Sürümler:

Eğer programın sürümünü öğrenmek ve sürüme göre çalıştırmak istiyorsanız ;

>>>import sys

>>>_2x_metni = u“ ” ” Python 2.x sürümlerinden birini kullanıyorsunuz.Programı çalıştırabilmek için sistemimizde Python’ın 3.x sürümlerinden birisi kurulu olmalı”””

>>>_3x_metni =”Programa hoşgeldiniz” (Pythonda değişken sayı ile başlamaz)

>>>if sys.versiyon_info.major < 3 :

>>> Print (_2x_metni)

>>>else:

>>>print(_3x_Metni)

_2x_metni için u ekleyerek bu karakter dizisini Unicode olarak tanımladık.Çünkü python 2.x ASCII , Python 3.x’in ise UTF-8’dir.

Not : Eğer Windows kullanıyorsanız ve hala Türkçe karakterleri düzgün görüntüleyemiyorsanız ;

MS-Dos komut satırının başlık çubuğuna sağ tıklayıp özellikler diyerek yazı tipini ‘Lucida Console’ olarak değiştirmelisiniz.

Ardındanda vermeniz gereken komut : >>>chcp 1254’tür.

Python sürümü için pratik yol : version_info  komutudur.

Yukarda ise minör ve major parametrelerini kullanmış olduk.

Döngüler (Loops) :

Bir sürecin tekrar tekrar devam etmesi için kullanılması için kullanılır.Programları döngü içerisine nasıl sokarız ?

While ve For bunun içindir.

While : Türkçede iken , olduğu sürece anlamlarına gelir.

Örnek :

>>>a= 1

>>>while a ==1:

>>>      print(“all right”)

Burada programı sonsuz bir döngüye sokmuş olduk (infinite loop).Ve program sınırsız bir şekilde ekrana all right yazacaktır hiç durmadan.

Fakat şunu yazsaydık

>>>while a <10 : deseydik yine sonsuz bir döngüye girmiş olacaktı ama neden ?

Çünkü a değeri hep 1 olduğu için hiçbir zaman 10 değerine ulaşamayacaktır.

Ancak biz a += 1 der isek o zaman sorunu çözmüş oluyor muyuz  ? Evet.

>>>A = 1

>>>while a < 10 :

>>> a +=1

>>>print (“all right”)

Not: break kelimesi (kırmak , koparmak , bozmak ) anlamlarına gelir ve döngüyü kırar geldiğinde.

Örnek :

>>> if soru == “q”:

>>>print (“çıkılıyor …. ”)

>>>break

For Döngüsü :

For döngüsü çok yaygın bir döngüdür.Tıpkı while gibi bir döngüdür.

Yapısı :

For değişken_adı in değişken :

Yapılacak_işlem

Örnek :

>>>tr_harfler = “adasgsfafa”

>>>for harf in tr_harfler:

>>>print(harf)

Not : Karakter dizileri üzerinden döngü kurulabilir ancak sayılar üzerinde kurulamaz (sayılar = 12345678 -> for sayı in sayılar ) gibi.Hata verir program.

Döngülerle İlgili Araçlar :

Range Fonksiyonu : Aralık anlamındadır.Belli bir aralıktaki bulunan sayıları göstermek için kullanılırlar.

>>>for i in range (0 , 10):

>>>print (i)

Ek olarak range (0 , 10 , 3 ) gibi bir ifade de son rakam kaçar kaçar rakamların ilerleyeceğini bizlere gösterir.

Peki sayıları tersten almak isteseydik ? O zaman yapmamız gereken küçük hamleye beraber bakalım ;

>>> for i in range (10 , 0 , -1) : Sayıları tersten alacağımız için ilk parametre 10 oldu ,son parametrede -1.3 er 3 er alsın isteseydik , o zaman -3 yazmamız gerekirdi.

Pass Deyimi : Pass kelimesi , pas geçmek , geçmek anlamlarında kullanılır.Pythonda da görmezden gel , es geç anlamlarında kullanılır.

Örnek olarak :

İf …. :

Böyle yap

Elif ….. :

Şöyle yap

Else :

Pass (en son else gelirse hiçbirşey yapmadan pas geçerek program ilerlemeye devam edecektir.)

Break Deyimi :

Özel bir deyim olup , devam eden bir süreci kesintiye uğratabilirsiniz.

Break genelde programın sonlarında kullanılıyor olup programdan çıkmak adına kullanılır.

Görevide aynı şekilde döngüyü sonlandırmaktır ve her break bir döngü içerisinde olmalıdır.

Eğer değilse ; Python bize şu şekilde bir çıktı verecektir ;

SyntaxError : ‘break’ outside loop (Sözdizimihatası : ‘’break’’ döngü dışında…)

Continue Deyimi :

Eğer şart gerçekleşirse kendisinden sonra gelen herşeyi atlayıp döngünün başa dönmesini sağlar.

 

Örnek :

>>>if len(s) <=3:

>>>continue (Burada continue kullanımına dikkat ediniz.)

>>>print(“ …”)

>>>if s == “iptal” :

>>>break

Hata Yakalama :

Bir hesaplama işlemi yapan program yazdığınızda vb. kullanıcı sayı girdiği takdirde program çalışacaktır.Fakat kullanıcı bunun yerine başka bir veri girecek olursa , ya da içerisinde bir harf barındıran bir veri girecek olursa ne olur ?

Python bize hata gösterecektir.

Programlar illaki hata vereceklerdir fakat kullanıcıya hatanın neden olduğunu göstermek önemli olandır.

Hata Türleri

Programcı Hataları (Error) : Doğrudan programı yazan kişilerin hatasıdır.

Program Kusurları (Bug) : Özellikle matematiksel işlemlerde bug oluşur.Program düzgün çalışıyor gibidir ancak gizliden bir bug barındırıyor olabilir.

İstisnalar (Exception) : Bölme işlemi yapıyor olduğunuz bir programda kullanıcı veri tipi olarak harf girerse ve bu veri tipini int() türüne dönüştürme işlemine girerse burada bir hata meydana gelecektir.Ya da bir sayıyı 0’a ay da harfe bölmeye çalışacaktır ve program bize hata verecektir.

Try… Except…

Pythonda hata yakalama işlemleri için try.. except.. bloklarından yararlanılır.

Örnek:

>>>ilk_sayı = input (“ilk sayı :  ”)

>>>ikinci_sayı = input (“ikinci sayı : ”)

>>>try:

>>>sayı1= int(ilk_sayı)

>>>sayı2=int(ikinci_sayı)

>>>print(sayı1, “/”,sayı2 , “=” , sayı1/sayı2)

>>>except ValueError :

>>>print(“Lütfen sadece sayı giriniz : ”)

Mantık ;

Try :

Hata verebileceğini bildiğimiz kodlar

Except HataAdı :

Hata durumunda yapılacak işlem

Try .. Except .. As

Pythonda ortaya çıkan hata ve türü :

ValueError -> invalid literal for int() with base 10 : ‘f’ şeklindedir.

Burada ValueError hata türü adı , invalid … ‘f’ ise hata açıklaması kısmıdır.

Örnek :

Try :

………..

Except ValueError as hata :

Print (hata)

Burada Except falancaHata as Filanca yapısı kullanılarak falancaHata’yı filanca olarak isimlendiriyor ve daha sonra bu isi dilediğiniz gibi kullanabilirsiniz.

Try .. Except .. Else..

Yapı Örneği :

Try :

……..

Except ValueError :

Print (…..)

Else :

Try:

Print(….)

Except ZeroDivisionError :

Print(..)

Not : Buradaki kullanımın mantığı da try.. except.. bloğu içerisinde oluşacak sıkışıklık giderilmiş oluyor.Bu yapı mantığı güzel görünsede sürekli ya da bol bol kullanım sonucu programın dağılmasına ve kodlar üzerinde denetiminizi kaybetmenize sebep olabilir.

Try … Except… Finally….

Try :

…bir takım bilgiler

Except birHata :

….hata alınınca yapılacak işlemler

Finally :

…. Hata olsa da olmasa da yapılması gerekenler..

Not : En önemli özellik , hata gerçekleşsede gerçekleşmesede işletilecektir.Bu sebeple program içerisinde eğer mutlaka işletilmesi gereken bir kısım varsa  o kısmı finally … bloğu içerisinde yazabilirsiniz.

Örnek :

Try:

Dosya = open (“dosyaadı” , “r”)

….burada dosyayla bazı işlemler yapıyoruz…

…ve birden hata oluştu varsayalım..

Except IOError :

Print (“hata olustu”)

Finally :

Dosya.close

Finally içerisinde yazıldığından hata durumunda dosya güvenle kapatılacaktır.

Raise

Bazı durumlarda kullanıcının yaptığı bir işlem normal şartlar altında hata vermeyecek olsa bile biz ona ‘Python Tarzı’ bir hata mesajı göstermek istenilebilir.

Pythonın bize sunduğu deyimde : Raise’dir.

Bölünen = int (input(“bölünecek sayı : ”))

İf bölünen ==23 :

raise Exception (“Tekrar 23 sayısı girmeyin !!”)

bölen int(input(“bölen sayı: ”))

print (bölünen / bölen)

Not : Exception yerine her istenen ifade yazılamaz.Kullanılabilir örnek ifadeler , NameError , TypeError , ZeroDivisionError , IOError vb.

Bütün Hataları Yakalamak

Olası bütün hataları yakalamak adına da ;

Try:

…..birtakım işler….

Except:

…..hata mesajı…..

Python Dersleri -3 Sonuç :

Bugünki yazımızda Python Dersleri -3 adlı yazımızı sizlerle paylaştık.Bu yazımızla aslında pythona dair incelemelerimizi sürdürüyoruz.Birçok farklı alanda pythona dair bilgi bulabilirsiniz.Bizimkiside faydalı olması amacıyla bilgilerin incelenmesi üzerinedir.

İyi çalışmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.