http___programarcadegames.com_index.php_lang_tr_chapter_python_as_calculator_2.xml
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 10.2 10.3 11.1 12.1 13.1 13.2 13.3 13.4 13.5 15.1 16.1 17.1 17.2 19.1 21.1 21.2 21.3 21.4 21.5 22.1 22.2 23.1 23.2 23.3 23.4 24.1 24.2 25.1 25.2 27.1 27.2 27.3 27.4 27.5 28.1 29.1 29.2 29.3 29.4 29.5 30.1 31.1 32.1 32.2 32.3 33.1 34.1 35.1 36.1 37.1 37.2 38.1 38.2 38.3 39.1 39.2 40.1 40.2 40.3 41.1 42.1 42.2 43.1 43.2 43.3 43.4 43.5 43.6 43.7 43.8 43.9 43.10 44.1 44.2 45.1 46.1 47.1 48.1 48.2 49.1 50.1 51.1 51.2 52.1 53.1 54.1 54.2 54.3 54.4 55.1 55.2 56.1 57.1 57.2 57.3 58.1 59.1 59.2 60.1 61.1 61.2 62.1 63.1 64.1 65.1 66.1 67.1 67.2 68.1 69.1 70.1 70.2 71.1 71.2 71.3 71.4 72.1 72.2 72.3 72.4 73.1 74.1 75.1 76.1 77.1 78.1 79.1 79.2 80.1 80.2 81.1 81.2 82.1 83.1 83.2 84.1 84.2 85.1 86.1 87.1 87.2 87.3 88.1 89.1 90.1 91.1 92.1 93.1 94.1 96.1 97.1 97.2 98.1 99.1 100.1 101.1 102.1 103.1 104.1 105.1 106.1 107.1 108.1
Program Arcade GamesWith Python And Pygame Chapter 7: Introduction to Lists 7.1 Data Types So far this book has shown four types of data: - String (a string is short for “string of characters,” which normal people think of as text.) - Integer - Floating point - Boolean Python can display what type of data a value is with the type function. This type function isn't useful for other programming in this book, but it is good to demonstrate the types of data introduced so far. Type the following into the interactive IDLE shell. (Don't create a new window and type this in as a program; it won't work.) It is also possible to use the type function on a variable to see what kind of data is in it. x = 3 type(x) The two new types of data introduced in this chapter are Lists and Tuples. Lists are similar to another data structure called an array. A list can be resized, but an array can not. A course in data structures will teach you the details, but it that is beyond the scope of this book. Try running the following commands in the interactive Python shell and see what is displayed: 7.2 Working With Lists You've created grocery lists, to-do lists, bucket lists, but how do you create a list on the computer? Try these examples using IDLE's command line. To create a list and print it out, try the following: To print an individual element in a list: This number with the item's location is called the index. Note that list locations start at zero. So a list or array with 10 elements does not have an element in spot [10]. Just spots [0] through [9]. It can be very confusing to create an list of 10 items and then not have an item 10, but most computer languages start counting at 0 rather than 1. Think of a list as an ice cube tray that holds numbers, as shown in Figure 7.2. The values are stored inside each tray spot, and written on the side of the tray are numbers starting at zero that identify the location of each spot. Remember, there are two sets of numbers to consider when working with a list of numbers: the position and the value. The position, also known as index, refers to where a value is. The value is the actual number stored at that location. When working with a list or array, make sure to think if you need the location or the value. It is easy to get the value given the location, but it is harder to get the location given the value. Chapter 15 is dedicated to answering how to find the location of a particular value. A program can assign new values to an individual element in a list. In the case below, the first spot at location zero (not one) is assigned the number 22. Also, a program can create a “tuple.” This data type works just like a list, but with two differences. First, it is created with parentheses rather than square brackets. Second, it is not possible to change the tuple once created. See below: >>> x = (1, 2) >>> print(x) (1, 2) >>> print(x[0]) 1 >>> x[0] = 22 Traceback (most recent call last): File " ", line 1, in   x[0] = 22 TypeError: 'tuple' object does not support item assignment >>> As can be seen from the output of the code above, we can't assign an item in the tuple a new value. Why would we want this limitation? First, the computer can run faster if it knows the value won't change. Second, some lists we don't want to change, such as a list of RGB colors for red. The color red doesn't change, therefore an immutable tuple is a better choice. 7.3 Iterating (Looping) Through a List If a program needs to iterate through each item in a list, such as to print it out, there are two types of for loops that can do this. The first method to iterate through each item in a loop is by using a “for-each” loop. This type of loop takes a collection of items, and loops the code once per item. It will take a copy of the item and store it in a variable for processing. The format of the command: for item_variable in list_name: Here are some examples: Programs can store strings in lists too: Lists can even contain other lists. This iterates through each item in the main list, but not in sublists. The other way to iterate through a list is to use an index variable and directly access the list rather than through a copy of each item. To use an index variable, the program counts from 0 up to the length of the list. If there are ten elements, the loop must go from 0 to 9 for a total of ten elements. The length of a list may be found by using the len function. Combining that with the range function allows the program to loop through the entire list. This method is more complex, but is also more powerful. Because we are working directly with the list elements, rather than a copy, the list can be modified. The for-each loop does not allow modification of the original list. 7.4 Adding to a List New items may be added to a list (but not a tuple) by using the append command. For example: Side note: If performance while appending is a concern, it is very important to understand how a list is being implemented. For example, if a list is implemented as an array data type, then appending an item to the list is a lot like adding a new egg to a full egg carton. A new egg carton must be built with thirteen spots. Then twelve eggs are moved over. Then the thirteenth egg is added. Finally the old egg carton is recycled. Because this can happen behind the scenes in a function, programmers may forget this and let the computer do all the work. It would be more efficient to simply tell the computer to make an egg carton with enough spots to begin with. Thankfully, Python does not implement a list as an array data type. But it is important to pay attention to your next semester data structures class and learn how all of this works. To create a list from scratch, it is necessary to create a blank list and then use the append function. This example creates a list based upon user input: If a program needs to create an array of a specific length, all with the same value, a simple trick is to use the following code: # Create an array with 100 zeros. 7.5 Summing or Modifying a List Creating a running total of an array is a common operation. Here's how it is done: # Copy of the array to sum my_list = [5,76,8,5,3,3,56,5,23] # Initial sum should be zero list_total = 0 # Loop from 0 up to the number of elements # in the array: for i in range(len(my_list)): # Add element 0, next 1, then 2, etc. list_total += my_list[i] # Print the result print(list_total) The same thing can be done by using a for loop to iterate the array, rather than count through a range: # Copy of the array to sum my_list = [5, 76, 8, 5, 3, 3, 56, 5, 23] # Initial sum should be zero list_total = 0 # Loop through array, copying each item in the array into # the variable named item. for item in my_list: # Add each item list_total += item # Print the result print(list_total) Numbers in an array can also be changed by using a for loop: # Copy of the array to modify my_list = [5, 76, 8, 5, 3, 3, 56, 5, 23] # Loop from 0 up to the number of elements # in the array: for i in range(len(my_list)): # Modify the element by doubling it my_list[i] = my_list[i] * 2 # Print the result print(my_list) However version 2 does not work at doubling the values in an array. Why? Because item is a copy of an element in the array. The code below doubles the copy, not the original array element. # Copy of the array to modify my_list = [5, 76, 8, 5, 3, 3, 56, 5, 23] # Loop through each element in myArray for item in my_list: # This doubles item, but does not change the array # because item is a copy of a single element. item = item * 2 # Print the result print(my_list) 7.6 Slicing Strings Strings are actually lists of characters. They can be treated like lists with each letter a separate item. Run the following code with both versions of x: x = "This is a sample string" #x = "0123456789" print("x=", x) # Accessing a single character print("x[0]=", x[0]) print("x[1]=", x[1]) # Accessing from the right side print("x[-1]=", x[-1]) # Access 0-5 print("x[:6]=", x[:6]) # Access 6 print("x[6:]=", x[6:]) # Access 6-8 print("x[6:9]=", x[6:9]) Strings in Python may be used with some of the mathematical operators. Try the following code and see what Python does: a = "Hi" b = "There" c = "!" print(a + b) print(a + b + c) print(3 * a) print(a * 3) print((a * 2) + (b * 2)) It is possible to get a length of a string. It is also possible to do this with any type of array. a = "Hi There" print(len(a)) b = [3, 4, 5, 6, 76, 4, 3, 3] print(len(b)) Since a string is an array, a program can iterate through each character element just like an array: for character in "This is a test.": print(character) Exercise: Starting with the following code: months = "JanFebMarAprMayJunJulAugSepOctNovDec" n = int(input("Enter a month number: ")) Print the three month abbreviation for the month number that the user enters. (Calculate the start position in the string, then use the info we just learned to print out the correct substring.) 7.7 Secret Codes This code prints out every letter of a string individually: plain_text = "This is a test. ABC abc" for c in plain_text: print(c, end=" ") Computers do not actually store letters of a string in memory; computers store a series of numbers. Each number represents a letter. The system that computers use to translate numbers to letters is called Unicode. The full name for the encoding is Universal Character Set Transformation Format 8-bit, usually abbreviated UTF-8. The Unicode chart covers the Western alphabet using the numbers 0-127. Each Western letter is represented by one byte of memory. Other alphabets, like Cyrillic, can take multiple bytes to represent each letter. A partial copy of the Unicode chart is below: For more information about ASCII (which has the same values as Unicode for the Western alphabet) see: http://en.wikipedia.org/wiki/ASCII For a video that explains the beauty of Unicode, see here: http://hackaday.com/2013/09/27/utf-8-the-most-elegant-hack This next set of code converts each of the letters in the prior example to its ordinal value using UTF-8: plain_text = "This is a test. ABC abc" for c in plain_text: print(ord(c), end=" ") This next program takes each UTF-8 value and adds one to it. Then it prints the new UTF-8 value, then converts the value back to a letter. plain_text = "This is a test. ABC abc" for c in plain_text: x = ord(c) x = x + 1 c2 = chr(x) print(c2, end="") The next code listing takes each UTF-8 value and adds one to it, then converts the value back to a letter. # Sample Python/Pygame Programs # Simpson College Computer Science # http://programarcadegames.com/ # http://simpson.edu/computer-science/ # Explanation video: http://youtu.be/sxFIxD8Gd3A plain_text = "This is a test. ABC abc" encrypted_text = "" for c in plain_text: x = ord(c) x = x + 1 c2 = chr(x) encrypted_text = encrypted_text + c2 print(encrypted_text) Finally, the last code takes each UTF-8 value and subtracts one from it, then converts the value back to a letter. By feeding this program the output of the previous program, it serves as a decoder for text encoded by the prior example. # Sample Python/Pygame Programs # Simpson College Computer Science # http://programarcadegames.com/ # http://simpson.edu/computer-science/ # Explanation video: http://youtu.be/sxFIxD8Gd3A encrypted_text = "Uijt!jt!b!uftu/!BCD!bcd" plain_text = "" for c in encrypted_text: x = ord(c) x = x - 1 c2 = chr(x) plain_text = plain_text + c2 print(plain_text) 7.8 Associative Arrays Python is not limited to using numbers as an array index. It is also possible to use an associative array. An associative array works like this: # Create an empty associative array # (Note the curly braces.) x = {} # Add some stuff to it x["fred"] = 2 x["scooby"] = 8 x["wilma"] = 1 # Fetch and print an item print(x["fred"]) You won't really need associative arrays for this class, but I think it is important to point out that it is possible. 7.9 Review 7.9.1 Multiple Choice Quiz Click here for a multiple-choice quiz. 7.9.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 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