-
Bu videoda yapmak istediğim, size bir bilgisayar
-
programının ne olduğunu göstermek
-
ve bu kavrama giriş yapmaktır.
-
Eğer yaptıklarımı denemek isterseniz
-
--ki bunu şiddetle tavsiye ederim--
-
çünkü bilgisayar bilimini öğrenmenin gerçek yolu
-
kendi kendinize bir şeyleri gerçekten kurcalamaktır.
-
Bu, bir Python ortamı,
-
o nedenle, programlamayla ilgili birçok şeyi Python'da yapacağım.
-
Ve burası, bu ortamın adı da PyScripter.
-
P-Y-S-C-R-I-P-T-E-R.
-
Ücretsiz. Açık kaynak kodlu bir yazılım.
-
Ben Python kullanıyorum. Python ...
-
Sanırım Python 2.6 veya 2.7 kullanıyorum.
-
Siz de Python 2 kullandıkça,
-
örnekleriniz benimkiyle aynı olacak,
-
aynı biçimde çalışacak.
-
Fakat eğer Python 3 kullanıyorsanız
-
düzgün çalışması için biraz farklı varyasyonları
-
denemeniz gerekecek.
-
Yeri geldikçe bunlardan bahsetmeye çalışacağım.
-
Haydi şimdi kendimiz bir bilgisayar programı yazmaya başlayalım.
-
Bunun hoş yanı, bilgisayar
-
programımızı buraya yazabiliyor olmaktır.
-
Ve gerçekte yalnızca bir dosyada metni düzenleyerek...
-
Hepsi bu.
-
Bu bir komutlar dizisidir
-
ve bilgisayar en baştan başlayacaktır.
-
Bu dosyanın başından aşağı doğru gider
-
ve bu komutları okur.
-
Gerçi, ilerde göreceğiz,
-
öyle yollar var ki, bilgisayara komutları
-
atlatmayı ve komutlar arası döngüleri mümkün kılar,
-
öyle ki, bazı şeyler defalarca yapılabilir, bazılarıysa atlanabilir.
-
Şimdi, haydi birlikte basit bir program yazalım
-
ve bunu yaparken
-
bir bilgisayar programının içinde var olan
-
bazı çekirdek kavramlara odaklanalım.
-
Çok çok basit bir bilgisayar programı yazmama izin verin.
-
Öyle basit bir bilgisayar programı ki
-
yalnızca bir ifadeden oluşacak.
-
Onun için, yalnızca 'print 3+7' yazıyorum,
-
yani yalnızca 3+7'yi hesaplayacak ve bunu basacak.
-
3+7'yi, Python'la birlikte gelen print
-
fonksiyonuna iletecek.
-
Bunu, "print(3+7)" şeklinde yazabilirim.
-
Bunu kaydedelim. Tam anlamıyla yalnız bir tane...
-
dikkat ederseniz, yalnızca bir komut var
-
burada, üst satırda. O da "3+7'yi bas" diyor.
-
Hadi bari başka bir komut daha ekleyelim,
-
yalnızca yukardan aşağı gittiğini görebilesiniz diye.
-
Yeni bir tane ekliyorum: print(2-1)
-
Ve ardından şunu yazayım: Print("Bu bir metin külçesidir")
-
Haydi bu bilgisayar programının ne yapacağını
-
görelim.
-
Bunu kaydedeyim.
-
Müsaadenizle.
-
"testarea.py" olarak kaydettim. Yani şunu anlatıyor...
-
.py uzantısı bunun bir Python dosyası olduğunu belirtir.
-
Şimdi programı çalıştırıyorum.
-
Bu geliştirme ortamı ne kadar da hoş,
-
bu, IDE ya da Birleşik Geliştirme Ortamı,
-
programınızı aynı yerde yazıp çalıştırabildiğiniz bir tür.
-
Bu aynı zamanda metni renkli olarak kodlar,
-
böylelikle hangisi bir fonksiyondur, hangisi değildir, görürsünüz,
-
değişik veri türlerini...
-
birazdan veri türleriyle ilgili olarak ayrıntıya gireceğiz.
-
Haydi programı çalıştıralım ve ne olduğunu görelim.
-
İşte şuraya gittik ve çalıştırdık!
-
O da önce "on", sonra "bir" yazdı,
-
ardından da "Bu bir metin külçesidir".
-
Yani tam ona anlattığımız şeyi yaptı.
-
Ve bunu sırayla yaptı.
-
Burdan başladı, 3+7'yi 10 olarak hesapladı
-
ve bunu bastı, yani buraya 10 yazdı,
-
sonra da 2-1'i bastı
-
ve sonunda "Bu bir metin külçesidir"i...
-
Şimdi epey erken olarak size anlatmak istediğim şey,
-
veri türleri kavramı.
-
Gerçi bu örneği gördüğünüzde
-
farklı şeyler olduğunu
-
sezmiş olabilirsiniz.
-
3 var veya 2 veya 1 var veya 7 ve "Bu bir metin külçesidir" var.
-
Bu bir sayı... Yalnızca sayıları toplayabileceğimi sezerim.
-
Onlar bir tür çokluk, nicelik ifade ederler.
-
Buradaki ise bir metin külçesini temsil ediyor.
-
Sezginizin doğru çıkacağı belliydi.
-
Bunlar farklı veri türleri.
-
Üç, yedi ve bir... Bunlar sayısal karakterler.
-
Bu özel durumda ise, bunlar tamsayılardır.
-
Burada şey yapabilirsiniz...
-
Bu gerçekte bir katar.
-
Bilgisayar biliminde çokça duyacağınız bir kelime.
-
Bu gerçekte bir karakter katarına işaret ediyor.
-
Ve Python'da biz gerçekte bunların
-
hangi türde olduklarını sorabiliriz.
-
Bunları "type" fonksiyonuna gönderebilirsiniz.
-
Bu sayede 3+7'nin türünü yazması gerekir, "10" değil.
-
Şunu deneyelim. Farkı göstermek için, yalnızca "2-1"
yazacağım.
-
O zaman bu metin külçesinin türünü yazacak.
-
Bu metin külçesinin türünü.
-
Bunu kaydedelim. Yalnızca Ctrl-S tuşlarına bastım.
-
Kaydetmek için bir kısayol.
-
Şimdi bu programı çalıştırmayı deniyorum.
-
Buradan.
-
Bu ifadeyi hesapladı.
-
Hesaplamak için, içteki parantezden başlar.
-
3+7, 10'dur. Sonra 10'un türünü belirlemeyece çalışacak.
-
Türü int'tir, o nedenle bu türün adını "int" diye yazdı.
-
Burada görüyorsunuz. "Türü 'int'" diyor.
-
int, integer(tamsayı)nın kısaltılmışıdır.
-
Sonra print (2-1) diyor.
-
Bunu şu satırda yapıyor.
-
1 yazar
-
ve sonra şuradaki bütün şeyin türünü basar.
-
ve sonra şuradaki bütün şeyin türünü basar.
-
türünü basar. Ve bunun türü bir string (katar).
-
Şimdi size anlatmak istediğim sonraki konu,
-
--programları denemek suretiyle ilerlemekle ilgili--
-
değişken kavramı.
-
Çünkü yapmak isteyeceğimiz şeylerden biri,
-
bunları değişik yerlere depolamak olacaktır.
-
Gelecek videolarda öğreneceğiz ki, Python'da
-
bunlar için çok sayıda benzer etiketimiz olacak
-
ve bu etiketler değişebilecek.
-
Hadi görelim, bunları farklı türden etiketlere koyabiliriz.
-
Bu amaçla, değişkenleri kullanarak tümüyle farklı bir program yazalım.
-
Hadi... Python'un hoş yanı,
-
bazıları bundan hoşlanmasa da,
-
herhangi türden bir değişkene herhangi türden bir veriyi
koyabilmenizdir.
-
Dolayısıyla a=3+5 diyebilir,
-
ardından b=a*a-a-1
-
diyebilirsiniz (Not: *, "kere" anlamına gelir ve çarpım için kullanılır).
-
Ve sonra da c = a * b diyebilirsiniz.
-
Nihayet şöyle bir şey de...
-
Buralara boşluklar koyuyorum ki, biraz daha açık olsun.
-
c = a * b
-
Ardından, c'yi basalım diyebilirim.
-
Eğer isterseniz ilerleyebilir ve
-
c'nin nasıl bir şey olacağını belirlemeye çalışabilirsiniz
-
veya yalnızca programı çalıştırabiliriz.
-
Hadi ilkin programı çalıştıralım
-
ve ardından, gerçekten doğru
-
şeyi yaptığını görmek için geriye dönelim.
-
Şimdi programı kaydediyorum,
-
ve şimdi de çalıştırıyorum.
-
c için 440 elde ettik. Bakalım anlamlı mı.
-
3+5, 8'dir. O yüzden a etiketi 8'e işaret eder.
-
Böylece, programın herhangi bir yerinde, biz a'yı yeniden
tanımlayana kadar
-
herhangi bir anda a'yı kullandığımızda şunu söyler: a, 8'dir.
a, 8'e işaret etmektedir.
-
O yüzden, şuraya ilerlediğimizde b'yi tanımlarız.
-
Okey der, a*a. İşlemlerin öncelik sırasını kullanır.
-
İşlem önceliği bakımından önce çarpmalar yapılır.
-
Özellikle çıkarma ile karşılaştırırken.
-
O nedenle a * a, 64 olacaktır.
-
64 - a ise 64 - 8, yani 56'dır. Eksi 1, 55'tir.
-
Dolayısıyla b, 55'tir --ve c, a'ya eşit olacaktır (ki
8'dir)-- kere 55.
-
Ve 8 kere 55 gerçekten 440'tır.
-
Demek bunlar iş gördü.
-
Şimdi değişik a'lar için ne olduğunu
-
görmek isteyebilirsiniz.
-
Bunu deneyebilirsiniz.
-
Değişik a'lar için ne olacağını, yalnızca burayı değiştirerek
görebilirsiniz.
-
Sözgelimi, a'yı
-
-6 yapabiliriz.
-
Şimdi ne olduğunu görmek için programı çalıştıralım.
-
-246 elde ettik. Bunu kendi başınıza gerçekleyebilirsiniz.
-
Satır satır giderek ve bu değişkenlerin nelere işaret
-
etmek üzere tanımlandıklarını
-
ve o yanıtı alırsanız onu burada görürsünüz.
-
Şimdi, eğer programlar yalnızca bir dizi komuttan ibaret olsalardı
-
ve siz yalnızca dosdoğru giderseniz,
-
gerçekten ilginç şeyler yapabilmiş olmazsınız.
-
Gerçekten ilginç şeyler yapmak için, koşulsallar ve
-
döngüler gibi şeylere bakmaya başlamak gerekir.
-
Ve koşulsallar ile döngüler şuna benzer.
-
Bunu şöyle yapalım.
-
Şey... eğer... İlk satırları aynen bırakıyorum.
-
Ve "if (a<0):" diyoruz. Sözgelimi c'yi bastıracağız.
-
Ve "if" ya da "else:", bas... ya da başka bir şey... Biz (c-
a)'yı bastırıyoruz.
-
İşte bu ilginç. Burada ne olacağına ilişkin bir
-
fikriniz oluşmuş olabilir. Bunu kaydedelim.
-
Yalnızca bu koşulsallarla böylesi bir
-
şey yapabilmiş olmak müthiş! Bu şunu söylüyor:
-
a eğer 0'dan küçükse şunu yap,
-
aksi halde, eğer a, 0'dan küçük değilse bunu yap.
-
Demek ki dümdüz inmediğimize dikkat çekelim...
-
a nın 0'dan küçük olup olmamasına bağlı olarak
-
ya şu satırı çalıştıracak,
-
ya da bu satırı çalıştıracak.
-
Ve Python'un yalnızca bu satırı çalıştıracağını bilmesi,
-
(eğer a, 0'dan küçükse), bunun girintili olması sayesindedir.
-
Ve girinti bu cümleciğin bir parçası.
-
Yeni cümlecikler geleceğini anlamasını ise
-
şuradaki iki nokta üstüste işareti sağlıyor.
-
Dolayısıyla neyi çalıştıracağını bilmesini...
-
Bunlardan hiçbiri olmazsa
-
Eğer a 0'dan küçük değilse, "else" kısmına gelir.
-
Ve bundan sonra başka bir şey yapmak isterseniz,
-
(a'nın 0'dan küçük olup olmamasından bağımsız olarak)
-
girintiden kurtulmak suretiyle
-
cümlecikten çıkabilirsiniz.
-
Artık şunu bastırabiliriz:
-
"Program bitti".
-
Hadi bari bu cümleciğe bazı şeyler ekleyelim.
-
Şuraya "a<0" yazdıralım.
-
Dikkat: Bu hesaplanmayacak.
-
Bunu bir katarın içine yazdık.
-
O nedenle, bunu yalnızca basacak.
-
Ve sonra şuraya print("a sıfırdan küçük değil") yazdıralım.
-
Bu ilginç bir program. Hadi çalıştıralım. Tamam.
-
Umarım çalışır. Kaydettim. Şimdi programı çalıştıralım.
-
Ve "a<0" yazdı,
-
--biraz yukarı kaydırabiliriz--
-
Bastı. Programı çalıştıralım. "a<0" yazdı.
-
Böyle yaptı, çünkü bu cümlenin içindeydi.
-
Sonra bunu bastı. Ardından c'yi bastı (ki -246).
-
Bunu çalıştırmadı,
-
çünkü bunun yalnızca a, 0'dan küçük değilken çalışması
gerekiyor.
-
Fakat bu cümleciği atladı
-
ve her halükarda şunu basar:
-
"Program bitti"
-
Görmek için a'yı değiştirelim ve
-
öteki koşulu atlayabilecek miyiz görelim.
-
a'yı 0'dan büyük yapalım.
-
a'yı 9'a eşit kılalım ve programı çalıştıralım.
-
Şurada. a, 9. "a. 0'dan küçük mü?" diye soruyor.
-
Güzel; 9, 0'dan küçük değil.
-
O yüzden bunu çalıştırmayacak.
-
"else" cümleciğine gidecek.
-
Dolayısıyla "a, 0'dan küçük değil" yazacak.
-
O iş burada yapıldı. Sonra c-a basıldı,
-
ki 630. Bu cümleciği atlar.
-
Ve a'nın 0'dan küçük olup olmamasından bağımsız olarak
-
"Program bitti" yazar.