http___programarcadegames.com_index.php_lang_tr_chapter_python_as_calculator_1.xml
1.1 2.1 3.1 3.2 3.3 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 5.1 6.1 6.2 6.3 6.4 7.1 7.2 7.3 8.1 8.2 8.3 9.1 9.2 10.1 11.1 12.1 13.1 13.2 13.3 14.1 15.1 15.2 16.1 17.1 17.2 18.1 19.1 19.2 19.3 19.4 19.5 20.1 20.2 20.3 21.1 22.1 22.2 23.1 24.1 25.1 25.2 25.3 25.4 26.1 27.1 27.2 28.1 28.2 28.3 28.4 29.1 29.2 30.1 30.2 30.3 30.4 31.1 31.2 32.1 32.2 32.3 32.4 32.5 33.1 34.1 34.2 35.1 36.1 36.2 36.3 37.1 38.1 39.1 39.2 39.3 39.4 39.5 40.1 40.2 41.1 41.2 41.3 42.1 42.2 42.3 42.4 42.5 43.1 44.1 44.2 45.1 46.1 47.1 48.1 48.2 48.3 49.1 49.2 49.3 50.1 50.2 50.3 51.1 52.1 52.2 53.1 54.1 54.2 54.3 55.1 55.2 55.3 55.4 56.1 57.1 58.1 58.2 59.1 59.2 60.1 60.2 61.1 61.2 62.1 62.2 63.1 63.2 64.1 64.2 64.3 65.1 66.1 66.2 66.3 67.1 68.1 69.1 69.2 69.3 70.1 70.2 71.1 71.2 71.3 72.1 72.2 72.3 73.1 74.1 74.2 75.1 75.2 76.1 77.1 78.1 78.2 79.1 80.1 80.2 81.1 81.2 81.3 82.1 82.2 82.3 83.1 84.1 84.2 85.1 85.2 86.1 86.2 87.1 88.1 89.1 89.2 89.3 90.1 90.2 90.3 90.4 90.5 90.6 90.7 90.8 90.9 90.10 91.1 92.1 93.1 94.1 95.1 97.1 98.1 98.2 99.1 100.1 101.1 102.1 103.1 104.1 105.1 106.1 107.1 108.1 109.1
Program Arcade GamesWith Python And Pygame Chapter 3: Quiz Games and If Statements How do we tell if a player has beat the high score? How can we tell if he has run out of lives? How can we tell if she has the key required to open the locked door? What we need is the if statement. The if statement is also known as a conditional statement. (You can use the term “conditional statement” when you want to impress everyone how smart you are.) The if statement allows a computer to make a decision. Is it hot outside? Has the spaceship reached the edge of the screen? Has too much money been withdrawn from the account? A program can test for these conditions with the if statement. 3.1 Basic Comparisons Here are a few examples of if statements. The first section sets up two variables (a and b) for use in the if statements. Then two if statements show how to compare the variables to see if one is greater than the other. Press the “Step” button and see how the computer evaluates the code. Since a is less than b, the first statement will print out if this code is run. If the variables a and b were both equal to 4, then neither of the two if statements above would print anything out. The number 4 is not greater than 4, so the if statement would fail. To show the flow of a program a flowchart may be used. Most people can follow a flowchart even without an introduction to programming. See how well you can understand Figure 3.1. This book skips an in-depth look at flowcharting because it is boring. But if you want to be a superstar programmer, please read more about it at: http://en.wikipedia.org/wiki/Flowchart The prior example checked for greater than or less than. Numbers that were equal would not pass the test. To check for a values greater than or equal, the following examples show how to do this: if a  = b: print("a is greater than or equal to b") The  = symbols must be used in order, and there may not be a space between them. For example, =< will not work, nor will < =. When writing these statements out on a test, some students like to use the ≤ symbol. For example: if a ≤ b: This ≤ symbol doesn't actually work in a program. Plus most people don't know how to easily type it on the keyboard. (Just in case you are curious, to type it hold down the 'alt' key while typing 243 on the number pad.) So when writing out code, remember that it is <= and not ≤. Many people lose points on tests for this reason; don't be that person. The next set of code checks to see if two items are equal or not. The operator for equal is == and the operator for not equal is !=. Here they are in action. # Equal if a == b: print("a is equal to b") # Not equal if a != b: print("a and b are not equal") It is very easy to mix up when to use == and =. Use == if you are asking if they are equal, use = if you are assigning a value. The two most common mistakes in mixing the = and == operators are demonstrated below: # This is wrong a == 1 # This is also wrong if a = 1: print("A is one") Stop! Please take a moment to go back and carefully study the last two code examples. Save time later by making sure you understand when to use = and ==. Don't guess. 3.2 Indentation Indentation matters. Each line under the if statement that is indented will only be executed if the statement is true: if a == 1: print("If a is one, this will print.") print("So will this.") print("And this.") print("This will always print because it is not indented.") Indentation must be the same. This code doesn't work. if a == 1: print("Indented two spaces.") print("Indented four. This will generate an error.") print("The computer will want you to make up your mind.") Once an if statement has been finished, it is not possible to re-indent to go back to it. The test has to be performed again. if a == 1: print("If a is one, this will print.") print("So will this.") print("This will always print because it is not indented.") print("This will generate an error. Why it is indented?") 3.3 Using And/Or An if statement can check multiple conditions by chaining together comparisons with and and or. These are also considered to be operators just like + or - are. # And if a < b and a < c: print("a is less than b and c") # Non-exclusive or if a < b or a < c: print("a is less than either b or c (or both)") A common mistake is to omit a variable when checking it against multiple conditions. The code below does not work because the computer does not know what to check against the variable c. It will not assume to check it against a. # This is not correct if a < b or < c: print("a is less than b and c") 3.4 Boolean Variables Python supports Boolean variables. What are Boolean variables? Boolean variables can store either a True or a value of False. Boolean algebra was developed by George Boole back in 1854. If only he knew how important his work would become as the basis for modern computer logic! An if statement needs an expression to evaluate to True or False. What may seem odd is that it does not actually need to do any comparisons if a variable already evaluates to True or False. # Boolean data type. This is legal! a = True if a: print("a is true") Back when I was in school it was popular to say some false statement. Wait three seconds, then shout “NOT!” Well, even your computer thinks that is lame. If you are going to do that, you have to start with the not operator. The following code uses the not to flip the value of a between true and false. # How to use the not function if not(a): print("a is false") Because not is an operator and not a function, the parentheses aren't necessary. This is also legal: # How to use the not function if not a: print("a is false") It is also possible to use Boolean variables with and and or operators. a = True b = False if a and b: print("a and b are both true") It is also possible to assign a variable to the result of a comparison. In the code below, the variables a and b are compared. If they are equal, c will be True, otherwise c will be False. a = 3 b = 3 # This next line is strange-looking, but legal. # c will be true or false, depending if # a and b are equal. c = a == b # Prints value of c, in this case True print(c) It is possible to create an if statement with a condition that does not evaluate to true or false. This is not usually desired, but it is important to understand how the computer handles these values when searching for problems. The statement below is legal and will cause the text to be printed out because the values in the if statement are non-zero: if 1: print("1") if "A": print("A") The code below will not print out anything because the value in the if statement is zero which is treated as False. Any value other than zero is considered true. if 0: print("Zero") In the code below, the first if statement appears to work. The problem is that it will always trigger as true even if the variable a is not equal to b. This is because b by itself is considered true. a = "c" if a == "B" or "b": print("a is equal to b. Maybe.") # This is a better way to do the if statement. if a == "B" or a == "b": print("a is equal to b.") 3.5 Else and Else If Below is code that will get the temperature from the user and print if it is hot. temperature = int(input("What is the temperature in Fahrenheit? ")) if temperature > 90: print("It is hot outside") print("Done") If the programmer wants code to be executed if it is not hot, she can use the else statement. Notice how the else is lined up with the i in the if statement, and how it is followed by a colon just like the if statement. In the case of an if...else statement, one block of code will always be executed. The first block will be executed if the statement evaluates to True, the second block if it evaluates to False. temperature = int(input("What is the temperature in Fahrenheit? ")) if temperature > 90: print("It is hot outside") else: print("It is not hot outside") print("Done") It is possible to chain several if statements together using the else...if statement. Python abbreviates this as elif. temperature = int(input("What is the temperature in Fahrenheit? ")) if temperature > 90: print("It is hot outside") elif temperature < 30: print("It is cold outside") else: print("It is not hot outside") print("Done") In the code below, the program will output “It is hot outside” even if the user types in 120 degrees. Why? How can the code be fixed? If you can't figure it out, see the video. temperature = int(input("What is the temperature in Fahrenheit? ")) if temperature > 90: print("It is hot outside") elif temperature > 110: print("Oh man, you could fry eggs on the pavement!") elif temperature < 30: print("It is cold outside") else: print("It is ok outside") print("Done") 3.6 Text Comparisons It is possible to use an if statement to check text. user_name = input("What is your name? ") if user_name == "Paul": print("You have a nice name.") else: print("Your name is ok.") The prior example will only match if the user enters “Paul”. It will not work if the user enters “paul” or “PAUL”. A common mistake is to forget the quotes around the string being compared. In the example below, the computer will think that Paul is a variable that stores a value. It will flag an error because it has no idea what is stored in the variable Paul. user_name = input("What is your name? ") if user_name == Paul: # This does not work because quotes are missing print("You have a nice name.") else: print("Your name is ok.") 3.6.1 Multiple Text Possibilities When comparing a variable to multiple possible strings of text, it is important to remember that the comparison must include the variable. For example: # This does not work! It will always be true if user_name == "Paul" or "Mary": Instead, the code should read: # This does work if user_name == "Paul" or user_name == "Mary": This is because any value other than zero, the computer assumes to mean True. So to the computer "Mary" is the same thing as True and so it will run the code in the if statement. 3.6.2 Case Insensitive Comparisons If the program needs to match regardless as to the case of the text entered, the easiest way to do that is to convert everything to lower case. This can be done with the lower command. The example below will take whatever the user enters, convert it to lower case, and then do the comparison. Important: Don't compare it against a string that has uppercase. If the user input is converted to lowercase, then compared against uppercase letters, there is no way a match can occur. user_name = input("What is your name? ") if user_name.lower() == "paul": print("You have a nice name.") else: print("Your name is ok.") 3.7 Example if Statements The next set of example code below runs through all the concepts talked about earlier. The on-line video traces through each line of code and explains how it works In the video I use an integrated development editor (IDE) called Eclipse. The default version of Eclipse doesn't work with Python, but the PyDev version does. The PyDev editor is available for free from: http://pydev.org/ The editor is complex, but it has many options and can be a powerful environment to work in. Some programmers like using environments such as PyDev that can have so many plug-ins that will do everything but bring you coffee. Some developers prefer a minimalistic environment that doesn't “get in the way.” # Sample Python/Pygame Programs # Simpson College Computer Science # http://programarcadegames.com/ # http://simpson.edu/computer-science/ # Explanation video: http://youtu.be/pDpNSck2aXQ # Variables used in the example if statements a = 4 b = 5 c = 6 # Basic comparisons if a   b: print("a is greater than than b") if a  = b: print("a is greater than or equal to b") # NOTE: It is very easy to mix when to use == and =. # Use == if you are asking if they are equal, use = # if you are assigning a value. if a == b: print("a is equal to b") # Not equal if a != b: print("a and b are not equal") # And if a   90: print("It is hot outside") print("Done") # Example 2: Else statement temperature = int(input("What is the temperature in Fahrenheit? ")) if temperature > 90: print("It is hot outside") else: print("It is not hot outside") print("Done") # Example 3: Else if statement temperature = int(input("What is the temperature in Fahrenheit? ")) if temperature > 90: print("It is hot outside") elif temperature   90: print("It is hot outside") elif temperature > 110: print("Oh man, you could fry eggs on the pavement!") elif temperature < 30: print("It is cold outside") else: print("It is ok outside") print("Done") # Comparisons using string/text # Note, this example does not work when running under Eclipse # because the input will contain an extra carriage return at the # end. It works fine under IDLE. userName = input("What is your name? ") if userName == "Paul": print("You have a nice name.") else: print("Your name is ok.") 3.8 Review 3.8.1 Multiple Choice Quiz Click here for a multiple-choice quiz. 3.8.2 Short Answer Worksheet Click here for the chapter worksheet. Click here for the chapter lab. You are not logged in. Log in here and track your progress. English version by Paul Vincent Craven Spanish version by Antonio Rodríguez Verdugo Russian version by Vladimir Slav Turkish version by Güray Yildirim Portuguese version by Armando Marques Sobrinho and Tati Carvalho Dutch version by Frank Waegeman Hungarian version by Nagy Attila Finnish version by Jouko Järvenpää French version by Franco Rossi Korean version by Kim Zeung-Il Chinese version by Kai Lin
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 22.1 23.1 24.1 25.1 26.1 27.1 29.1 31.1 32.1 33.1 34.1 35.1 36.1 37.1 38.1 39.1 40.1 41.1 42.1 43.1 44.1 45.1 46.1 47.1 48.1 49.1 50.1 51.1 52.1 53.1 54.1 55.1 56.1 57.1 58.1 59.1 60.1 61.1 62.1 64.1 65.1 66.1 67.1 68.1 70.1 71.1 72.1 73.1 74.1 75.1 76.1 77.1 78.1 79.1 80.1 81.1 82.1 83.1 84.1 85.1 87.1 89.1 91.1 93.1 94.1 95.1 96.1 97.1 99.1 100.1 101.1 102.1 103.1 104.1 105.1 106.1 107.1 108.1 109.1 110.1 111.1 112.1 113.1 114.1 115.1 116.1 117.1 118.1 119.1 120.1 121.1 122.1 123.1 124.1 125.1 126.1 127.1 128.1 129.1 130.1 131.1 132.1 133.1 134.1 135.1 136.1 137.1 138.1 139.1 140.1 141.1 142.1 143.1 144.1 145.1 146.1 147.1 149.1 150.1 151.1 152.1 153.1 154.1 155.1 156.1 157.1 158.1 159.1 160.1 161.1 162.1 164.1 165.1 166.1 167.1 168.1 169.1 170.1 171.1 172.1
Arcade Türü Oyun Programlamayıve Bilgisayar Bilimleri Öğrenin English Dutch - Nederlands French Hungarian - Magyar Portuguese - Português Russian - Pycckий Spanish - Español Turkish - Türkçe Chapter 1: Bilindik Bir Hesap Makinesi Eğer bilgisayarınızda Python ve Pygame yüklü değilse, 'Önceki' bölüme geçebilir ve başlayabilmek için onları indirip kurabilirsiniz.. 1.1 Giriş Python ile yapılabilecek en basit şeylerden biri onu zevkli bir hesap makinesi şeklinde kullanmaktır. Bir saniye, hesap makinesi bir oyun değildir. Neden hesap makinelerinden bahsediyoruz? Düşen nesneleri, uçan mermileri ve yüksek skorları hesaplayabilmek için programlar hesaplamalara ihtiyaç duyar. Ayrıca, bir matematik gurusu hesap makinesini işkence aletinden daha çok bir oyuncak gibi görür. O halde, oyun eğitimimize hesaplamalarla başlayalım. Basit bir hesaplama programı mortgage ödemeleri, beygir gücü ya da bir evin yapım maaliyeti gibi hesaplamaları yapabilmek için kullanıcılardan bilgi alabilir. Bir oyunun fizik motorunu oluşturmaya hazırlanmak için, alttaki gibi bir hesaplama uygulaması oluşturabilmeliyiz: Bunu bir program yapabilmek için en iyi şey karışıklıkları gizleme yeteneğidir. Kullanıcının tüm ihtiyacı olan bilgi sağlamak ve sonuçları anlaşılması kolay bir şekilde alabilmektir. Benzer bir hesaplama programı bir cep telefonunda da çalışabilirdi, kullanıcıya hesaplamayı kolayca yapabilme olanağı sağlardı. 1.2 Ekrana Yazdırmak Hesap makinesi yapmayı öğrenmek için ilk adım, ekrana bir şeyler yazdırmayı öğrenmektir. Bunu yapabilmek için bir "Merhaba Dünya" uygulaması yapalım. Bu program en basit haliyle ekrana "Merhaba Dünya" yazdırsın. Python'da bu program şu şekildedir: print ("Merhaba Dünya.") "Merhaba Dünya" uygulaması diğer programlama dillerinde nasıl yazılır? Wikipedi bu konuda güzel bir "Merhaba Dünya" arşivini birçok farklı programlama dilinde sunuyor: http://en.wikipedia.org/wiki/Hello_world_program_examples Bir programlama dilinin karmaşıklık derecesini "Merhaba Dünya" programının ne kadar kolay yazıldığından anlayabilirsiniz. Ayrıca, linkte kaç farklı programlama dilinin olduğunu görmek de ilginç. Yani, Python'da bir şeyler yazdırmak için kullanacağımız komutun hatırlanması kolay, sadece print yazın. Print komutunun ardından parantez açar kaparız ( ). Bu parantezlerin içine ekranda görülmek istenenler gelir. Fonksiyonlara veri gönderirken parantez kullanımı matematikte ve programlama dillerinde standart bir işlemdir. Matematik öğrencileri $sin(\theta)=cos(\frac{\pi}{2}-\theta)$ gibi ifadeleri hesaplarken parantez kullanımı öğrenirler. $sin$ ve $cos$ fonksiyonlardır. Bu fonksiyonlara giden veri parantezlerin içerisindedir. Burada farklı olan olay, bizim fonksiyona gönderdiğimiz verinin yazıdan oluşması. Burada yazdırılacak metnin etrafında tırnaklar olduğuna dikkat edin. Eğer print ifadesindeki içeriğin etrafında tırnaklar varsa, bilgisayar onu aynen ekrana yazar. Mesela, bu program 2+3 yazacaktır: Bu sonraki program ise $2+3$ 'ün etrafında tırnak içermiyor, dolayısıyla bilgisayar bunu bir matematiksel ifade olarak değerlendiriyor. Program 2+3 yerine 5 yazacaktır. Alttaki kod ise hata verecektir. Çünkü bilgisayar "Merhaba Dünya" yı bir matematiksel ifade olarak işlemeye çalışacaktır, sonuç olarak şu kod çalışmaz: print (Merhaba Dünya) Yukarıdaki kod şöyle bir SyntaxError: invalid syntax hatası verecektir. Bunun anlamı bilgisayarın "Merhaba" ve "Dünya" kelimelerinin anlamını bilmemesidir. Bir print ifadesi tek seferde birden çok çıktı verebilir. Her nesne virgül ile ayrılır. Mesela alttaki kod ekrana 10+10 toplamının sonucu 20 yazacaktır. print ("10+10 toplamının sonucu",10+10) The next line of code will print out The answer to 10+10 is 10+10. The numbers are not added together because they are inside the quotes. Anything inside quotes, the computer treats as text. Anything outside the computer thinks is a mathematical statement or computer code. Sonraki satırda yer alan kod 10+10 toplamının sonucu 10+10 yazacaktır. Bu sayılar tırnak içerisinde yer aldıkları için toplanmayacaktır. Bilgisayar, tırnak içerisinde yer alan her şeyi metin olarak algılar. Tırnak içerisinde olmayan her şeyi ise matematiksel ifade veya bilgisayar kodu olarak değerlendirir. print ("10+10 toplamının sonucu","10+10") Alttaki kod hiçbir şekilde çalışmayacaktır. Sebebi ise tırnaklar içerisinde bulunan metin ile 10+10'u ayıran bir tırnak işaretinin olmamasıdır. Başlarda, bir virgül varmış izlenimi verebilir, fakat virgül tırnakların arasındadır. Öğeleri ayıran virgül tırnakların dışında yer almalıdır. Programcı ekrana virgül yazdırmak istiyorsa, virgül tırnakların içerisinde de yer almalıdır: print ("10+10 toplamının sonucu," 10+10) Bir sonraki kod çalışacaktır. Çünkü öğeler arasına virgül koyulmuştur. Yazdıracağı şey ise: 10+10 toplamının sonucu, 20 Sadece bir tane virgül işaretinin yazıldığına dikkat edin. Tırnakların dışındaki virgüller öğeleri ayırır, tırnakların içindeki virgüller ekrana yazdırılır. İlk virgül işareti yazdırılmıştır, ikincisi ise öğeleri ayırmada kullanılmıştır. print ("10+10 toplamının sonucu,", 10+10) 1.3 Yorumlar Bazen kodlar onu okuyacak kişi için açıklanmaya ihtiyaç duyar.. Bunu yapabilmek için, kodlara “yorumlar” ekleriz. Yorumlar kodları insanların okuyabilmesi için yazılır, bilgisayar için değildir. Yorum oluşturmak için iki yol vardır. İlk yöntem # sembolünü kullanmaktır. Bilgisayar Python programında # sembolünden sonraki her yazıyı görmezden gelecektir. Mesela: # Bu bir yorumdur, # işareti ile başlar # ve bilgisayar onu görmezden gelir. print("Bu bir yorum değildir, bilgisayar") print("bunu çalıştırır ve ekrana yazar.") Tırnaklar arasındaki # işaretleri yorum olarak algılanmaz. Programcı bir satır kodu başına # işareti koyarak etkisiz hale getirebilir. Ayrıca, yorumu satırın sonuna koymak da mümkündür. print("Tırnakların içerisindeki # işareti yorum işlemini yapmaz.") # print ("Kod bile olsa, bu bir yorumdur.") print ("Selam") # Bu bir satır-sonu yorumdur. Birden fazla satırı yorum haline getirmek için üç adet tek tırnak kullanmak damümkündür. Bitirebilmek için de yorum dizisine sınırlama uygulanır. (ÇN. Üç tırnak ile başlayıp üç tırnak ile biten kısım yorum kabul edilir.) print("Selam") ''' Bu bir çok satırlı yorumdur. Bu satırlar arasındaki hiçbir şey çalıştırılmaz. print("Burada") ''' print("Bitti") Bu kitaba koymaya başladığımız kod örneklerinde yorum satırlarına bir göz atın. Yazdığınız kodu okuyacak olan tek siz bile olsanız, yorumlar zaman kazanmanıza yardımcı olabilirler. "Uzaylı bombalarını tutan kısım" şeklinde yazdığınız bir yorum o bölümdeki kodun ne yaptığını tekrar okuyarak ve ne işe yaradığını çözerek anlama zorunluluğundan kurtarır. 1.4 Atama Operatörleri Oyunumuzda skoru nasıl tutacağız? Ya da düşmanın gücünü nasıl takip edeceğiz? Bunu yapabilmek için atama operatörüne ihtiyacımız var. (Operatör basitçe + veya - gibi sembollere denir.) Bu, değeri daha sonra kullanılmak üzere saklamak için bir değişken kullanır. Alttaki kod 10 değerini x isimli değişkene atamaya yarar, ardından x'te saklanan değer ekrana yazdırılmıştır. Not: Yukarıdaki listeleme aynı zamanda x 'in tırnakların içerisinde ve x 'in tırnakların dışarısında yer alması arasındaki farkı da gösteriyor. Eğer x tırnak işaretleri arasındaysa, bilgisayar ekrana x yazacaktır. Eğer x tırnak işaretlerinin dışındaysa, bilgisayar x'in değerini ekrana yazacaktır. Bu programlama öğrenenlerin yaptığı oldukça yaygın bir hatadır. Bir atama ifadesi matematiksel bir eşitlikten farklıdır. Onları aynı gibi düşünmeyin. Atama ifadelerinde, eşittir işaretinin solunda sadece bir değişken yer alabilir. Burada başka hiçbir şey olamaz. Eşittir işaretinin sağ tarafı bir ifadedir. Değer hesaplayan her şey bir ifadedir. Alttaki kodu inceleyin. Matematiksel bir eşitlik yapmasa bile bu kod geçerlidir. Değişkenlere, numaralara ve eşittir işaretine sahip olsalarbile matematiksel eşitlikler farklıdır. Bu ifade x'in o anki değerini alır, ona bir ekler, ve sonucu tekrar x'te depo eder. x = x + 1 Sonuç olarak alttaki ifade 6 çıktısını verecektir. x=5 x = x + 1 print(x) Sonraki ifade de geçerlidir ve çalışacaktır, fakat anlamsızdır. Bilgisayar x'e bir ekler, fakat sonuç hiçbir yerde saklanmaz veya ekrana bastırılmaz. Alttaki kod 6 yerine 5 yazdıracaktır. Çünkü programcı $x + 1$ işleminin sonucunu x değişkenine aktarmayı unutmuştur. x=5 x + 1 print(x) Alttaki ifade geçersizdir çünkü eşittir işaretinin sol tarafı bir değişkenden daha fazlasını içeriyor. x + 1 = x Python ayrıca atama operatörlerine sahiptir. Bu programcının bir değişkeni kolayca değiştirmesini sağlar. Örneğin: Üstteki ifade alttaki kodla aynı işi yapar: x = x + 1 There are also assignment operators for addition, subtraction, multiplication and division. Ayrıca, ekleme, çıkarma, çarpma ve bölme için de atma operatörleri mevcuttur. 1.5 Değişkenler Değişken isimleri küçük harfle başlamalıdır. Değişkenler büyük harfle veya alt çizgi ile başlayabilir, fakat bunlar özel durumlardadır ve normalde prensip olarak yapılmamalıdır. İlk küçük harfin ardından değişken büyük ve küçük harfler ve bunlarla birlikte rakamlar ve alt çizgiler içarebilir. Değişken isimleri boşluk içermemelidir. (Ç.N. Küçük harf bir zorunluluk değil, kuvvetli bir gelenektir. Bu yüzden başlamalıdır deniyor.) Değişkenler büyük/küçük harf duyarlıdır. Programcı bunu beklemiyorsa kafa karıştırıcı olabilir. Alttaki kodta, çıktı 6 yerine 5 olacaktır çünkü burada iki adet değişken var. x=6 X=5 print(x) 1.6 Operatörler Çok kullanılan matematiksel operatörler, daha karmaşık matematik işlemlerinin yapılabilmesi için tanımlanmış halde gelir. Ayrıca birkaç tane çok-yaygın-olmayan da mevcuttur: “Yuvarlayarak bölme”nin yaptığı iş elde edilen sonucu en yakın tam sayıya yuvarlamaktır. Örneğin, 11//2 işleminin sonucu 5'tir, 5.5 değildir, ayrıca 99//100'ün sonucu da 0 olacaktır. Yan yana yazarak çarpma işlemi Python'da çalışmaz. Alttaki iki satırda yer alan kodlar çalışmayacaktır: # Bu çalışmaz x=5y x=5(3/2) Bu satırlardaki kodları çalışır duruma getirmek için aralarına çarpma operatörü eklenmelidir: # Bu çalışır x=5*y x=5*(3/2) 1.7 Operatörlerin Sırası Python elinizdeki komutları standart matematik ifadeleriyle aynı sırada işler. Örneğin, bu eşitlik ortalamayı doğru bir şekilde hesaplamayacaktır: Yapılan ilk işlem 98/5 işlemidir. Bilgisayarın hesapladığı: bu alttaki ise istenendir: Parantez kullanılarak bu sorun çözülebilir: 1.8 Trigonometrik Fonksiyonlar Trigonometrik fonksiyonlar formüllerde sinüs ve kosinüs değerleri hesaplanırken kullanılırlar. Varsayılan olarak, Python sinüs ve kosinüsü nasıl hesaplayacağını bilmez. Ancak uygun kütüphane içe aktarıldığında (import edildiğinde) kullanılabilir. Birimler radyandır. # math kütüphanesi import ediliyor(içe aktarılıyor) # Bu satır sadece bir kez yapılır ve programın # en üstünde yer alır. from math import * # Sinüs ve kosinüs kullanılarak x'i hesaplayalım x = sin(0) + cos(0) 1.9 Özel Denklemlerin Hesabı 294 milde 10.5 galon benzin harcayan bir otomobilin her milde ne kadar benzin harcadığı Python ile yazılan bir program yardımıyla hesaplanabilir. Bu program değişkenlerden faydalanılarak geliştirilebilir. Bu, denklemi değiştirmeden değerlerle oynanmasına izin verir. m=294 g=10.5 m2=m/g # Bu onun yerine değişken kullanıyor print(m2) Bu halde, bu program aslında anlaşılması zor bir programdır. m ve g değişkenleri belirli bir bağlam dışında bir anlam ifade etmiyor. Uygun isimlendirilmiş değişkenler kullanılarak program daha kolay anlaşılabilir hale getirilebilir: (Ç.N. mpg = miles per gallon - 1 galon benzinle alınan yol) surulenMil=294 kullanilanBenzin=10.5 mpg=surulenMil/kullanilanBenzin print(mpg) Şu an, programcı olmayan biri bile baksa muhtemelen programın ne yaptığıyla ilgili iyi bir fikir ortaya atabilir. İyiye karşı bir de kötü değişken isimlendirme örneği: # Anlaşılması zor fo=0.12 h=12123.34 f=fo*h # Anlaşılması kolay faizOrani=0.12 hesapBakiyesi=12123.34 faizTutari=faizOrani*hesapBakiyesi IDLE editöründe önceki satırı tekrar yazmadan düzenlemek mümkündür. Bunu imleci o satıra götürüp ardından "enter" tuşuna basarak yapabilirsiniz. O an aktif olan satıra kopyalanacaktır. Python kodunu >>> 'un ardından yazmak yavaştır ve her seferinde sadece bir satır kod girilebilir. Ayrıca kodu bir başka kişinin çalıştırması için saklamak da mümkün değildir. Neyse ki, Python kodu yazmak için daha basit bir yol var. Python kodu bir komut dosyası kullanılarak yazılabilir. Bir komut dosyası, tek seferde çalıştırılacak olan ve çok satırdan oluşan koda denir. Bir komut dosyası oluşturmak için, Şekilde gösterildiği gibi bir pencere açın 1.2. Benzin kullanım oranını hesaplayan bir Python programı yazıp, dosyayı kaydedin. Dosyayı flash bellek, network sürücüsü veya seçimizine bağlı başka bir yere kayededin. Python programları her zaman .py ile bitmelidir. Resim 1.3 'e bakın. Yazılı programı "Run" menüsüne ve o menüde "Run Module" seçeneğine basarak çalıştırın. Farklı mil ve galon değerleri kullanarak programı güncellemeyi deneyin. Bu noktadan sonra, yazılan her kod komut dosyası ya da modül olmalıdır. Programınızı IDLE'nin >>> komut satırında yazmayın. Buraya yazılan kod kaydedilmeyecektir. Bu gerçekleşirse yeniden başlamak gerekecektir. Bu yeni başlayan programcıların yaptığı oldukça yaygın bir hatadır. Bu program kullanıcıyla etkileşime geçip gidilen milleti ve kaç galon benzin kullanıldığını sorsa çok daha kullanışlı olurdu. Bu işlemi input komutuyla yapabiliriz. Alttaki kodu inceleyin: (Ç.N Türkiye'de çok yaygın kullanılmayan 1 galon = 3,78 litreye denk gelir.) # Bu kod neredeyse çalışıyor surulenMil=input("Enter miles driven:") kullanilanBenzin=input("Enter gallons used:") mpg=surulenMil/kullanilanBenzin print ("Galon başına mil:",mpg) Bu program çalıştığında kullanıcıya milleri ve galonları sorar, fakat Resim 1.4 'de görüldüğü gibi garip bir hata verir. Bu hatanın sebebi program birazcık değiştirilerek anlaşılabilir: surulenMil=input("Sürülen mili girin:") kullanilanBenzin=input("Kullanılan galonu girin:") x=surulenMil+kullanilanBenzin print("m+g toplamı:",x) Yukarıdaki programı çalıştırmak Resim 1.5 'de gösterilen hataya sebep olacaktır. Bu program iki sayıyı birbirine eklemiyor, sadece birini diğerinin sağ tarafına koyuyor. Bunun sebebi programın kullanıcının sayı girdiğini bilmemesi. Kullanıcı "Bob" ve "Mary" de girebilirdi, ve bu ikisinin birbirine eklenmesi "BobMary" olacaktı; bu da daha mantıklı olurdu. Bilgisayara girilenlerin sayı olduğunu söylemek için input fonksiyonunun etrafı int( ) ya da float( ) ile çevrilmelidir. İlkini tamsayılar(integer) için, sonrakini ondalıklı sayılar(float) için kullanın. Çalışan Final Hali: (Ç.N milesDriven: Gidilen yol, mil cinsinden; gallonsUsed: Harcanan Benzin, galon cinsinden) Başka bir örnek olarak, bir nesnenin kinetik enerjisinin hesaplanması: # Sample Python/Pygame Programs # Simpson College Computer Science # http://programarcadegames.com/ # http://simpson.edu/computer-science/ # Calculate Kinetic Energy print("This program calculates the kinetic energy of a moving object.") m_string = input("Enter the object's mass in kilograms: ") m = float(m_string) v_string = input("Enter the object's speed in meters per second: ") v = float(v_string) e = 0.5 * m * v * v print("The object has " + str(e) + " joules of energy.") Programı kısaltmak için, input komutunu float komutu ile iç içe yazabiliriz. Bunun örnek kodları: milesDriven=input("Enter miles driven:") milesDriven=float(milesDriven) Bu kod da aynı işi yapar: milesDriven=float(input("Enter miles driven:")) Bu durumda, input fonksiyonunun çıktısı direk float fonksiyonuna aktarılıyor. Her iki hal de çalışır, hangisinin seçileceği programcının tercihine kalmıştır. Ancak, önemli olan, iki şekli de anlayabilmektir. 1.10 Tekrar Bir çoktan seçmeli test için burayı tıklayın. - Adınızı ekrana yazdıran tek satırlık bir kod yazın. - Bir programa nasıl yorum ekleyebilirsiniz? - Alttaki satırlarda yer alan kod çıktı olarak ne verir? print (2/3) print (2//3) - pi isimli bir değişken içeren bir değişken oluşturan ve ona uygun değeri atayan tek satırlık bir kod yazın. - Bu kod neden çalışmaz? A=22 print(a) - Alttaki değişken isimlerinin tamamı kullanılabilirdir. Fakat hangileri kullanılmak için daha iyidir? a A Area AREA area areaOfRectangle AreaOfRectangle - Bu değişken isimlerinden hangisine Python'da izin verilmez? (Birden fazlası yanlış olabilir.) apple Apple APPLE Apple2 1Apple account number account_number account.number accountNumber account# - Bu kod neden çalışmaz? print(a) a=45 - Bu kodtaki hatayı açıklayın: pi = float(3.14) - Bu kodtaki hatayı açıklayın: radius=input("Radius:") x=3.14 pi=x area=pi*radius**2 - Bu kodtaki hatayı açıklayın: - Bu kodtaki hatayı açıklayın: radius = input(float("Enter the radius:")) - Bu kodtaki hatayı açıklayın: area=π*radius**2 - Kullanıcıya bir karenin kenar uzunluğunu soran ve onu bir değişkende saklayan tek satırlık bir kod yazın. Değeri tamsayıya çevirdiğinizden emin olun. - Write a line of code that prints the area of the square, using the number the user typed in that you stored in question 9. Karenin alanını ekrana yazdıran tek satırlık bir kod yazın. Kenar uzunluğu olarak 9. soruda kullanıcı tarafından girilen sayıyı kullanın. - 9. ve 10. soru ile aynı işi yapan, fakat elips alanını hesaplayan bir kod yazın. $a$ ve $b$ büyük yarıçap uzunlukları iken $s=\pi ab$ - 9. ve 10. soru ile aynı işi yapan, fakat gazın basıncını formülle bulan bir program yazın. $P=\dfrac{nRT}{V}$ Burada $n$ mol sayısı, $T$ mutlak sıcaklık, $V$ hacım ve $R$ gaz sabiti olan 8.3144. Gaz sabiti hakkında daha fazla bilgi için http://en.wikipedia.org/wiki/Gas_constant adresine göz atın. Kitabın bu kısmını gözden geçirmek için, devam etmeden önce Lab 1 kısmını tamamlayın. You are not logged in. Log in here and track your progress. English version by Paul Vincent Craven Russian version by Vladimir Slav Turkish version by Güray Yildirim Dutch version by Frank Waegeman Hungarian version by Nagy Attila Portuguese version by Armando Marques Sobrinho and Tati Carvalho Spanish version by Aitor Peinador and Antonio Rodríguez