http___programarcadegames.com_index.php_chapter_python_as_calculator_lang_tr_1.xml
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 13.2 13.3 13.4 14.1 14.2 14.3 14.4 15.1 16.1 17.1 17.2 17.3 18.1 19.1 20.1 20.2 20.3 21.1 22.1 22.2 22.3 22.4 23.1 24.1 24.2 25.1 26.1 27.1 28.1 28.2 29.1 29.2 29.3 29.4 29.5 30.1 30.2 30.3 30.4 31.1 31.2 31.3 33.1 34.1 34.2 35.1 36.1 37.1 38.1 39.1 40.1 41.1 41.2 42.1 43.1 43.2 43.3 43.4 44.1 45.1 45.2 45.3 45.4 45.5 46.1 47.1 47.2 48.1 49.1 49.2 49.3 50.1 51.1 52.1 52.2 53.1 54.1 54.2 54.3 55.1 55.2 55.3 56.1 57.1 57.2 57.3 57.4 58.1 59.1 59.2 59.3 60.1 61.1 61.2 62.1 62.2 63.1 64.1 65.1 66.1 66.2 66.3 66.4 67.1 68.1 68.2 68.3 68.4 69.1 70.1 70.2 70.3 71.1 71.2 71.3 71.4 72.1 73.1 73.2 73.3 74.1 74.2 74.3 75.1 76.1 76.2 76.3 77.1 77.2 77.3 78.1 78.2 79.1 80.1 80.2 80.3 80.4 80.5 80.6 81.1 81.2 82.1 82.2 82.3 82.4 83.1 83.2 83.3 83.4 84.1 84.2 84.3 85.1 86.1 86.2 86.3 87.1 88.1 89.1 90.1 90.2 90.3 90.4 91.1 92.1 92.2 94.1 95.1 96.1 97.1 98.1 98.2 98.3 100.1 101.1 102.1 103.1 104.1 104.2 104.3 104.4 105.1 105.2 105.3 106.1 107.1 107.2 107.3 107.4 107.5 108.1 109.1 110.1 110.2 111.1 112.1 112.2 113.1 113.2 114.1 114.2 115.1 116.1 117.1 118.1 119.1 119.2 121.1 121.2 121.3 121.4 121.5 122.1 123.1 123.2 125.1 125.2 127.1 129.1 131.1 132.1 132.2 132.3 133.1 133.2 134.1 135.1 137.1 137.2 138.1 139.1 139.2 139.3 140.1 141.1 141.2 142.1 143.1 143.2 143.3 144.1 144.2 144.3 145.1 145.2 145.3 146.1 146.2 146.3 146.4 147.1 147.2 148.1 148.2 148.3 148.4 148.5 149.1 149.2 149.3 150.1 151.1 152.1 153.1 154.1 155.1 155.2 155.3 156.1 156.2 157.1 158.1 159.1 159.2 160.1 160.2 161.1 162.1 163.1 164.1 164.2 164.3 165.1 166.1 167.1 168.1 169.1 171.1 172.1 172.2 173.1 174.1 175.1 176.1 177.1 178.1 179.1
Program Arcade GamesWith Python And Pygame English Dutch - Nederlands French Hungarian - Magyar Portuguese - Português Russian - Pycckий Spanish - Español Turkish - Türkçe Chapter 1: Create a Custom Calculator If you don't already have a machine with Python and Pygame installed, then hop back to the “foreward” section to download and install them so you can get started.) 1.1 Introduction One of the simplest things that can be done with Python is to use it as a fancy calculator. Wait, a calculator isn't a game. Why are we talking about calculators? Boring.... Hey, to calculate objects dropping, bullets flying, and high scores, we need calculations. Plus, any true geek will consider a calculator as a toy rather than a torture device! Let's start our game education with calculators. Don't worry, we'll start graphics by Chapter 5. A simple calculator program can be used to ask the user for information and then calculate boring things like mortgage payments, or more exciting things like the trajectory of mud balls as they are flung through the air. Figure 1.1 shows an example program that calculates kinetic energy, something we might need to do as part of a game physics engine. The best thing about doing this as a program is the ability to hide the complexities of an equation. All the user needs to do is supply the information and he or she can get the result in an easy-to-understand format. Any similar custom calculator could run on a smart phone, allowing a person to easily perform the calculation on the go. 1.2 Printing 1.2.1 Printing Text How does a program print something to the screen? The code is simple. Just one line is required: print("Hello World.") This program prints out “Hello World” to the screen. Go ahead and enter it into IDLE prompt and see how it works. Try printing other words and phrases as well. The computer will happily print out just about anything you like, true or not. What does the “Hello World” program look like in other computer programming languages? Check out Wikipedia. They keep a nice set of “Hello World” programs written in many different computer programming languages: http://en.wikipedia.org/wiki/Hello_world_program_examples It is interesting to see how many different computer languages there are. You can get an idea how complex a language is by how easy the “Hello World” program is. Remember, the command for printing in Python is easy. Just use print. After the print command are a set of parentheses ( ). Inside these parentheses is what should be printed to the screen. Using parentheses to pass information to a function is standard practice in math, and computer languages. Math students learn to use parentheses evaluating expressions like $sin(\theta)=cos(\frac{\pi}{2}-\theta)$. $sin$ and $cos$ are functions. Data passed to these functions is inside the parenthesis. What is different in our case is that the information being passed is text. Notice that there are double quotes around the text to be printed. If a print statement has quotes around text, the computer will print it out just as it is written. For example, this program will print 2+3: 1.2.2 Printing Results of Expressions This next program does not have quotes around $2+3$, and the computer will evaluate it as a mathematical expression. It will print 5 rather than 2+3. print(2 + 3) The code below will generate an error because the computer will try to evaluate “Hello World” as a mathematical expression, and that doesn't work at all: print(Hello World) The code above will print out an error SyntaxError: invalid syntax which is computer-speak for not knowing what “Hello” and “World” mean. Also, please keep in mind that this is a single-quote: ' and this is a double-quote: " If I ask for a double-quote, it is a common mistake to write "" which is really a double double-quote. 1.2.3 Printing Multiple Items A print statement can output multiple things at once, each item separated by a comma. For example this code will print out Your new score is 1040 print("Your new score is", 1030 + 10) The next line of code will print out Your new score is 1030+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. print("Your new score is", "1030 + 10") This next code example doesn't work at all. This is because there is no comma separating the text between the quotes, and the 1030+10. At first, it may appear that there is a comma, but the comma is inside the quotes. The comma that separates the terms to be printed must be outside the quotes. If the programmer wants a comma to be printed, then it must be inside the quotes: print("Your new score is," 1030 + 10) This next example does work, because there is a comma separating the terms. It prints: Your new score is, 1040 Note that only one comma prints out. Commas outside the quotes separate terms, commas inside the quotes are printed. The first comma is printed, the second is used to separate terms. print("Your new score is,", 1030 + 10) 1.3 Escape Codes If quotes are used to tell the computer the start and end of the string of text you wish to print, how does a program print out a set of double quotes? For example: print("I want to print a double quote " for some reason.") This code doesn't work. The computer looks at the quote in the middle of the string and thinks that is the end of the text. Then it has no idea what to do with the commands for some reason and the quote and the end of the string confuses the computer even further. It is necessary to tell the computer that we want to treat that middle double quote as text, not as a quote ending the string. This is easy, just prepend a backslash in front of quotes to tell the computer it is part of a string, not a character that terminates a string. For example: print("I want to print a double quote \" for some reason.") This combination of the two characters \" is called an escape code. Almost every language has them. Because the backslash is used as part of an escape code, the backslash itself must be escaped. For example, this code does not work correctly: print("The file is stored in C:\new folder") Why? Because \n is an escape code. To print the backslash it is necessary to escape it like so: print("The file is stored in C:\\new folder") There are a few other important escape codes to know. Here is a table of the important escape codes: What is a “Carriage Return” and a “Linefeed”? Try this example: print("This\nis\nmy\nsample.") The output from this command is: This is my sample. The \n is a linefeed. It moves “cursor” where the computer will print text down one line. The computer stores all text in one big long line. It knows to display the text on different lines because of the placement of \n characters. To make matters more complex, different operating systems have different standards on what makes a line ending. Usually your text editor will take care of this for you. Microsoft Notepad doesn't though, and UNIX files opened in notepad look terrible because the line endings don't show up at all, or show up as black boxes. Every programmer should have a good text editor installed on their computer. I recommend Sublime or Notepad++. 1.4 Comments Sometimes code needs some extra explanation to the person reading it. To do this, we add “comments” to the code. The comments are meant for the human reading the code, and not for the computer. There are two ways to create a comment. The first is to use the # symbol. The computer will ignore any text in a Python program that occurs after the #. For example: # This is a comment, it begins with a # sign # and the computer will ignore it. print("This is not a comment, the computer will") print("run this and print it out.") If a program has the # sign between quotes it is not treated as a comment. A programmer can disable a line of code by putting a # sign in front of it. It is also possible to put a comment in at the end of a line. print("A # sign between quotes is not a comment.") # print("This is a comment, even if it is computer code.") print("Hi") # This is an end-of-line comment It is possible to comment out multiple lines of code using three single quotes in a row to delimit the comments. print("Hi") ''' This is a multi line comment. Nothing Will run in between these quotes. print("There") ''' print("Done") Most professional Python programmers will only use this type of multi-line comment for something called docstrings. Docstrings allow documentation to be written along side the code and later be automatically pulled out into printed documentation, websites, and Integrated Development Environments (IDEs). For general comments, the # tag works best. Even if you are going to be the only one reading the code that you write, comments can help save time. Adding a comment that says “Handle alien bombs” will allow you to quickly remember what that section of code does without having to read and decipher it. 1.5 Assignment Operators How do we store the score in our game? Or keep track of the health of the enemy? What we need to do this is the assignment operator. (An operator is a symbol like + or -.) This stores a value into a variable to be used later on. The code below will assign 10 to the variable x, and then print the value stored in x. Look at the example below. Click on the “Step” button to see how the code operates. Note: The listing above also demonstrates the difference between printing an x inside quotes and an x outside quotes. If an x is inside quotation marks, then the computer prints x. If an x is outside the quotation marks then the computer will print the value of x. Getting confused on the “inside or outside of quotes” question is very common for those learning to program. An assignment statement (a line of code using the = operator) is different than the algebraic equality your learned about in math. Do not think of them as the same. On the left side of an assignment operator must be exactly one variable. Nothing else may be there. On the right of the equals sign/assignment operator is an expression. An expression is anything that evaluates to a value. Examine the code below. x = x + 1 The code above obviously can't be an algebraic equality. But it is valid to the computer because it is an assignment statement. Mathematical equations are different than assignment statements even if they have variables, numbers, and an equals sign. The code above statement takes the current value of x, adds one to it, and stores the result back into x. Expanding our example, the statement below will print the number 6. x = 5 x = x + 1 print(x) Statements are run sequentially. The computer does not “look ahead.” In the code below, the computer will print out 5 on line 2, and then line 4 will print out a 6. This is because on line 2, the code to add one to x has not been run yet. x = 5 print(x) # Prints 5 x = x + 1 print(x) # Prints 6 The next statement is valid and will run, but it is pointless. The computer will add one to x, but the result is never stored or printed. The code below will print 5 rather than 6 because the programmer forgot to store the result of x + 1 back into the variable x. x = 5 x + 1 print(x) The statement below is not valid because on the left of the equals sign is more than just a variable: x + 1 = x Python has other types of assignment operators. They allows a programmer to modify a variable easily. For example: The above statement is equivalent to writing the code below: x = x + 1 There are also assignment operators for addition, subtraction, multiplication and division. 1.6 Variables Variables should start with a lower case letter. Variables can start with an upper case letter or an underscore, but those are special cases and should not be done on a normal basis. After the first lower case letter, the variable may include uppercase and lowercase letters, along with numbers and underscores. Variables may not include spaces. Variables are case sensitive. This can be confusing if a programmer is not expecting it. In the code below, the output will be 6 rather than 5 because there are two different variables, x and X. x = 6 X = 5 print(x) The official style guide for Python (yes, programmers really wrote a book on style) says that multi-word variable names in Python should be separated by underscores. For example, use hair_style and not hairStyle. Personally, if you are one of my students, I don't care about this rule too much because the next language we introduce, Java, has the exact opposite style rule. I used to try teaching Java style rules while in this class, but then I started getting hate-mail from Python lovers. These people came by my website and were shocked, shocked I tell you, about my poor style. Joan Rivers has nothing on these people, so I gave up and try to use proper style guides now. Here are some example variable names that are ok, and not ok to use: All upper-case variable names like MAX_SPEED are allowed only in circumstances where the variable's value should never change. A variable that isn't variable is called a constant. 1.7 Operators For more complex mathematical operations, common mathematical operators are available. Along with some not-so-common ones: “Floor division” will always round the answer down to the nearest integer. For example, 11//2 will be 5, not 5.5, and 99//100 will equal 0. Multiplication by juxtaposition does not work in Python. The following two lines of code will not work: # These do not work x = 5y x = 5(3/2) It is necessary to use the multiplication operator to get these lines of code to work: # These do work x = 5 * y x = 5 * (3 / 2) 1.7.1 Operator Spacing There can be any number of spaces before and after an operator, and the computer will understand it just fine. For example each of these three lines are equivalent: The official style guide for Python says that there should be a space before and after each operator. (You've been dying to know, right? Ok, the official style guide for python code is called: PEP-8. Look it up for more excitement.) Of the three lines of code above, the most “stylish” one would be line 2. 1.8 Order of Operations Python will evaluate expressions using the same order of operations that are expected in standard mathematical expressions. For example this equation does not correctly calculate the average: The first operation done is 98/5. The computer calculates: rather than the desired: By using parentheses this problem can be fixed: 1.9 Trig Functions Trigonometric functions are used to calculate sine and cosine in equations. By default, Python does not know how to calculate sine and cosine, but it can once the proper library has been imported. Units are in radians. # Import the math library # This line is done only once, and at the very top # of the program. from math import * # Calculate x using sine and cosine x = sin(0) + cos(0) 1.10 Custom Equation Calculators A program can use Python to calculate the mileage of a car that drove 294 miles on 10.5 gallons of gas. This program can be improved by using variables. This allows the values to easily be changed in the code without modifying the equation. m = 294 g = 10.5 m2 = m / g # This uses variables instead print(m2) By itself, this program is actually difficult to understand. The variables m and g don't mean a lot without some context. The program can be made easier to understand by using appropriately named variables: miles_driven = 294 gallons_used = 10.5 mpg = miles_driven / gallons_used print(mpg) Now, even a non-programmer can probably look at the program and have a good idea of what it does. Another example of good versus bad variable naming: # Hard to understand ir = 0.12 b = 12123.34 i = ir * b # Easy to understand interest_rate = 0.12 account_balance = 12123.34 interest_amount = interest_rate * account_balance In the IDLE editor it is possible to edit a prior line without retyping it. Do this by moving the cursor to that line and hitting the “enter” key. It will be copied to the current line. Entering Python code at the >>> prompt is slow and can only be done one line at a time. It is also not possible to save the code so that another person can run it. Thankfully, there is an even better way to enter Python code. Python code can be entered using a script. A script is a series of lines of Python code that will be executed all at once. To create a script, open up a new window as shown in Figure 1.2. Enter the Python program for calculating gas mileage, and then save the file. Save the file to a flash drive, network drive, or some other location of your choice. Python programs should always end with .py. See Figure 1.3. Run the program typed in by clicking on the “Run” menu and selecting “Run Module”. Try updating the program to different values for miles driven and gallons used. From this point forward, almost all code entered should be in a script/module. Do not type your program out on the IDLE >>> prompt. Code typed here is not saved. If this happens, it will be necessary to start over. This is a very common mistake for new programmers. This program would be even more useful if it would interact with the user and ask the user for the miles driven and gallons used. This can be done with the input statement. See the code below: # This code almost works miles_driven = input("Enter miles driven:") gallons_used = input("Enter gallons used:") mpg = miles_driven / gallons_used print("Miles per gallon:", mpg) Running this program will ask the user for miles and gallons, but it generates a strange error as shown in Figure 1.4. The reason for this error can be demonstrated by changing the program a bit: miles_driven = input("Enter miles driven:") gallons_used = input("Enter gallons used:") x = miles_driven + gallons_used print("Sum of m + g:", x) Running the program above results in the output shown in Figure 1.5. The program doesn't add the two numbers together, it just puts one right after the other. This is because the program does not know the user will be entering numbers. The user might enter “Bob” and “Mary”, and adding those two variables together would be “BobMary”; which would make more sense. To tell the computer these are numbers, it is necessary to surround the input function with an int( ) or a float( ). Use the former for integers, and the latter for floating point numbers. The final working program: And another example, calculating the kinetic energy of an object: # 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.") To shorten a program, it is possible to nest the input statement into the float statement. For example these lines of code: milesDriven = input("Enter miles driven:") milesDriven = float(milesDriven) Perform the same as this line: milesDriven = float(input("Enter miles driven:")) In this case, the output of the input function is directly fed into the float function. Either one works, and it is a matter of programmer's preference which to choose. It is important, however, to be able to understand both forms. 1.11 Review 1.11.1 Multiple Choice Quiz Click here for a multiple-choice quiz. 1.11.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 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 French version by Franco Rossi
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 21.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 30.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 56.1 57.1 58.1 59.1 60.1 62.1 63.1 64.1 65.1 66.1 67.1 68.1 69.1 70.1 71.1 72.1 73.1 74.1 75.1 76.1 77.1 79.1 81.1 83.1 85.1 86.1 87.1 88.1 89.1 91.1 92.1 93.1 94.1 95.1 96.1 97.1 98.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 141.1 142.1 143.1 144.1 145.1 146.1 147.1 148.1 149.1 150.1 151.1 152.1 153.1 154.1 156.1 157.1 158.1 159.1 160.1 161.1 162.1 163.1 164.1 165.1 166.1 167.1 168.1
Arcade Türü Oyun Programlamayıve Bilgisayar Bilimleri Öğrenin 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 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