diff --git a/python/beginner/en/05.md b/python/beginner/en/05.md index e52d1e5..85cb7b6 100644 --- a/python/beginner/en/05.md +++ b/python/beginner/en/05.md @@ -25,7 +25,7 @@ print("Your number is "+str(my_number)) if(my_number > 100): - print("That's a big number!") + print("That's a big number!") elif(my_number > 90): print("Almost there!") else: diff --git a/python/beginner/en/07.md b/python/beginner/en/07.md index f7e5f33..a55b3eb 100644 --- a/python/beginner/en/07.md +++ b/python/beginner/en/07.md @@ -26,7 +26,7 @@ Now, anywhere you want to use a random number between 1 and 9, just use *dice(1, ```python secret_number = dice(1,9) ``` -4. Try to make the game now! Remember to use previous cards. If you're stuck, or when you're done,.you can check my answer at [dojo.soy/py-guess](http://dojo.soy/py-guess). Don't worry if yours looks very different, as long as it works. Good luck! +5. Try to make the game now! Remember to use previous cards. If you're stuck, or when you're done,.you can check my answer at [dojo.soy/py-guess](http://dojo.soy/py-guess). Don't worry if yours looks very different, as long as it works. Good luck! > # What did you think? You've finished this series of Sushi Cards. I'd love to know what you thought of them. If you have a few minutes, please let me know at [dojo.soy/py-beginner](http://dojo.soy/py-beginner) diff --git a/python/beginner/tr/01.md b/python/beginner/tr/01.md new file mode 100644 index 0000000..b498fc2 --- /dev/null +++ b/python/beginner/tr/01.md @@ -0,0 +1,25 @@ +1. Python olarak adlandırılan bir dil ile programlama ve oyun geliştirme öğreneceksiniz. +> ### Biliyor muydunuz? +Youtube ve Instagram gibi siteler Python ile oluşturulmuştur. + + Kodlamaya başlamadan önce, bilgisayarınızda Python yazabilmek ve çalıştırabilmek için bazı kurulumlar yapmanız gereklidir. Öncelikle bilgisayarınızda Python ve bir metin düzenleyicisi kurulmuş olmalı ve bir Python programının nasıl çalıştırılacağını bilmeniz gereklidir. + +2. Python kurmak için, şu bağlantıya gidin [dojo.soy/py-setup](http://dojo.soy/py-setup) ve *Download Python 3* butonuna tıklayın. *3*'ten sonra bazı başka sayılar da olacaktır, fakat bu sayılar burada yazabileceğimden çok sıkça değişmektedir. Bu sayılar konusunda endişe etmenize gerek yok. + + Python kurulum programı indikten sonra, bu programı başlatın ve kuruluma varsayılan (default) seçeneklerle devam edin. + +3. Şimdi, Python kodu yazabilmek için bir metin düzenleyicisine ihtiyacınız olacak. Biz Atom'u öneriyoruz ancak tabii ki alışık olduğunuz başka bir metin düzenleyicisi de kullanabilirsiniz. Atom'u buradan indirebilirsiniz: http://atom.io. + +4. Bu iki kurulumu yaptıktan sonra, başlamaya hazırsınız. Her şeyin çalışır olduğundan emin olmalı ve bir Python programı nasıl çalıştılır bilmelisiniz. Bunun için şu adımları takip ediniz: + * "Python Suşi Kartları" projeleriniz için yeni bir dizin oluşturun. + * Metin düzenleyicisini açın ve yeni bir dosya oluşturun. Bu dosyayı *beginner_sushi.py* adı ile yeni oluşturduğunuz dizine kaydedin. + * Open the command line on your computer (called *command prompt* on Windows and *Terminal* on Mac) and navigate to your folder using the *cd* command. + * Bilgisayarınızın komut dizini programını açın (windows için *komut dizini* ve Mac için *Terminal* olarak adlandırılır) ve proje dizininize *cd* komutu ile ulaşın. + * Komut dizini ile yeni oluşturduğunuz dizine gittikten sonra, az önce oluşturduğunuz içi boş *beginner_sushi.py* dosyasını çalıştırmak için şu komutu girin: + ```bash + python3 beginner_sushi.py + ``` + Eğer bu komut çalıştıysa, ekranda herhangi bir mesaj görmemelisinizdir. + > ### Bir programı çalıştırmak + Sonraki kartlarda bir programı *çalıştırmanız* istenecektir. + Bu tam olarak az önce yaptığımız şeydir: program dosyasını barındıran dizine gitmek ve *python3* komutu ile programın dosya ismini kullanarak programın çalışmasını sağlamak. diff --git a/python/beginner/tr/02.md b/python/beginner/tr/02.md new file mode 100644 index 0000000..71d71a6 --- /dev/null +++ b/python/beginner/tr/02.md @@ -0,0 +1,29 @@ +1. Artık ilk Python kodunuzu yazmaya başlamanın tam zamanı. Bilgisayarımızı *herkese merhaba* diyecek şekilde programlayacağız. Aşağıdaki kodu yeni oluşturduğunuz dosyanıza yazın: + ```python + print("Herkese merhaba") + ``` + Bu programı çalıştırın ve ne olacağını görün! + *"* içerisindeki yazıyı değiştirmeyi deneyin, örneğin isminizi ekleyip ve tekrar çalıştırın. +2. Şimdi başka bir satır ekleyelim: Kodunuzu şöyle görünecek şekilde değiştirin: + ```python + print("Herkese merhaba") + print("Kod seni çağırıyor. Hayatına girmesine izin ver.") + ``` + Programı tekrar çalıştırın. + Gördün mü? İkinci *print* fonksiyounundaki yazı(**string** olarak adlandırıyoruz) yeni bir satırda yazıldı. Böyle olmasının sebebi, print fonksiyonu çağrıldığında, bilgisayar şu talimatlara göre aksiyon alır: + * Parantez içerisindeki kodu oku ve sonucu anla + * Ne yazdırmaya çalıştığını anladığında, bunu ekrana yazdır (*print* olarak adlandırıyoruz) + * Satır sonuna görünmez bir “yeni bir satır başlat“ talimatı ekle. + +3. Peki bilgisayarın neden parantez içerisindeki kodu anlaması gerekir? Çünkü bilgisayar bu **string**i sizin vereceğiniz yazı parçalarını birleştirerek de oluşturabilir. + Şunu deneyelim! Aşağıdaki kodu kullanalım, ama "benim adım" yazan yere kendi ismimizi koyalım(ama *"* karakterini olduğu gibi bırakalım!): + ```python + name = "benim adım" + print("Merhaba "+name) + print("Kod seni çağırıyor. Hayatına girmesine izin ver.") + ``` + > ### "Merhaba"dan sonraki boşluk + Bir değişkenden önce boşluk yazmanız gerekir yoksa göreceğiniz şey "Merhababenim adım" olacaktır! Programlama dilleri Türkçe kurallarını bilmez. + +4. *name* adında bir **değişken** oluşturdunuz. Bu, bilgisayarın içinde, üzerinde bir etiket yazılı bir kutu gibidir. Bu kutu içerisine istediğiniz her bilgiyi koyabilirsiniz. Sonrasında, belirlediğiniz etiketi kullanarak python'un bu kutu içerisindeki bilgiyi almasını sağlayabilir ve kodunuz içerisinde istediğiniz gibi kullanabilirsiniz. Şimdiye kadar, *name* adında bir değişken oluşturdunuz ve içerisine *"[benim adım]"* bilgisini koydunuz. +Bir sonraki satırda, bu değişkeni önceden orada olan "Merhaba " **string**'inin sonuna *+* sembolü ile eklediniz. diff --git a/python/beginner/tr/03.md b/python/beginner/tr/03.md new file mode 100644 index 0000000..2dc7566 --- /dev/null +++ b/python/beginner/tr/03.md @@ -0,0 +1,36 @@ +1. Bilgisayarı *"Merhaba "*'nın sonuna kendi isminizi koyacak şekilde programlamak çok güzel, fakat neden sadece *"Merhaba [benim adım]"* yazmayalım? Çünkü bir **değişken** (**variable**) ile, bu değişkenin içerisinde hangi bilgiyi saklayacağınızı bilmek zorunda değilsiniz. Hatta bu değişkenin içerisine koyacağınız bilgiyi kullanıcıya dahi sorabilirsiniz. Python programınızı aşağıdaki kodu ile güncelleyiniz: + ```python + name = input("İsmin ne?") + print("Merhaba "+name) + print("Kod seni çağırıyor. Hayatına girmesine izin ver.") + ``` + Bu kodu çalıştırmayı deneyin. İsminizi girdikten sonra "Enter"a basmalısınız. + +2. Şimdi, kullanıcıdan bir sayı almayı deneyelim. Göreceksiniz ki *+* sembolünü bir değişkenin herhangi bir tarafında kullanabilirsiniz. + + Aşağıdaki programı çalıştırın, sorulan soruları cevaplayın ve ne olacağını görün. + ```python + name = input("İsmin ne?") + my_number = input("Merhaba "+name+", lütfen bir sayı seç.") + print("Seçtiğin sayı: "+my_number) + ``` +3. Peki ya bu sayıyı başka bir sayıyla toplamak isterseniz? Programınıza *my_number* değişkenine bir(1) ekleyecek bir satır ekleyelim. + ```python + name = input("İsmin ne?") + my_number = input("Merhaba "+name+" lütfen bir sayı seç.") + my_number = int(my_number) + 1 + print("Seçtiğin sayı: "+str(my_number)) + ``` + > Göreceğiniz üzere, sadece bir satırda bir değişkenin (*variable*) değerini aldık, değerini değiştirdik ve aynı değişkene(*variable*) geri koyduk. + + Şimdi, peki neden *my_number* değişkenimin etrafında *int( )* ve *str( )* var? + + Çünkü Python '1'i bir cümle içerisine konan '1' karakterinden farklı olarak, matematik işlemlerinde kullanılan sayı olarak düşünür. Bir değişkeni *int( )* içerisine almak, Python'a bu değişkeni bir **integer** (herhangi bir matematik sayısı) olarak işlemesini söyler ve aynı değişkeni *str( )* içerisine almak yazı **string** olarak işlemesini söyler. + + **Tamsayılar** (**integer**) ve **karakter dizileri** (**string**) değişken türleridir **types** ve bazı kod parçaları (örneğin *+* ve *print*) sadece doğru değişken türleri verildiğinde çalışır. + + > ### Matematiksel işlemler + Az önce toplama işlemini gördünüz. Buna ek olarak şu işlemleri de yapabilirsiniz: + * Çıkarma işlemi *-* + * Çarpma işlemi *** + * Bölme işlemi */* diff --git a/python/beginner/tr/04.md b/python/beginner/tr/04.md new file mode 100644 index 0000000..520a6cf --- /dev/null +++ b/python/beginner/tr/04.md @@ -0,0 +1,40 @@ +1. Python'a bir sayıyı başka bir sayıyla karşılaştırmasını söyleyebilirsiniz. Bu özellik oldukça kullanışlı olabilir. Bunu bazı özel karakterler kullanarak yapabiliriz: + * *a > b* *a* sayısının *b* sayısından büyük olma durumunu sorgular + * *a < b* *a* sayısının *b* sayısından küçük olma durumunu sorgular + * *a == b* *a* sayısının *b* sayısına eşit olma durumunu sorgular + * *a != b* *a* sayısının *b* sayısına eşit olmama durumunu sorgular + * *a >= b* *a* sayısının *b* sayısına eşit veya büyük olma durumunu sorgular + * *a <= b* *a* sayısının *b* sayısına eşit veya küçük olma durumunu sorgular + + > ### == +Değişkenlerin eşitliğini sorgulamak için çift eşitlik (**==**) kullanılır, çünkü tek eşitlik (**=**) önceden de kullandığımız üzere değişkenlere değer vermekte kullanılır. + +2. Bu karşılaştırmalar *if* komutları içerisinde kullanılır ve eğer sadece bu koşul doğruysa, belirli bir kod parçası çalıştırılır. Bizim örneğimizde eğer bu koşul doğruysa ekrana bazı yazılar yazdıracağız. + ```python + if(my_number > 100): + print("Bu büyük bir sayı!") + ``` + > ### Satır girintileri (Indentation) + *print* içinde bulunduğu *if* komutuna göre girintili (**indented**) yazılır. Bunun öncesinde dört adet boşluk koyulduğu anlamına geliyor. Python'un programınızı anlaması için bu girintilere ihtiyacı var. + +3. Şimdi, yukarıdaki kodu bir önceki karttaki kodumuzla birleştirelim. Programımızı şöyle görünecek şekilde değiştirelim: + ```python + name = input("İsmin ne?") + my_number = input("Merhaba "+name+" lütfen bir sayı seç") + my_number = int(my_number) + print("Seçtiğin sayı "+str(my_number)) + + if(my_number > 100): + print("Bu büyük bir sayı!") + ``` +Şimdi bu kodu çalıştıralım ve farklı sayılar girmeyi deneyelim, örneğin 100'den büyük ve küçük sayılar girelim ve ne olacağını görelim. Peki tam olarak 100 girdiğimizde ne olacaktır? +4. Birden fazla koşulu birbirleriyle *and* ve *or* operatörleri ile birleştirmemiz de mümkün. Mesela şöyle bir kod yazalım: + ```python + if(my_number >= 20 and my_number < 30): + print("Bu yirmili bir rakam!") + ``` + Veya, örneğin: + ```python + if(food == "Kek" or food == "Çikolata" or food == "Turta"): + print("Lezzetli!") + ``` diff --git a/python/beginner/tr/05.md b/python/beginner/tr/05.md new file mode 100644 index 0000000..881b35e --- /dev/null +++ b/python/beginner/tr/05.md @@ -0,0 +1,33 @@ +1. Peki ya kullanıcının verdiğinin sayının yeterince büyük olduğunu, değilse de olmadığını söylemek istersek? Örneğin 100'den büyük olma durumuna bakalım. O zaman, büyük bir sayı verdiği için kullanıcıyı kutlayalım veya aksi durumda uyaralım. Örneğin şöyle bir kod çalıştırmayı deneyelim: + ```python + name = input("İsmin ne?") + my_number = input("Merhaba "+name+" lütfen 100'den büyük bir sayı giriniz") + my_number = int(my_number) + print("Seçtiğin sayı: "+str(my_number)) + + if(my_number > 100): + print("Bu büyük bir sayı!") + else: + print("Bu küçük bir sayı!") + ``` + Burada *else* kontrolü *if* gibi çalışır ve "*if* içerisindeki koşul doğru değilse" koşulunu bekler. +2. Peki ya kullanıcıya sayıya yakın olup olmadığını söylemek isterseniz? Örneğin 90'ın üzerinde bir sayı girdiğimize yönelik bir kontrol ekleyelim. + Bu durumda *elif* kullanmanız gerekir. *elif* kontrolü *else* ve *if* kontrollerinin biraraya geldiği bir komuttur ve sadece *if* koşulu doğru değilse ve *elif* koşulu doğruysa gerçekleşir. Bu durumda, kullanıcıya yakın olup olmadığını söylemeniz için programa eklemeniz gereken şudur: + ```python + elif(my_number > 90): + print("Çok yaklaştın!") + ``` + Bu kodu eklememizle birlikte, programımızın son hali aşağıdaki gibidir. Dikkat edilmeli ki *elif* kontrolü *if* ve *else* kontrollerinin arasına gelmelidir. + ```python + name = input("İsmin ne?") + my_number = input("Merhaba "+name+" lütfen 100'den büyük bir sayı giriniz") + my_number = int(my_number) + print("Girdiğiniz sayı "+str(my_number)) + + if(my_number > 100): + print("Bu büyük bir sayı!") + elif(my_number > 90): + print("Çok yaklaştın!") + else: + print("Bu küçük bir sayı!") + ``` diff --git a/python/beginner/tr/06.md b/python/beginner/tr/06.md new file mode 100644 index 0000000..4bb80a4 --- /dev/null +++ b/python/beginner/tr/06.md @@ -0,0 +1,33 @@ +1. Şimdiye kadar kullanıcıdan bir sayı seçmesini isteyebiliyor, girilen sayının büyüklüğünü kontrol ediyor ve sayı yeteri kadar büyük değilse bunu kullanıcıya söyleyebiliyoruz. Peki ya kullanıcı doğru sayıyı girene kadar sormak istersek? *if* içerisine başka bir *if* yazabiliriz, ancak ya kullanıcı hala doğru büyüklükte bir sayı girmiyorsa? + İhtiyacınız olan şey kullanıcıya tekrar ve tekrar doğru cevap verene kadar aynı soruyu soracak bir kod parçası. Bilgisayar programlama da buna **döngü** (**loop**) deniyor. Bu durumda *while* döngüsü adı verilen döngüyü kullanmanız gerekecektir. +2. Bir *while* döngüsü *if* kontrolüne benzer: *while* döngüsü içerisindeki kod sadece parantez içerisindeki koşuk doğru ise çalışır. Tek farklı, *while* döngüsü koşul yanlış olana kadar tekrar ve tekrar çalışır. Bu sebeple, *while* döngüsünün biteceğinden emin olmanız gerekir yoksa döngü sonsuza kadar çalışacaktır. Şöyledir: + ```python + while(my_number < 100): + my_number = input("Merhaba "+name+" lütfen 100'den büyük bir sayı giriniz") + my_number = int(my_number) + ``` +3. Şimdi programımıza bir *while* döngüsü ekleyelim. + + ```python + name = input("İsmin ne?") + my_number = 0 + + # my_number 100'den küçük olduğu sürece döngü çalışacaktır + while(my_number < 100): + # Kullanıcıdan bir sayı girmesini isteyelim + my_number = input("Merhaba "+name+" lütfen 100'den büyük bir sayı giriniz") + # Kullanıcının cevabını string'den integer'a dönüştürelim + my_number = int(my_number) + print("Girdiğiniz sayı "+str(my_number)) + # Sayının 100'den büyük olup olmadığını kontrol edelim + if(my_number > 100): + print("Bu büyük bir sayı!"). + elif(my_number > 90): + print("Çok yaklaştın! Tekrar deneyin.") + else: + print("Bu küçük bir sayı! Tekrar deneyin.") + # Eğer sayı 100'den küçükse, tekrar başa dönelim + ``` + + > ### Yorumlar + Yorumlar bilgisayarın yoksaydığı, diğer programlayıcılar(veya daha sonra sizin için) için notlardır. Python programlama dilinde *#* ile başlar ve satır sonuna kadar gider. diff --git a/python/beginner/tr/07.md b/python/beginner/tr/07.md new file mode 100644 index 0000000..3e491b7 --- /dev/null +++ b/python/beginner/tr/07.md @@ -0,0 +1,32 @@ +1. Şimdiye kadar şunları öğrendiniz: + * *print* komutları: kullanıcı ile konuşmak + * değişkenler(variable): Programımızın değerleri hafızada tutması ve güncellemesi için bir yol + * karakter dizileri(string): Yazı parçacıkarı + * girdi (*input*): Kullanıcıdan bilgi almak için kullanılır + * matematik: Sayılar ile matematiksel işlemlerin yapılması + * tamsayılar(*integer*): matematiksel işlemlerin yapılabileceği sayılar + * *if* kontrolü: bir koşula göre belirli bir kod parçası çalıştırmak için kullanılır + * *while* döngüleri: Bir koşul yanlış olana kadar bir kod parçasını tekrar ve tekrar çalıştırmak + +2. Bu oyunu daha güzel bir hale getirmeye çalışalım: + * Program oyuncudan gizli olarak 1 ve 9 arasında bir tamsayı(*integer*) seçer + * Oyuncunun sayıyı tahmin etmek için 5 deneme şansı vardır + * Oyun oyuncuya kuralları öğretir + * Bilgisayar oyuncuya her deneme sonrası sayının küçük, büyük, doğru olup olmadığını ve kaç adet deneme şansı kaldığını söyler + * Eğer oyuncu sayıyı bulursa, ekranda özel bir kazanma mesajı görürler + * Eğer oyuncu 5inci denemesinde de yanılırsa oyun biter ve oyuncu oyunu kaybeder +3. Oyunun bir örneğini şu bağlantıya giderek görebilirsiniz [dojo.soy/py-dice](http://dojo.soy/py-dice). + +4. Bu oyunu yazmak için öğrenmediğiniz tek bir şey var: 1 ve 9 arasında rastgele bir sayı seçmek. Bunu yapabilmek için aşağıdaki kod parçasını kullanabilirsiniz. Bu kodun ayrıntıları sonraki Suşi Kartlarında açıklanacaktır. +Aşağıdaki kodu programızın **ilk satırı** olarak ekleyin: + ```python + from random import randint as dice + ``` +Şimdi, herhangi bir yerde 1 ve 9 arasında rastgele bir sayıya ihtiyacınız olduğunda, *dice(1,9)* kodunu kullanabilirsiniz. Örneğin: + ```python + secret_number = dice(1,9) + ``` +5. Şimdi bu oyunu yapmayı deneyin! Önceki kartları kullanmayı unutmayın. Takıldığın bir yer olursa, veya oyunu yazmayı bitirirsen, benim çözümümü şu bağlantıdan kontrol edebilirsin: [dojo.soy/py-guess](http://dojo.soy/py-guess). Eğer senin cevabın benimkinden çok farklı görünürse, program çalıştığı sürece endişelenmene gerek yok! Bol şans! + + > # Ne düşünüyorsun? + Bu Suşi Kartlarının sonuna geldin. Bu suşi kartları hakkında ne düşündüğünü bilmek isterim. Eğer birkaç dakikan varsa, bana şu bağlantıdan ulaşabilirsin: [dojo.soy/py-beginner](http://dojo.soy/py-beginner) diff --git a/python/beginner/tr/_data.json b/python/beginner/tr/_data.json new file mode 100644 index 0000000..828b57a --- /dev/null +++ b/python/beginner/tr/_data.json @@ -0,0 +1,65 @@ +{ + "01": { + "title": "Kurulum", + "filename": "01", + "language": "python", + "subject": "python", + "card_number": 1, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + }, + "02": { + "title": "İlk Python programı", + "filename": "02", + "language": "python", + "subject": "python", + "card_number": 2, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + }, + "03": { + "title": "Kullanıcı ile konuşmak", + "filename": "03", + "language": "python", + "subject": "python", + "card_number": 3, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + }, + "04": { + "title": "Karşılaştırma ve if kontrolleri", + "filename": "04", + "language": "python", + "subject": "python", + "card_number": 4, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + }, + "05": { + "title": "Farklı if kontrolleri", + "filename": "05", + "language": "python", + "subject": "python", + "card_number": 5, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + }, + "06": { + "title": "Döngüler", + "filename": "06", + "language": "python", + "subject": "python", + "card_number": 6, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + }, + "07": { + "title": "Hadi bir oyun yapalım!", + "filename": "07", + "language": "python", + "subject": "python", + "card_number": 7, + "series_total_cards": 7, + "series_title": "Python programlama diline giriş" + } +} diff --git a/python/beginner/tr/_sushi.json b/python/beginner/tr/_sushi.json new file mode 100644 index 0000000..c3e1657 --- /dev/null +++ b/python/beginner/tr/_sushi.json @@ -0,0 +1,47 @@ +{ + "serie_title": "Python programlama diline giriş", + "language": "tr", + "subject": "python", + "cards": [ + { + "title": "Kurulum", + "filename": "01", + "card_number": 1 + }, + { + "title": "İlk Python programı", + "filename": "02", + "card_number": 2 + }, + { + "title": "Kullanıcı ile konuşmak", + "filename": "03", + "card_number": 3 + }, + { + "title": "Karşılaştırma ve if kontrolleri", + "filename": "04", + "card_number": 4 + }, + { + "title": "Farklı if kontrolleri", + "filename": "05", + "card_number": 5 + }, + { + "title": "Döngüler", + "filename": "06", + "card_number": 6 + }, + { + "title": "Hadi bir oyun yapalım!", + "filename": "07", + "card_number": 7 + } + ], + "description": "Daha önce programlama yapmamış Ninjalar için Python programlama diline bir giriş.", + "difficulty": 1, + "author": "CoderDojo Foundation", + "website": "https://coderdojo.com", + "twitter": "CoderDojo" +}