top of page

Python Egitim Notlari - I

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • Jan 27, 2013
  • 6 min read

Egitimin birinci adiminda, Python'da cok sik bir sekilde kullanabilecegimiz komutlardan bahsetmeye calisacagim. Tabi bunlarla ilgili Tutorial'lara, kurmus oldugunuz Python paketleri icerisindeki The Python Tutorial.html icerisinden de ulasabilirsiniz. Bu egitimde baslangic olarak; karakter islemleri, sayisal islemler, liste islemleri, donguler, fonksiyonlar uzerinde bahsederken basit orneklerle de konulari pekistiriyor olacagiz.

Sayisal Islemler ;

- Python'da yapmis oldugunuz atama islemlerinde turlerini ogrenebilmemiz icin Type komutunu cok sikca kullanabiliyoruz. sayi = 5 dedikten sonra type(sayi) komutunu girdigimizde ekran ciktisi olarak bunun bize olusturdugumuz degiskenin tipinin int olarak geri donderdigini gormus oluyorsunuz. Boylelikle yapmis oldugunuz degiskenlerin tiplerini ogrenebilmek icin type komutu bize yardimci olacaktir. >>> sayi = 10 >>> type(sayi) <type 'int'> >>> isim = "nano" >>> type(isim) <type 'str'> - Python'da matematik islemleri oldukca basit bir sekilde yapilmaktadir. Python'da dort islem su sekildedir; >>> sayi1 = 10 >>> sayi2 = 5 >>> >>> sayi1 + sayi2 15 >>> sayi1 - sayi2 5 >>> sayi1 * sayi2 50 >>> sayi1 / sayi2 2 - Peki diger isimize yarayacak olan matematiksel islemlerde nasil bir yontem izliyor olacagiz. Ussel islemlerde iki yildiz yanyana koyup sayinizin kacinci kuvvetini almak istiyorsaniz onu belirtebilirsiniz. >>> sayi1**5 100000 >>> sayi2**2 25 - Bir sayinin modunu almak istiyorsanizda % isaretini kullanabilirsiniz. >>> sayi1%2 0 >>> sayi2%2 1 - Ascii islemlerinde ord() ve chr() komutlari kullanilmaktadir. >>> chr(65) 'A' >>> chr(118) 'v' >>> ord("s") 115 >>> ord(".") 46 - Karmasik sayi islemlerinde de yine Python oldukca basarili bir sekilde islemler yapmaktadir. Karmasik sayi islemlerinde a+bj seklinde islemler devam edecektir. Sayinin reel kismi icin reel() komutu kullanilirken imaginal kismi icinde imag() komutu kullanilmaktadir; >>> 1 + 2j (1+2j) >>> sayi = 1 + 2j >>> type(sayi) <type 'complex'> >>> sayi1 = 4+5j >>> sayi2 = 6-3j >>> sayi1 (4+5j) >>> sayi2 (6-3j) >>> sayi1 + sayi2 (10+2j) >>> sayi1 - sayi2 (-2+8j) >>> sayi1 * sayi2 (39+18j) >>> sayi1 / sayi2 (0.2+0.9333333333333333j) >>> sayi1 (4+5j) >>> sayi1.real 4.0 >>> sayi1.imag 5.0 >>> sayi1 (4+5j) >>> sayi1.conjugate() (4-5j) >>> sayi1 * sayi1.conjugate() (41+0j) - bin() komutu ile verilen int sayiyi banary'ye cevirebiliriz. Ayni sekilde Hex ve Oct komutlarida kullanilmaktadir. bin(7) 0b111 bin(6) 0b110 hex(9) 0x9 oct(5) 05

Karakter Islemleri ;

