Program Development With Python Compiling How does a


































- Slides: 34

Program Development With Python

Compiling � How does a program go from the code I write turn into binary that the computer can read? �x =5 10110101001

Compiling � Computers have a program called a compiler that has programming conventions stored in them. � The compiler knows how to turn your code into binary. � This is why syntax is so important in coding

Linking � Linking is a part of the compilation process that brings other programs into the compiled code � When you import a file (e. g. import sys) the linker goes at compilation and brings that file into the compiled code � Linking is especially important with library functions.

Library functions � Library functions are standard functions that come with Python. � Functions such as range() and print() are library functions because Python already knows what they are.

Programming Style � Style is very important in Python ◦ Indentations are used to denote blocks of code as separate from each other ◦ A # denotes a comment �Comments are lines in code that are not compiled by the compiler. �They are used for book-keeping by the programmer

if Statements � if Statements are statements that evaluate a condition and act accordingly: x=3 if(x>2): print(“Big) else: print(“Small”) � But do if statements have a more powerful component?

Nested If’s � Assigning grades: ◦ How would you write a program that, given a numerical grade, prints the letter grade? � Nested if statements allow you to evaluate conditions inside of a condition � This works exactly the same as nested ifs in excel.

Nested If’s � However, despite their usefulness, Nested if’s seem to be a sloppy way to do coding. They involve a lot of indents and can make code confusing to understand. � But how can we get around this?

Switch Statements � Here is the same program written using a switch statement:

Switch Statements � Unfortunately, Python doesn’t support switch statements. � Usually writing switch statements has some other workaround that the programmer hasn’t found, so if you think you need a switch statement, think harder! � if nothing comes to mind, nested if statements will do just find if you can figure out how to implement them.

else if � else if statements are another way to do switch statements without the massive indentations of nested if statements � else if statements allow you to check a second case if the first case fails.

While Loops � Loops are very important in programming. While loops are useful ways to avoid writing too many lines of code. � However, loops should be carefully implemented so as not to force an infinite loop.

For Loops � For loops are even more useful than While loops � For loops are good for counting things or for scrolling through an array one index at a time.

Where to begin: � First, import sys ◦ Sys contains the basic system library files ◦ You will probably end up using some of these functions in your programs ◦ You also may need to import additional files depending on what you are doing � Initialize your variables ◦ Variables should be initialized at the top of your program for cleaner bookkeeping ◦ Normally, variables get initialized to 0 or None, depending on variable type

Writing a program � Next, you need to think about how you are going to approach the problem. � if you are asked to write a program that will compute number of buses to carry a number of students that the user will input

You will need: � Variable to hold number of students � Variable to hold number of buses � Variable to hold number of seats per bus

Obtain the input � Input function: ◦ The input function returns the input of the user until the enter key is pressed ◦ The input is passed a prompt for the user � int function will make the input into an integer

Compute the number of buses � Division seems like a good choice here: � But what happens if you have left over students? ◦ (e. g. there are 20 seats per bus and 43 students)

Compute the number of buses � The division of 43/20 will give you 2. 15 � Since you can’t order 2. 15 buses, you will need 3 � Problem: When you convert 2. 15 to an integer, it truncates the decimal: ◦ Float 2. 15 = Integer 2 � What can you do?

Compute the number of buses � You need to add an extra bus if you have a decimal point. � How can you determine if you have a remainder after the division?

Modulus Operator � Python provides the programmer with a modulus operator ◦ Modulus is represented by % ◦ Modulus returns the remainder after an integerdivision ◦ e. g. 5%3 = 2 ◦ e. g. 7%6 = 1 ◦ e. g. 10%4 = 2 � We can use modulus to solve this problem

Compute the number of buses � Here is what our computation would look like:

print the answer � The user needs to be given the answer as a form of output. � We can print this to the screen � Commas can be used to separate strings from non-strings

Writing a program

Debugging � What happens if I mistype something � e. g. I import syst instead of sys Python tells us the line that caused the error

Debugging � What happens if I mistype a keyword like import? �I get a syntax error

Debugging � For the most part, Python will tell you when you have done something wrong ◦ if you are trying to type a keyword, and it doesn’t turn a different color, you have probably mistyped it ◦ Otherwise, look at the line Python’s shell provides you with in the error and see if you can notice anything wrong.

Functions � All of Python’s inherent functions are located online at http: //docs. python. org/3. 1/library/

Common Mistakes � ofr i in range(5) � if (x<3) � while(x And y): � X is an array of length 5: print(x[5]) � print(Hello World) � if(y=4) � d = float(7/4) � x = 3 + input(“Enter a number”) � x = int(7)

Common Mistakes def function(x): a=3 return x+3 c = function(5) b=a+c print(b)

Common Mistakes def function(x): print(x) y = function(4) print(y)

Practice: � Write a program that asks the user for a number of hours and a pay rate and computes the total payment. Remember to account for overtime being over 40 hours at time and a half. � Write a program that will find the largest number in an array and print it out. � Write a program that will print pi to 5 digits of precision. (pi can be obtained with math. pi and you will need to import math)

Homework � Write a program that, given a speed (mph) and time traveled (h), will give you the distance traveled (mi). � Write a program that will compute the Fahrenheit temperature given a Celsius temperature. (Hint: F = (9/5)C + 32) ◦ Make this program continue to ask for input until the user enters “-99” � Make a program that, given a state abbreviation, will print the name of the state. This should accept capital or lowercase letters.