



















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An introduction to Python programming language. It explains what Python is, its features, and why it is a good language to learn. It also covers the installation of the Python interpreter and how to write and execute Python programs using IDLE. The document then delves into variables and operators, explaining what variables are, how to name and declare them, and the common operations that can be performed on them. a good starting point for beginners who want to learn Python programming language.
Typology: Lecture notes
1 / 59
This page cannot be seen from the preview
Don't miss anything!




















































What is Python? Python is a widely used high-level programming language created by Guido van Rossum in the late 1980s. The language places strong emphasis on code readability and simplicity, making it possible for programmers to develop applications rapidly. Like all high level programming languages, Python code resembles the English language which computers are unable to understand. Codes that we write in Python have to be interpreted by a special program known as the Python interpreter, which we’ll have to install before we can code, test and execute our Python programs. We'll look at how to install the Python interpreter in Chapter 2. There are also a number of third-party tools, such as Py2exe or Pyinstaller that allow us to package our Python code into stand-alone executable programs for some of the most popular operating systems like Windows and Mac OS. This allows us to distribute our Python programs without requiring the users to install the Python interpreter. Why Learn Python? There are a large number of high level programming languages available, such as C, C++, and Java. The good news is all high level programming languages are very similar to one another. What differs is mainly the syntax, the libraries available and the way we access those libraries. A library is simply a collection of resources and pre-written codes that we can use when we write our programs. If you learn one language well, you can easily learn a new language in a fraction of the time it took you to learn the first language. If you are new to programming, Python is a great place to start. One of the key features of Python is its simplicity, making it the ideal language for beginners to learn. Most programs in Python require considerably fewer lines of code to perform the same task compared to other languages such as C. This leads to fewer programming errors and reduces the development time needed. In addition, Python comes with an extensive collection of third party resources that extend the capabilities of the language. As such, Python can be used for a large variety of tasks, such as for desktop applications, database applications, network programming, game programming and even mobile development. Last but not least, Python is a cross platform language, which means that code written for one operating system, such as Windows, will work well on Mac OS or Linux without making any changes to the Python code. Convinced that Python is THE language to learn? Let’s get started...
Chapter 2: Getting ready for Python Installing the Interpreter Before we can write our first Python program, we have to download the appropriate interpreter for our computers. We’ll be using Python 3 in this book because as stated on the official Python site “Python 2.x is legacy, Python 3.x is the present and future of the language”. In addition, “Python 3 eliminates many quirks that can unnecessarily trip up beginning programmers”. However, note that Python 2 is currently still rather widely used. Python 2 and 3 are about 90% similar. Hence if you learn Python 3, you will likely have no problems understanding codes written in Python 2. To install the interpreter for Python 3, head over to https://www.python.org/downloads/. The correct version should be indicated at the top of the webpage. Click on the version for Python 3 and the software will start downloading. Alternatively if you want to install a different version, scroll down the page and you’ll see a listing of other versions. Click on the release version that you want. We’ll be using version 3.4.2 in this book. You’ll be redirected to the download page for that version. Scroll down towards the end of the page and you’ll see a table listing various installers for that version. Choose the correct installer for your computer. The installer to use depends on two factors:
You should notice that the line #Prints the Words “Hello World” is in red while the word “print” is in purple and “Hello World” is in green. This is the software’s way of making our code easier to read. The words “print” and “Hello World” serve different purposes in our program, hence they are displayed using different colors. We’ll go into more details in later chapters. The line #Prints the Words “Hello World” (in red) is actually not part of the program. It is a comment written to make our code more readable for other programmers. This line is ignored by the Python interpreter. To add comments to our program, we type a # sign in front of each line of comment, like this: #This is a comment #This is also a comment #This is yet another comment Alternatively, we can also use three single quotes (or three double quotes) for multiline comments, like this: ’’’ This is a comment This is also a comment This is yet another comment ’’’ Now click File > Save As… to save your code. Make sure you save it with the .py extension. Done? Voilà! You have just successfully written your first Python program. Finally click on Run > Run Module to execute the program (or press F5). You should see the words Hello World printed on your Python Shell. To see these steps in action, you can check out this excellent tutorial by mybringback: https://www.youtube.com/watch?v=pEFr1eYIePw. However, note that he used Python 2 in the video, so some commands will give you an error. If you want to try his codes, you need to add ( ) for the print statements. Instead of writing print ‘Hello World’, you have to write print (‘Hello World’). In addition, you have to
change raw_input() to input(). We’ll cover print() and input() in Chapter 5. Chapter 3: The World of Variables and Operators Now that we’re done with the introductory stuff, let’s get down to the real stuff. In this chapter, you’ll learn all about variables and operators. Specifically, you’ll learn what variables are and how to name and declare them. We’ll also learn about the common operations that we can perform on them. Ready? Let’s go. What are variables? Variables are names given to data that we need to store and manipulate in our programs. For instance, suppose your program needs to store the age of a user. To do that, we can name this data userAge and define the variable userAge using the following statement. userAge = 0 After you define the variable userAge, your program will allocate a certain area of your computer's storage space to store this data. You can then access and modify this data by referring to it by its name, userAge. Every time you declare a new variable, you need to give it an initial value. In this example, we gave it the value 0. We can always change this value in our program later. We can also define multiple variables at one go. To do that simply write userAge, userName = 30, ‘Peter’ This is equivalent to userAge = 30 userName = ‘Peter’ Naming a Variable A variable name in Python can only contain letters (a - z, A - B), numbers or underscores (_). However, the first character cannot be a number. Hence, you can name your variables userName, user_name or userName2 but not 2userName. In addition, there are some reserved words that you cannot use as a variable name because they already have preassigned meanings in Python. These reserved words include words like print, input, if, while etc. We’ll learn about each of them in subsequent chapters. Finally, variable names are case sensitive. username is not the same as
x = 5 y = 5 You can see that in this example, the x value remains as 5, but the value of y is changed to 5. This is because the statement y = x assigns the value of x to y (y <- x). y becomes 5 while x remains unchanged as 5. Basic Operators Besides assigning a variable an initial value, we can also perform the usual mathematical operations on variables. Basic operators in Python include +, -, , , /, % and * which represent addition, subtraction, multiplication, division, floor division, modulus and exponent respectively. Example: Suppose x = 5, y = 2 Addition: x + y = 7 Subtraction: x - y = 3 Multiplication: xy = 10 Division: x/y = 2. Floor Division: x//y = 2 (rounds down the answer to the nearest whole number) Modulus: x%y = 1 (gives the remainder when 5 is divided by 2) Exponent: x*y = 25 (5 to the power of 2) More Assignment Operators Besides the = sign, there are a few more assignment operators in Python (and most programming languages). These include operators like +=, -= and *=. Suppose we have the variable x, with an initial value of 10. If we want to increment x by 2, we can write x = x + 2 The program will first evaluate the expression on the right (x + 2) and assign the answer to the left. So eventually the statement above becomes x <- 12. Instead of writing x = x + 2, we can also write x += 2 to express the same meaning. The += sign is actually a shorthand that combines the assignment sign with the addition operator. Hence, x += 2 simply means x = x + 2.
Similarly, if we want to do a subtraction, we can write x = x - 2 or x - = 2. The same works for all the 7 operators mentioned in the section above. Chapter 4: Data Types in Python In this chapter, we’ll first look at some basic data types in Python, specifically the integer, float and string. Next, we’ll explore the concept of type casting. Finally, we’ll discuss three more advanced data types in Python: the list, tuple and dictionary. Integers Integers are numbers with no decimal parts, such as -5, -4, -3, 0, 5, 7 etc. To declare an integer in Python, simply write variableName = initial value Example: userAge = 20, mobileNumber = 12398724 Float Float refers to numbers that have decimal parts, such as 1.234, -0.023, 12.01. To declare a float in Python, we write variableName = initial value Example: userHeight = 1.82, userWeight = 67. String String refers to text. To declare a string, you can either use variableName = ‘initial value’ (single quotes) or variableName = “initial value” (double quotes) Example: userName = ‘Peter’, userSpouseName = “Janet”, userAge = ‘30’ In the last example, because we wrote userAge = ‘30’, userAge is a string. In contrast, if you wrote userAge = 30 (without quotes), userAge is an integer. We can combine multiple substrings by using the concatenate sign (+). For instance, “Peter” + “Lee” is equivalent to the string “PeterLee”.
round brackets. If we run the code, we’ll get the output below. The price of this Apple laptop is 1299 USD and the exchange rate is 1.24 USD to 1 EUR The %s formatter is used to represent a string (“Apple” in this case) while the %d formatter represents an integer (1299). If we want to add spaces before an integer, we can add a number between % and d to indicate the desired length of the string. For instance “%5d” %(123) will give us “ 123” (with 2 spaces in front and a total length of 5). The %f formatter is used to format floats (numbers with decimals). Here we format it as %4.2f where 4 refers to the total length and 2 refers to 2 decimal places. If we want to add spaces before the number, we can format is as %7.2f, which will give us “ 1.24” (with 2 decimal places, 3 spaces in front and a total length of 7). Formatting Strings using the format() method In addition to using the % operator to format strings, Python also provides us with the format() method to format strings. The syntax is “string to be formatted”.format(values or variables to be inserted into string, separated by commas) When we use the format method, we do not use %s, %f or %d as placeholders. Instead we use curly brackets, like this: message = ‘The price of this {0:s} laptop is {1:d} USD and the exchange rate is {2:4.2f} USD to 1 EUR’.format(‘Apple’, 1299, 1.235235245) Inside the curly bracket, we first write the position of the parameter to use, followed by a colon. After the colon, we write the formatter. There should not be any spaces within the curly brackets. When we write format(‘Apple’, 1299, 1.235235245), we are passing in three parameters to the format() method. Parameters are data that the method needs in order to perform its task. The parameters
are ‘Apple’, 1299 and 1.235235245. The parameter ‘Apple’ has a position of 0, 1299 has a position of 1 and 1.235235245 has a position of 2. Positions always start from ZERO. When we write {0:s}, we are asking the interpreter to replace {0:s} with the parameter in position 0 and that it is a string (because the formatter is ‘s’). When we write {1:d}, we are referring to the parameter in position 1, which is an integer (formatter is d). When we write {2:4.2f}, we are referring to the parameter in position 2, which is a float and we want it to be formatted with 2 decimal places and a total length of 4 (formatter is 4.2f). If we print message, we’ll get The price of this Apple laptop is 1299 USD and the exchange rate is 1.24 USD to 1 EUR Note: If you do not want to format the string, you can simply write message = ‘The price of this {} laptop is {} USD and the exchange rate is {} USD to 1 EUR’.format(‘Apple’, 1299, 1.235235245) Here we do not have to specify the position of the parameters. The interpreter will replace the curly brackets based on the order of the parameters provided. We’ll get The price of this Apple laptop is 1299 USD and the exchange rate is 1.235235245 USD to 1 EUR The format() method can be kind of confusing to beginners. In fact, string formatting can be more fanciful than what we’ve covered here, but what we’ve covered is sufficient for most purposes. To get a better understanding of the format() method, try the following program. message1 = ‘{0} is easier than {1}’.format(‘Python’, ‘Java’) message2 = ‘{1} is easier than {0}’.format(‘Python’, ‘Java’) message3 = ‘{:10.2f} and {:d}’.format(1.234234234, 12) message4 = ‘{}’.format(1.234234234) print (message1) #You’ll get ‘Python is easier than Java’ print (message2) #You’ll get ‘Java is easier than Python’ print (message3) #You’ll get ‘ 1.23 and 12’
To declare a list, you write listName = [initial values]. Note that we use square brackets [ ] when declaring a list. Multiple values are separated by a comma. Example: userAge = [21, 22, 23, 24, 25] We can also declare a list without assigning any initial values to it. We simply write listName = []. What we have now is an empty list with no items in it. We have to use the append() method mentioned below to add items to the list. Individual values in the list are accessible by their indexes, and indexes always start from ZERO, not 1. This is a common practice in almost all programming languages, such as C and Java. Hence the first value has an index of 0, the next has an index of 1 and so forth. For instance, userAge[0] = 21, userAge[1] = 22 Alternatively, you can access the values of a list from the back. The last item in the list has an index of -1, the second last has an index of -2 and so forth. Hence, userAge[-1] = 25, userAge[-2] = 24. You can assign a list, or part of it, to a variable. If you write userAge2 = userAge, the variable userAge2 becomes [21, 22, 23, 24, 25]. If you write userAge3 = userAge[2:4], you are assigning items with index 2 to index 4-1 from the list userAge to the list userAge3. In other words, userAge3 = [23, 24]. The notation 2:4 is known as a slice. Whenever we use the slice notation in Python, the item at the start index is always included, but the item at the end is always excluded. Hence the notation 2:4 refers to items from index 2 to index 4-1 (i.e. index 3), which is why userAge3 = [23, 24] and not [23, 24, 25]. The slice notation includes a third number known as the stepper. If we write userAge4 = userAge[1:5:2], we will get a sub list consisting of every second number from index 1 to index 5-1 because the stepper is
second item, you write userAge[1] = 5. Your list becomes userAge = [21, 5, 23, 24, 25] To add items, you use the append() function. For instance, if you write userAge.append(99), you add the value 99 to the end of the list. Your list is now userAge = [21, 5, 23, 24, 25, 99] To remove items, you write del listName[index of item to be deleted]. For instance, if you write del userAge[2], your list now becomes userAge = [21, 5, 24, 25, 99] (the third item is deleted) To fully appreciate the workings of a list, try running the following program. #declaring the list, list elements can be of different data types myList = [1, 2, 3, 4, 5, “Hello”] #print the entire list. print(myList) #You’ll get [1, 2, 3, 4, 5, “Hello”] #print the third item (recall: Index starts from zero). print(myList[2]) #You’ll get 3 #print the last item. print(myList[-1]) #You’ll get “Hello” #assign myList (from index 1 to 4) to myList2 and print myList myList2 = myList[1:5] print (myList2) #You’ll get [2, 3, 4, 5] #modify the second item in myList and print the updated list myList[1] = 20 print(myList) #You’ll get [1, 20, 3, 4, 5, 'Hello'] #append a new item to myList and print the updated list myList.append(“How are you”) print(myList) #You’ll get [1, 20, 3, 4, 5, 'Hello', 'How are you'] #remove the sixth item from myList and print the
You can also declare a dictionary using the dict( ) method. To declare the userNameAndAge dictionary above, you write userNameAndAge = dict(Peter = 38, John = 51, Alex = 13, Alvin = “Not Available”) When you use this method to declare a dictionary, you use round brackets ( ) instead of curly brackets { } and you do not put quotation marks for the dictionary keys. To access individual items in the dictionary, we use the dictionary key, which is the first value in the {dictionary key : data} pair. For instance, to get John’s age, you write userNameAndAge[“John”]. You’ll get the value 51. To modify items in a dictionary, we write dictionaryName[dictionary key of item to be modified] = new data. For instance, to modify the “John”:51 pair, we write userNameAndAge[“John”] = 21. Our dictionary now becomes userNameAndAge = {“Peter”:38, “John”:21, “Alex”:13, “Alvin”:“Not Available”}. We can also declare a dictionary without assigning any initial values to it. We simply write dictionaryName = { }. What we have now is an empty dictionary with no items in it. To add items to a dictionary, we write dictionaryName[dictionary key] = data. For instance, if we want to add “Joe”:40 to our dictionary, we write userNameAndAge[“Joe”] = 40. Our dictionary now becomes userNameAndAge = {“Peter”:38, “John”:21, “Alex”:13, “Alvin”:“Not Available”, “Joe”:40} To remove items from a dictionary, we write del dictionaryName[dictionary key]. For instance, to remove the “Alex”:13 pair, we write del userNameAndAge[“Alex”]. Our dictionary now becomes userNameAndAge = {“Peter”:38, “John”:21, “Alvin”:“Not Available”, “Joe”:40} Run the following program to see all these in action. #declaring the dictionary, dictionary keys and data can be of different data types myDict = {“One”:1.35, 2.5:”Two Point Five”, 3:”+”, 7.9:2} #print the entire dictionary
print(myDict) #You’ll get {2.5: 'Two Point Five', 3: '+', 'One': 1.35, 7.9: 2} #Note that items in a dictionary are not stored in the same order as the way you declare them. #print the item with key = “One”. print(myDict[“One”]) #You’ll get 1. #print the item with key = 7.9. print(myDict[7.9]) #You’ll get 2 #modify the item with key = 2.5 and print the updated dictionary myDict[2.5] = “Two and a Half” print(myDict) #You’ll get {2.5: 'Two and a Half', 3: '+', 'One': 1.35, 7.9: 2} #add a new item and print the updated dictionary myDict[“New item”] = “I’m new” print(myDict) #You’ll get {'New item': 'I’m new', 2.5: 'Two and a Half', 3: '+', 'One': 1.35, 7.9: 2} #remove the item with key = “One” and print the updated dictionary del myDict[“One”] print(myDict) #You’ll get {'New item': 'I’m new', 2.5: 'Two and a Half', 3: '+', 7.9: 2} For more examples and sample codes of working with a dictionary, you can refer to Appendix D. Chapter 5: Making Your Program Interactive Now that we’ve covered the basics of variables, let us write a program that makes use of them. We’ll revisit the “Hello World” program we wrote
zero or more expressions as parameters, separated by commas. In the statement below, we passed 5 parameters to the print() function. Can you identify them? print ("Hello World, my name is", myName, "and I am", myAge, "years old.") The first is the string ”Hello World, my name is” The next is the variable myName declared using the input function earlier. Next is the string “and I am”, followed by the variable myAge and finally the string “years old.”. Note that we do not use quotation marks when referring to the variables myName and myAge. If you use quotation marks, you’ll get the output Hello World, my name is myName and I am myAge years old. instead, which is obviously not what we want. Another way to print a statement with variables is to use the % formatter we learned in Chapter 4. To achieve the same output as the first print statement above, we can write print ("Hello World, my name is %s and I am %s years old." %(myName, myAge)) Finally, to print the same statement using the format() method, we write print (“Hello World, my name is {} and I am {} years old”.format(myName, myAge)) The print() function is another function that differs in Python 2 and Python 3. In Python 2, you’ll write it without brackets, like this: print "Hello World, my name is " + myName + " and I am " + myAge + " years old." Triple Quotes If you need to display a long message, you can use the triple-quote symbol (‘’’ or “””) to span your message over multiple lines. For instance, print (‘’’Hello World. My name is James and I am 20 years old.’’’) will give you Hello World. My name is James and I am 20 years old. This helps to increase the readability of your message.
Escape Characters Sometimes we may need to print some special “unprintable” characters such as a tab or a newline. In this case, you need to use the \ (backslash) character to escape characters that otherwise have a different meaning. For instance to print a tab, we type the backslash character before the letter t, like this: \t. Without the \ character, the letter t will be printed. With it, a tab is printed. Hence, if you type print (‘Hello\tWorld’), you’ll get Hello World Other common uses of the backslash character are shown below.
shows the command and the following lines show the output. \n (Prints a newline) print (‘Hello\nWorld’) Hello World \ (Prints the backslash character itself) print (‘\’)
\” (Prints double quote, so that the double quote does not signal the end of the string) print (“I am 5'9" tall”) I am 5’9” tall \’ (Print single quote, so that the single quote does not signal the end of
the string)
print (‘I am 5\’9” tall’) I am 5’9” tall If you do not want characters preceded by the \ character to be interpreted as special characters, you can use raw strings by adding an r before the first quote. For instance, if you do not want \t to be interpreted as a tab, you should type print (r‘Hello\tWorld’). You will get Hello\tWorld as the output. Chapter 6: Making Choices and Decisions Congratulations, you’ve made it to the most interesting chapter. I hope