Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Python Egitim Notlari – I

Python Egitim Notlari – I

Gönderim Ocak 27th, 2013

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[len(degisken)-1]
‘.’
>>> 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:
[Calistirilacak Komutlar]
Elif ifade:
[Calistirilacak Komutlar]
Else:
[Calistirilacak Komutlar]

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…

Etiketler:
Bulundugu Konu Etiketleri Python, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var