- Cift tirnaklarla yazdigimiz islemleri string olarak algilamaktadir. Tek tirnakla yazdigimiz islemleride karakter olarak tanimaktadir. Eger yazdiginiz metin icerisinde tek tirnak olursa bunu cumle icerisindeken \' seklinde kacis karakterini kullanabilirsiniz. Yazdiginiz degiskenin ilk karakterinin buyuk olmasini istiyorsaniz capitalize() komutunu kullanabilirsiniz. Tabi sadece tek kelime degil cumlenizin basinida buyutecektir. >>> degisken = "istanbul" >>> degisken.capitalize() 'Istanbul' >>> degisken = "istanbul guzeldir. siir gibidir." >>> degisken.capitalize() 'Istanbul guzeldir. siir gibidir.' - Cumlenizin icerisinden istediginiz karakteri arattirmak icin koseli parantezlerini kullanabilirsiniz. Tabi ilk karakterin sifir oldugunu unutmamaliyiz. Center() komutu ile yazdiginiz string'i ortaya alir, vermis oldugunuz karakterlerle stringin sagina ve soluna o karakterleri basacaktir. Count() komutu ile stringinizden istemis oldugunuz karakterin index'ini verecektir. Endswith() komutu ile string'inizin son karakterini kontrol edebileceksiniz. isDigit() komutu string'in integer bir deger olup olmadigini kontrol ederken, isAlpha() komutu da string'in tamamen string karakterlerden mi olustugunu kontrol eder. lJust() ve rJust() komutlari ile string'inizin sagina ve soluna istediginiz karakterleri ekleyebilirsiniz. >>> degisken = "istanbul guzeldir. siir gibidir." >>> degisken<10>

'u' >>> degisken<0:8>

'istanbul' >>> degisken<7:>

'l guzeldir. siir gibidir.' >>> degisken<:8>

'istanbul' >>> len(degisken) 32 >>> degisken

'.' >>> degisken = "antalya" >>> degisken.center(20) '      antalya       ' >>> degisken.center(20,'*') '******antalya*******' >>> degisken.count('a') 3 >>> degisken.count('a',2) 2 >>> degisken.count('a',2,5) 1 >>> degisken.endswith('a') True >>> degisken.endswith('y') False >>> degisken.endswith('a',2,3) False >>> degisken.find("a") 0 >>> degisken.index("tal") 2 >>> degisken.isdigit() False >>> degisken.isalpha() True >>> degisken.ljust(12) 'antalya     ' >>> degisken.rjust(15) '        antalya' >>> degisken.ljust(12,'*') 'antalya*****' >>> degisken.rjust(15,'-') '--------antalya' >>> yeni = "   nanonun gunlugu   " >>> yeni.lstrip() 'nanonun gunlugu   ' >>> yeni.rstrip() '   nanonun gunlugu' >>> yeni.strip() 'nanonun gunlugu' >>> cumle = " istanbul \ ... balikesir \ ... isparta \ ... izmir" >>> cumle ' istanbul balikesir isparta izmir'

Liste Islemleri ;

- Listeleri olustururken koseli parantezler icerisinde verilerimizi virgullerle ayirarak yaziyoruz. >>> liste = ["N","A","N","O"] >>> liste <'n', 'a', 'n', 'o'>

>>> virgul = ',' >>> virgul.join(liste) 'N,A,N,O' >>> isaret = '***' >>> isaret.join(liste) 'N***A***N***O' >>> dosya = "ilk satir \n ikinci satir \n ucuncu satir" >>> dosya.split("\n") <'ilk satir ', ' ikinci satir ', ' ucuncu satir'>

>>> liste = "abc1def1ghi1jkl1" >>> liste.split('1') <'abc', 'def', 'ghi', 'jkl', ''>

>>> ayrilmis = liste.split('1') >>> '1'.join(ayrilmis) 'abc1def1ghi1jkl1' >>> liste.split('1',2) <'abc', 'def', 'ghi1jkl1'>

>>> liste.zfill(20) '0000abc1def1ghi1jkl1' >>> cumle = "MacOsx de Python kurulumu ile Python egitimi baslayacaktir." >>> cumle.replace("MacOsx", "Linux") 'Linux de Python kurulumu ile Python egitimi baslayacaktir.' >>> cumle.replace("Python", "PyQt") 'MacOsx de PyQt kurulumu ile PyQt egitimi baslayacaktir.' Kullanicidan girdi almak icin Input() komutu kullanilir. Sayisal bir deger icin input() karaktersel bir deger girisi icin de raw_input() kullanilmaktadir. >>> giris = input("Bir sayi giriniz : ") Bir sayi giriniz : 7 >>> giris 7 >>> metingir = raw_input("Isminizi giriniz : ") Isminizi giriniz : sevda >>> metingir 'sevda'

Donguler

.py dosyalari icerisinde kodlarimizi yazarken ozellikle dongu ve fonksiyonlarda iki nokta ust uste ile komut satirini bitirdikten sonraki satirda tab tusunu kullanmayi aliskanlik haline getirmemiz gerekiyor. Eger ki tab tusu kullanilmazsa Python'un komut satirlari okurken kodlarimizda hata oldugunu gorecektir.

