Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion python/beginner/en/05.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion python/beginner/en/07.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
25 changes: 25 additions & 0 deletions python/beginner/tr/01.md
Original file line number Diff line number Diff line change
@@ -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.
29 changes: 29 additions & 0 deletions python/beginner/tr/02.md
Original file line number Diff line number Diff line change
@@ -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.
36 changes: 36 additions & 0 deletions python/beginner/tr/03.md
Original file line number Diff line number Diff line change
@@ -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 */*
40 changes: 40 additions & 0 deletions python/beginner/tr/04.md
Original file line number Diff line number Diff line change
@@ -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!")
```
33 changes: 33 additions & 0 deletions python/beginner/tr/05.md
Original file line number Diff line number Diff line change
@@ -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ı!")
```
33 changes: 33 additions & 0 deletions python/beginner/tr/06.md
Original file line number Diff line number Diff line change
@@ -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.
32 changes: 32 additions & 0 deletions python/beginner/tr/07.md
Original file line number Diff line number Diff line change
@@ -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)
65 changes: 65 additions & 0 deletions python/beginner/tr/_data.json
Original file line number Diff line number Diff line change
@@ -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ş"
}
}
Loading