Ljust
Bu metod karakter dizisinin sağında boşluk bırakarak,karakter dizisinin sola yaslanmasını sağlar.
>>> "python".ljust(10)
'python '
ikinci bir örnek ise
>>> "python".ljust(10,"*")
'python****'
şeklinde ek ifadeler ekleyebiliriz
Rjust
Bu metod karakter dizisinin solunda boşluk bırakarak,karakter dizisinin sağa yaslanmasını sağlar.
>>> "python".rjust(10,"*")
'****python'
Zfill
Bu metod da önceki işlediğimiz 2 metoda benzer bir görevi vardır.Zfill() metodu ile sayıların
soluna istedeğimiz kadar 0 yerleştirebiliriz
>>> x=7
>>> x="7"
>>> x.zfill(2)
'07'
şeklinde 0 sayısını eklememizi sağlar.
Replace
Bu metod python metodları içinde en çok işimize yarayacak metod olacak.replace() metodu ile bir
karakter dizisi içindeki karakterleri,başka bir karakter ile değiştirebiliriz.
>>> cumle="python dilini öğreniyorum"
>>> cumle.replace("i","ı")
'python dılını öğrenıyorum'
Startswith
Bu metod ile karakter dizilerimizin belli bir harfle veya karakterle başlayıp başlamadığını
öğrenebiliriz.
>>> x="elma"
>>> x.startswith("e")
True
>>> a="python"
>>> a.startswith("a")
False
Endswith
Bu metod da bir önceki metodun tam tersi görevi yapmaktadır.Yani bir karakter dizisinin hangi
karakter yada harfle bittiğini bulmamızı sağlar.
>>> x="python"
>>> x.endswith("p")
False
>>> x.endswith("n")
True
Count
Bu metod ile karakter dizimizin içerisinde bir karakterden kaç tane olduğunu bulmamızı sağlar.
>>> x="film,dizi,sinema"
>>> x.count("i")
4
Isalpha
Bu metod ile karakter dizimizin alfabetik olup olmadığını kontrol edebiliriz.
>>> x="python"
>>> x.isalpha()
True
>>> x="number1"
>>> x.isalpha()
False
İsdigit
Bu metod da bir önceki metodun ters işlemini yani girilen karakter dizsinin sayısal olup olmadığını
öğrenmemizi sağlar.
>>> x="123asd456"
>>> x.isdigit()
False
>>> x="456123789"
>>> x.isdigit()
True
Isalnum
Bu metod bir karakter dizisinin alfanümerik olup olmadığı hakkında bize bilgi verir.
>>> x="123asd456"
>>> x.isalnum()
True
>>> x="123/"
>>> x.isalnum()
False
Islower ve Isupper
Islower karakter dizisinin tamamının küçük harflerden oluşup oluşmadığını denetlememizi sağlar.
Isupper ise karakter dizisinin tamamının büyük harferden oluşup oluşmadığını denetlememizi sağlar.
>>> sehir="Bartın"
>>> sehir.islower()
False
>>> sehir="bartın"
>>> sehir.islower()
True
>>> sehir="Bartın"
>>> sehir.isupper()
False
>>> sehir="BARTIN"
>>> sehir.isupper()
True
Istitle
Bu metod ile karakter dizimizin ilk harfinin büyük olup olmadığını öğrenebiliriz.
>>> bolum="yönetim bilişim sistemleri"
>>> bolum.istitle()
False
>>> bolum="Yönetim bilişim sistemleri"
>>> bolum.istitle()
False
>>> bolum="Yönetim Bilişim Sistemleri"
>>> bolum.istitle()
True
Isspace
Bu metod ile karakter dizimizin boşluktan oluşup oluşmadığını denetleyebiliriz.
>>> x=" "
>>> x.isspace()
True
>>> x="Python Programlama Dili"
>>> x.isspace()
False
14 Aralık 2011 Çarşamba
10 Aralık 2011 Cumartesi
Karakter Dizi Metodları -1
Listeler konusunda bu konuya benzer bir konu işlemiştik.Ama artık pythonda ilerlediğimize göre
daha complex terimler göremenin vakti geldi.
Öcelikle göreceğimiz metodları ekrana yazdırmakla başlayalım
>>> dir("")
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__',
'__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser',
'capitalize', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format',
'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric',
'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip',
'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate',
'upper', 'zfill']
tabii bunların hepsini işlemeyceğiz.İşelemeyceklerimizi gruplandıracak olursak '__xxx__' şeklinde
önünde ve sonunda alt tire olanlardır.Çünkü bunlar özel metodlara girmektedir.Bunların farklı
kapsam alanları var.Bunların dışındaki metodları göreceğiz.
Capitalize
Bu metod ile cümlelerimizin,kelimelerimizin yada daha geniş kapsamıyla karakter dizilerinin ilk
harfini büyütmemize yardımcı oluyor.
>>> "python".capitalize()
'Python'
Upper
Bu metod ile küçük harflerden oluşan karakter dizisinin bütün harflerini büyültmemizi sağlıyor
>>> "python".upper()
'PYTHON'
Eğer bu metodda Türkçe karakter kullanırken hata alıyorsanız ayrıca birkaç işlem yapmamız gerekiyor.Örneğin
>>>"şennur".upper()
'\xc\x9fEKER'
gibi bir durum ile karşılaşıyorsanız
>>>import locale
>>>locale.setlocale(locale.LC_ALL,"")
şeklindek locale modülünü eklememiz gerekir.Ve sonra
>>>print u"şennur".upper()
'ŞENNUR'
burada kullandığımız u harfi unicode adlı bir veri tipini ifade ediyor.Şimdilik bunu dönüştürücü
şeklinde bilsek yeterli ileride göreceğiz zaten.
Lower
Bu metodda upper() metodunun tam tersini yani büyük harfi küçük harfe dönüştürüyor.
>>> "PYTHON".lower()
'python'
tıpkı upper metodunda da olduğu gibi Türkçe karakter sorunu için yine aynı işlemi yapmamız gerekecek.
Swapcase
Bu metod ise harfin o andaki durmunun tam ters haline dönüştürür.
>>> "PyThOn".swapcase()
'pYtHoN'
Title
capitalize() metodunun bütün kelimelerin baş harflerini büyük yapar.
>>> "python programlama öğreniyorum".title()
'Python Programlama Öğreniyorum'
Center
Karakter dizisinin sağında ve solunda programcının belirlediği sayı kadar boşluk bırakır.
>>> "python".center(12)
' python '
center() metodunun ikinci bir kullanımıda
>>> "python".center(12,"*")
'***python***'
şeklindede kullanabilmemizdir.
daha complex terimler göremenin vakti geldi.
Öcelikle göreceğimiz metodları ekrana yazdırmakla başlayalım
>>> dir("")
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__',
'__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser',
'capitalize', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format',
'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric',
'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip',
'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate',
'upper', 'zfill']
tabii bunların hepsini işlemeyceğiz.İşelemeyceklerimizi gruplandıracak olursak '__xxx__' şeklinde
önünde ve sonunda alt tire olanlardır.Çünkü bunlar özel metodlara girmektedir.Bunların farklı
kapsam alanları var.Bunların dışındaki metodları göreceğiz.
Capitalize
Bu metod ile cümlelerimizin,kelimelerimizin yada daha geniş kapsamıyla karakter dizilerinin ilk
harfini büyütmemize yardımcı oluyor.
>>> "python".capitalize()
'Python'
Upper
Bu metod ile küçük harflerden oluşan karakter dizisinin bütün harflerini büyültmemizi sağlıyor
>>> "python".upper()
'PYTHON'
Eğer bu metodda Türkçe karakter kullanırken hata alıyorsanız ayrıca birkaç işlem yapmamız gerekiyor.Örneğin
>>>"şennur".upper()
'\xc\x9fEKER'
gibi bir durum ile karşılaşıyorsanız
>>>import locale
>>>locale.setlocale(locale.LC_ALL,"")
şeklindek locale modülünü eklememiz gerekir.Ve sonra
>>>print u"şennur".upper()
'ŞENNUR'
burada kullandığımız u harfi unicode adlı bir veri tipini ifade ediyor.Şimdilik bunu dönüştürücü
şeklinde bilsek yeterli ileride göreceğiz zaten.
Lower
Bu metodda upper() metodunun tam tersini yani büyük harfi küçük harfe dönüştürüyor.
>>> "PYTHON".lower()
'python'
tıpkı upper metodunda da olduğu gibi Türkçe karakter sorunu için yine aynı işlemi yapmamız gerekecek.
Swapcase
Bu metod ise harfin o andaki durmunun tam ters haline dönüştürür.
>>> "PyThOn".swapcase()
'pYtHoN'
Title
capitalize() metodunun bütün kelimelerin baş harflerini büyük yapar.
>>> "python programlama öğreniyorum".title()
'Python Programlama Öğreniyorum'
Center
Karakter dizisinin sağında ve solunda programcının belirlediği sayı kadar boşluk bırakır.
>>> "python".center(12)
' python '
center() metodunun ikinci bir kullanımıda
>>> "python".center(12,"*")
'***python***'
şeklindede kullanabilmemizdir.
6 Aralık 2011 Salı
Python Hesap Makinesi
while True:
import math
try:
print("--------------------------------------------")
x=int(input("Toplama-->1\nÇıkarma-->2\nÇarpma-->3\nBölme-->4\n"
"Karakök-->5\nYüzde Alma-->6\nProgramdan Çıkma-->0\nTercihiniz:"))
print("--------------------------------------------")
if x==1:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
toplam=sayı1+sayı2
print("Sonuc= ",toplam)
if x==2:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
cikarma=sayı1-sayı2
print("Sonuc= ",cikarma)
if x==3:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
carp=sayı1*sayı2
print("Sonuc= ",carp)
if x==4:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
böl=sayı1/sayı2
print("Sonuc= ",böl)
if x==5:
sayı1=int(input("Sayıyı Giriniz "))
karakök=math.sqrt(sayı1)
print("Sonuc= ",karakök)
if x==6:
sayı1=int(input("Sayıyı Giriniz "))
sayı2=int(input("Yüzde kaç "))
yuzde=(sayı1*sayı2)/100
print("Sonuc= ",yuzde)
if x==0:
break
if x<0 or x>6:
continue
except ZeroDivisionError:
print("Lütfen paydayı 0'dan farklı bir sayı giriniz!")
except ValueError:
print("Lütfen sayısal ifadeler girin!")
import math
try:
print("--------------------------------------------")
x=int(input("Toplama-->1\nÇıkarma-->2\nÇarpma-->3\nBölme-->4\n"
"Karakök-->5\nYüzde Alma-->6\nProgramdan Çıkma-->0\nTercihiniz:"))
print("--------------------------------------------")
if x==1:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
toplam=sayı1+sayı2
print("Sonuc= ",toplam)
if x==2:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
cikarma=sayı1-sayı2
print("Sonuc= ",cikarma)
if x==3:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
carp=sayı1*sayı2
print("Sonuc= ",carp)
if x==4:
sayı1=int(input("Birinci sayı "))
sayı2=int(input("İkinci sayı "))
böl=sayı1/sayı2
print("Sonuc= ",böl)
if x==5:
sayı1=int(input("Sayıyı Giriniz "))
karakök=math.sqrt(sayı1)
print("Sonuc= ",karakök)
if x==6:
sayı1=int(input("Sayıyı Giriniz "))
sayı2=int(input("Yüzde kaç "))
yuzde=(sayı1*sayı2)/100
print("Sonuc= ",yuzde)
if x==0:
break
if x<0 or x>6:
continue
except ZeroDivisionError:
print("Lütfen paydayı 0'dan farklı bir sayı giriniz!")
except ValueError:
print("Lütfen sayısal ifadeler girin!")
4 Aralık 2011 Pazar
Hata Ayıklama(raise)
Pythonda yazdığımız bir programda normalde kullanıcınınyaptığı işlemlerde hata vermese bile biz
istersek kullanıcıya hata mesajı verebiliriz.
Mesala bir toplama işleminde 3 ile işlem yapmak istemiyorsanız,
sayi=int(input("Birinci sayı: "))
sayi1=int(input("İkinci sayı: "))
if (sayi or sayi1)==3:
raise Exception("Bu programda 3 sayısınız kullanamazsınız!!!")
else:
print(sayi+sayi1)
bu kodlamayı yapmalısınız.Bu ne işimize yarar sorusuna gelince o sizin hayal gücünüze bağlı :D
Şimdi raise ile hem mesaj verelim hemde pythonun hatasını yazdıralım:
try:
bölünen = int(input("bölünecek sayı: "))
bölen = int(input("bölen sayı: "))
print(bölünen/bölen)
except ZeroDivisionError:
print("bir sayıyı 0'a bölemezsiniz")
raise
bu kodumuzda önce sayıları karşılaştıracak,eğer bölen 0 değilse sonucu ekrana yazacak.Eğer bölen 0
ise önce "bir sayıyı 0'a bölemezsiniz" bizim mesajımızı ardından pythonun kendine özgü hata mesajını
ekrana verecektir.
istersek kullanıcıya hata mesajı verebiliriz.
Mesala bir toplama işleminde 3 ile işlem yapmak istemiyorsanız,
sayi=int(input("Birinci sayı: "))
sayi1=int(input("İkinci sayı: "))
if (sayi or sayi1)==3:
raise Exception("Bu programda 3 sayısınız kullanamazsınız!!!")
else:
print(sayi+sayi1)
bu kodlamayı yapmalısınız.Bu ne işimize yarar sorusuna gelince o sizin hayal gücünüze bağlı :D
Şimdi raise ile hem mesaj verelim hemde pythonun hatasını yazdıralım:
try:
bölünen = int(input("bölünecek sayı: "))
bölen = int(input("bölen sayı: "))
print(bölünen/bölen)
except ZeroDivisionError:
print("bir sayıyı 0'a bölemezsiniz")
raise
bu kodumuzda önce sayıları karşılaştıracak,eğer bölen 0 değilse sonucu ekrana yazacak.Eğer bölen 0
ise önce "bir sayıyı 0'a bölemezsiniz" bizim mesajımızı ardından pythonun kendine özgü hata mesajını
ekrana verecektir.
3 Aralık 2011 Cumartesi
Hata Ayıklama(except...as...)
Python'da hata mesajları 2 bölümden oluşur
1)Hatanın adı
2)Hatanın mesajı
Örneğin
ValueError: invalid literal for int() with base 10: 'x'
Burada "ValueError" bilidğimiz gibi hatanın adıdır."invalid literal for int() with base 10: 'x'"
kısmı ise hata mesajıdır.İstersek bizbu mesajı değiştirip kullanıcının anlayacağı şekle dönüştürebiliriz.
while True:
try:
x=int(input("Bir sayı Giriniz: "))
if x%2==0:
print("Girilen sayı çift sayıdır.")
else:
print("Girilen sayı tek sayıdır.")
except ValueError as hata:
print("Karakter Hatası\nPython'un verdiği hata:",hata)
kodumuzu açıklayacak olursak:
Kullanıcıdan bir sayı alan program,bu sayının 2'ye tam bölünüp bölünmedğini kontrol ediyor.Buradan
sonuç 0 ise if'in içindeki print ifadesini yazdırıyor.Eğer sonuç 0'dan farklı ise else ifadesi içindeki
print ifadesi içeriğini yazdırıyor.Eğer kullanıcı a,b,e,? gibi karakterler girerse son iki satırda
ValueError ile yakaladığımız yazım hatasını mesajını devreye koyuyor ve böylelikle kullanıcıyı
yönlendirmiş oluyor.
1)Hatanın adı
2)Hatanın mesajı
Örneğin
ValueError: invalid literal for int() with base 10: 'x'
Burada "ValueError" bilidğimiz gibi hatanın adıdır."invalid literal for int() with base 10: 'x'"
kısmı ise hata mesajıdır.İstersek bizbu mesajı değiştirip kullanıcının anlayacağı şekle dönüştürebiliriz.
while True:
try:
x=int(input("Bir sayı Giriniz: "))
if x%2==0:
print("Girilen sayı çift sayıdır.")
else:
print("Girilen sayı tek sayıdır.")
except ValueError as hata:
print("Karakter Hatası\nPython'un verdiği hata:",hata)
kodumuzu açıklayacak olursak:
Kullanıcıdan bir sayı alan program,bu sayının 2'ye tam bölünüp bölünmedğini kontrol ediyor.Buradan
sonuç 0 ise if'in içindeki print ifadesini yazdırıyor.Eğer sonuç 0'dan farklı ise else ifadesi içindeki
print ifadesi içeriğini yazdırıyor.Eğer kullanıcı a,b,e,? gibi karakterler girerse son iki satırda
ValueError ile yakaladığımız yazım hatasını mesajını devreye koyuyor ve böylelikle kullanıcıyı
yönlendirmiş oluyor.
Hata Ayıklama(continue-else...finaly)
continue ifadesi üzerinde fazla durmadan sadece 1 örnek vererek geçeceğim.
while True:
x=input("Bir sayı giriniz: ")
if x=="çıkış":
break
if len(x)<5:
continue
print("En fazla 5 heneli bir sayı girebilirsiniz...")
bu programda amaç kullanıcıdan en fazla 5 haneli bir sayı almak.5 haneyi geçecek bir sayı yazarsa
bunu "En fazla 5 heneli bir sayı girebilirsiniz..." şeklinde uyarmak.Eğer 5 haneden daha az girerse
continue ifadesi ile programın başına geri döenere bizden tekrar yeni bir sayı girmemizi isteyecek.
else...finally...
else...finally... ifade try... except... ifadesinin bir bakıma devemı niteliğindedir.
Mesala bir bölme işlemini yapan program yazdığımızı varsayalım.Kullanıcı bu programda sayıda
girebilir diğer karakterlerdende girebilir.Bunu önlemek için except ValueError: ifadesini
kullnıyorduk.Ama kullanıcı paydayı 0 girdi diyelim o zaman ne olacak.Hangi sayı 0'a bölünür Ki?
Tabiki burada python kendi çapındaki hata mesajını ekrana yansıtacak.İşte bunun gibi 1.hatadan
sonraki hataları yakalamak için else...finally... ifadesini kullanıyoruz.Şunu sorabilirsinizi:
"try...except... aynı işi yapmıyor mu?" Bu soruya yanıt evet olacaktır.Ama eğer kodlamamızda
hataları gruplamak istersek else...finally... tercih edebiliriz.else...finally bir özelliğide
...finally kodundan önce herhangi bir hata verse bile bu koddan sonraki işlemleri
hiç hata vermemiş gibi işletmesidir.Şimdi bu yazdıklarımızı örenkle açıklayalım.
Örneğimiz bölme işleminin yapan program kodlamasıdır
try:
bölünen = int(input("bölünecek sayı: "))
bölen = int(input("bölen sayı: "))
except ValueError:
print("Bir Hata Oluştu!")
else:
try:
bölme=bölünen/bölen
except ZeroDivisionError:
print("Bir sayıyı 0'a bölemezsiniz!")
finally:
print(bölme)
while True:
x=input("Bir sayı giriniz: ")
if x=="çıkış":
break
if len(x)<5:
continue
print("En fazla 5 heneli bir sayı girebilirsiniz...")
bu programda amaç kullanıcıdan en fazla 5 haneli bir sayı almak.5 haneyi geçecek bir sayı yazarsa
bunu "En fazla 5 heneli bir sayı girebilirsiniz..." şeklinde uyarmak.Eğer 5 haneden daha az girerse
continue ifadesi ile programın başına geri döenere bizden tekrar yeni bir sayı girmemizi isteyecek.
else...finally...
else...finally... ifade try... except... ifadesinin bir bakıma devemı niteliğindedir.
Mesala bir bölme işlemini yapan program yazdığımızı varsayalım.Kullanıcı bu programda sayıda
girebilir diğer karakterlerdende girebilir.Bunu önlemek için except ValueError: ifadesini
kullnıyorduk.Ama kullanıcı paydayı 0 girdi diyelim o zaman ne olacak.Hangi sayı 0'a bölünür Ki?
Tabiki burada python kendi çapındaki hata mesajını ekrana yansıtacak.İşte bunun gibi 1.hatadan
sonraki hataları yakalamak için else...finally... ifadesini kullanıyoruz.Şunu sorabilirsinizi:
"try...except... aynı işi yapmıyor mu?" Bu soruya yanıt evet olacaktır.Ama eğer kodlamamızda
hataları gruplamak istersek else...finally... tercih edebiliriz.else...finally bir özelliğide
...finally kodundan önce herhangi bir hata verse bile bu koddan sonraki işlemleri
hiç hata vermemiş gibi işletmesidir.Şimdi bu yazdıklarımızı örenkle açıklayalım.
Örneğimiz bölme işleminin yapan program kodlamasıdır
try:
bölünen = int(input("bölünecek sayı: "))
bölen = int(input("bölen sayı: "))
except ValueError:
print("Bir Hata Oluştu!")
else:
try:
bölme=bölünen/bölen
except ZeroDivisionError:
print("Bir sayıyı 0'a bölemezsiniz!")
finally:
print(bölme)
2 Aralık 2011 Cuma
Hata Ayıklama(pass)
pass ifadesi Türkçe anlamı geçmektir.Pythonda kullanım bakımından
bu anlama benzemektedir:Görmezden gelmek
Bir örnek açıklayalım
Programımız kalvyeden girilen 10'dan küçük 5 sayının kareleri toplamını bulan programı yazalım
sayac=1
toplam=0
while sayac<=5: sayac=sayac+1 x=int(input("1'den 10'a kadar bir sayı giriniz: ")) if x>10:
pass
else:
toplam=toplam+x*x
print("Girilen sayıların KARELERİ TOPLAMI: ",toplam)
şimdi kodumuzu açıklamaya başlayalım.pass ifadesine kadar olan kısım önceki konudaki programa
benziyor.Program bizden bir sayı alıyor sonra bu sayının 10'dan büyük mü olduğunu kontrol ediyor,
eğer büyükse pass ile hiçbir işlem yapmadan sizden tekrar bir sayı girmenizi istiyor,eğer girdiğiniz
sayı 10'dan küçükse pass ifadesini atlayarak else kısmındaki kodları çalıştırarak girilen
sayıların karelerinin toplamını alıp ekrana yazıyor.
bu anlama benzemektedir:Görmezden gelmek
Bir örnek açıklayalım
Programımız kalvyeden girilen 10'dan küçük 5 sayının kareleri toplamını bulan programı yazalım
sayac=1
toplam=0
while sayac<=5: sayac=sayac+1 x=int(input("1'den 10'a kadar bir sayı giriniz: ")) if x>10:
pass
else:
toplam=toplam+x*x
print("Girilen sayıların KARELERİ TOPLAMI: ",toplam)
şimdi kodumuzu açıklamaya başlayalım.pass ifadesine kadar olan kısım önceki konudaki programa
benziyor.Program bizden bir sayı alıyor sonra bu sayının 10'dan büyük mü olduğunu kontrol ediyor,
eğer büyükse pass ile hiçbir işlem yapmadan sizden tekrar bir sayı girmenizi istiyor,eğer girdiğiniz
sayı 10'dan küçükse pass ifadesini atlayarak else kısmındaki kodları çalıştırarak girilen
sayıların karelerinin toplamını alıp ekrana yazıyor.
1 Aralık 2011 Perşembe
Hata Ayıklama(break)
Python'da break özel bir deyimdir.Bu deyim ile devam etmekte olan bir programı kesintiye uğratabiliriz.
Daha öncede kullandğımız bu deyim programın belli bir yerinden sonra,programı sonlandırmamızı
sağlıyordu.
Şimdi ise bunu hata yakalamada kullanacağız.
Örneğin;
Klavyeden girilen 5 sayının 10'dan küçük sayıların toplamını bulan programı kodlayalım
sayac=1
toplam=0
while sayac<=5: sayac=sayac+1 try: sayi=int(input("sayı :")) if sayi<=10: print ("Girilen sayı-->",sayi)
toplam=toplam+sayi
print("Girilen sayılarn toplamı: ",toplam)
else:
print("Girilen sayı 10'dan büyüktür,lütfen 10'dan küçük sayı giriniz.")
continue
except ValueError:
break
Şimdi bu kodu açıklayalım.Kodda daha önceden görmediğimiz hiç yeni kod yok.
İlk öncelikle bir "sayac" şeklinde bir değişken belirledim.Bunun nedeni ise programın bizden 5 tane
sayı aldığında programdan çıkmamazı sağlayacak."continue" komutuyla her girdiğimiz sayıda başa dönmesini
sağladık.Buraya kadar her şey çok güzel.Kullanıcı olduda yanlışlıka "a" harfi yada "3e" gibi bir şey yazdı.
Bunun neticesinde hiçbir uyarı almadan programdan çıkacaktır ve programı yeniden başlatması gerekecektir.
Daha öncede kullandğımız bu deyim programın belli bir yerinden sonra,programı sonlandırmamızı
sağlıyordu.
Şimdi ise bunu hata yakalamada kullanacağız.
Örneğin;
Klavyeden girilen 5 sayının 10'dan küçük sayıların toplamını bulan programı kodlayalım
sayac=1
toplam=0
while sayac<=5: sayac=sayac+1 try: sayi=int(input("sayı :")) if sayi<=10: print ("Girilen sayı-->",sayi)
toplam=toplam+sayi
print("Girilen sayılarn toplamı: ",toplam)
else:
print("Girilen sayı 10'dan büyüktür,lütfen 10'dan küçük sayı giriniz.")
continue
except ValueError:
break
Şimdi bu kodu açıklayalım.Kodda daha önceden görmediğimiz hiç yeni kod yok.
İlk öncelikle bir "sayac" şeklinde bir değişken belirledim.Bunun nedeni ise programın bizden 5 tane
sayı aldığında programdan çıkmamazı sağlayacak."continue" komutuyla her girdiğimiz sayıda başa dönmesini
sağladık.Buraya kadar her şey çok güzel.Kullanıcı olduda yanlışlıka "a" harfi yada "3e" gibi bir şey yazdı.
Bunun neticesinde hiçbir uyarı almadan programdan çıkacaktır ve programı yeniden başlatması gerekecektir.
Kaydol:
Kayıtlar (Atom)