WHILE Kullanimi ;

While Ifade : calistirilacak kod1 calistirilacak kod2 Sevdanurs-MacBook-Pro:~ sevdanur$ vim toplama.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat toplama.py sayi = 1 toplam = 0 while sayi<10: toplam = sayi + toplam sayi = sayi + 1 print toplam Sevdanurs-MacBook-Pro:~ sevdanur$ python toplama.py 45 Sevdanurs-MacBook-Pro:~ sevdanur$ vim basamak_deger_toplama.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat basamak_deger_toplama.py toplam = 0 sayi = 5761 while sayi>0: toplam = toplam + (sayi % 10) sayi = sayi / 10 print toplam Sevdanurs-MacBook-Pro:~ sevdanur$ python basamak_deger_toplama.py 19 Sevdanurs-MacBook-Pro:~ sevdanur$ vim sayigir.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat sayigir.py sayi = int(raw_input("bir sayi giriniz : ")) while sayi != "-1": if sayi % 3 == 0: print "3e bolunuyor" else: print "3e bolunmuyor" sayi = int(raw_input("bir sayi giriniz : ")) Sevdanurs-MacBook-Pro:~ sevdanur$ python sayigir.py bir sayi giriniz : 10 3e bolunmuyor bir sayi giriniz : 6 3e bolunuyor Sevdanurs-MacBook-Pro:~ sevdanur$ vim sayigir.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat sayigir.py while True: sayi=int(raw_input("bir sayi giriniz : ")) if sayi == -1: break else: if sayi%3 == 0: print "3e bolunuyor" else: print "3e bolunmuyor" Sevdanurs-MacBook-Pro:~ sevdanur$ python sayigir.py bir sayi giriniz : 8 3e bolunmuyor bir sayi giriniz : 3 3e bolunuyor bir sayi giriniz : -1

IF Kullanimi ;

If Ifade:

Elif ifade:

Else:

Sevdanurs-MacBook-Pro:~ sevdanur$ vim merhabadunya.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat merhabadunya.py cumle = "merhaba" if cumle == "merhaba": print "esittir" if cumle == "dunya": print "esit degildir" Sevdanurs-MacBook-Pro:~ sevdanur$ python merhabadunya.py esittir

FOR Kullanimi ;

Sevdanurs-MacBook-Pro:~ sevdanur$ vim cumle.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat cumle.py cumle = "nanonun gunlugu" for karakter in cumle: print karakter Sevdanurs-MacBook-Pro:~ sevdanur$ python cumle.py n a n o n u n g u n l u g u Sevdanurs-MacBook-Pro:~ sevdanur$ vim ulke.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat ulke.py liste = ["Turkiye", "Almanya", "Fransa"] for ulke in liste: print ulke Sevdanurs-MacBook-Pro:~ sevdanur$ python ulke.py Turkiye Almanya Fransa

Donguler Ile Ilgili Ornek Uygulamalar

- Kullanicidan -1 girene kadar, string ifade alalim. Eger uzunlugu 3ten kucukse ekrana yazdirmasin degilse yazdirsin. Sevdanurs-MacBook-Pro:~ sevdanur$ vim k_dizisi.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat k_dizisi.py while True: s=raw_input("bir karakter dizisi giriniz : ") if s=="-1": break elif len(s)>3: print s else: continue Sevdanurs-MacBook-Pro:~ sevdanur$ python k_dizisi.py bir karakter dizisi giriniz : nano nano bir karakter dizisi giriniz : nur bir karakter dizisi giriniz : -1 - 1'den 10'a kadar olan 3 farkli sayidan carpimi 60 olan 3 sayiyi bulan bir uygulama yapalim. Ornek ekran ciktisi 2 5 6 olsun. Sevdanurs-MacBook-Pro:~ sevdanur$ vim bul.py Sevdanurs-MacBook-Pro:~ sevdanur$ cat bul.py for sayi1 in range(10): for sayi2 in range(10): for sayi3 in range(10): if sayi1*sayi2*sayi3 == 60: print sayi1,sayi2,sayi3 break else: continue break else: continue break Sevdanurs-MacBook-Pro:~ sevdanur$ python bul.py 2 5 6 - 1'den 100e kadar olan asal sayilari listeleyen uygulama; #1.si for sayi in range(2,100): for i in range(2,sayi): if sayi % i == 0: break else: print sayi," bir asal sayidir." #2.si for sayi in range(2,100): for i in range(2,int(sayi**0.5)+1): if sayi % i == 0: break else: print sayi," bir asal sayidir."

Fonksiyon Tanimlamalar :

- def anahtar kelimesi kullanilmaktadir. Kullanimi ise ; def fonksiyonu():   seklindedir. Burada yine iki nokta ust uste'den sonra tab kullanmaya ozen gostermemiz gerekmektedir. def fonksiyon(): print "benim fonksiyonum" fonksiyon() seklinde cagiririz. Deger dondurmek istersek eger return ifadesi ile yapariz. def fonksiyon2(): return "ikinci fonksiyonum" f=fonksiyon2() f yazdigimizda sonucu 'ikinci fonksiyonum' seklinde yazacaktir. def fonksiyon3(sayi): print 2*sayi fonksiyon3(5) yazarsak sonuc olarak 10 degerini dondurur. fonksiyon3("5") dedigimiz zaman degerleri yan yana birlestirerek yazacaktir. sonuc 55 olarak karsimiza getirecektir. - Gelen sayinin cift olup olmadigi kontrol edilmesi icin bir fonksiyon yazalim; def kontrol(sayi): if sayi % 2 == 0: return True else: return False - Kullanicidan deger girisi almak isterseniz; sayi = input("kontrol etmek istediginiz sayiyi giriniz...") if kontrol(sayi): print "2ye bolunuyor" else: print "2ye bolunmuyor" - Fonksiyona iki parametre gonderilmesi ise su sekildedir ; def bolunuyor_mu(sayi1,sayi2=1): print sayi1, sayi2 if (sayi1%sayi2) == 0: return True else: return False print bolunuyor_mu(14) print bolunuyor_mu(55,3) - Baska bir ornek verecek olursak; i = 5 def fonksiyon(x=i): print x fonksiyon() fonksiyon(4) i=6 fonksiyon()     #programin ciktisi 5 4 5 olarak cikacaktir. - Lambda degeri ; ust uste iki noktadan sonra dondurulmesi istenen degerleri yaziyoruz. fonk = lambda x:x+2 fonk(4) ciktisi 6'dir. ust_alma=lambda sayi:sayi**2 ust_alma(9) ciktisi 81'dir. - Rekursif islemler ; 1'den ne kadar olan sayilari rekursif olarak toplayan fonksiyon def toplama(n): if n==1: return 1 else: return n + toplama(n-1) print toplama(10) - Basit bir sayi bulma oyunu yapacak olursak; import random ile kutuphane ekleriz ; random.randint(100,200) Sayi bulma oyunu icin 0 ile 100 arasinda random ile bir sayi atiyor olacagiz. Kullanicidan surekli girdiler alip ve o sayiyi bulmaya calisiyor olacagiz. Girilen sayi tutulan sayidan kucukse daha buyuk sayi giriniz diyerek kullaniciya uyari versin, buyukse daha kucuk bir sayi giriniz diye kullaniciya uyari versin. Esitse program buldunuz mesajiyla sonlansin. import random def sayitut(sayi): tutulan = random.randint(0,1000) if (tutulan == sayi): print "sayiyi buldunuz" elif (tutulan<sayi): print "sayi kucuk" elif (tutulan>sayi): print "sayi kucuk" Keyifli Calismalar Dilerim...

Recent Posts

See All
Oracle Java Cloud Service Uygulamasi

Bir onceki Oracle Cloud Computing yazisinda bahsettigim gibi JDeveloper Oracle Cloud icin gelistirmis oldugu surumu olan Oracle JDeveloper 11g (11.1.1.6.0) ile kucuk bir uygulama gelistirip bunu oracl

 
 
 
Oracle Cloud Computing Hakkinda

Bulut bilisim konusundaki arastirmalarima devam ederken bu kez solugu Oracle Cloud Computing'de aldim. Bu makalem ve ilerleyen makalelerimde Trial versiyonu ile user tarafini pek yormayan bir yapidan

 
 
 
Nested Parallel Loops

Matrix Multiplication / Matrix Carpma islemlerini OpenMP araciligi ile paralel alanda nasil yapilabilecegini incelerken ayni zamanda for construct'larin nested parallel loops alaninda nasil calistigin

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page