Python Programming course

This Python course is aimed to be completed in one semester. It is an introductory course to Python, meaning that the students will not require prior knowledge of Python for this course

Lesson plan:

Lesson # Lesson
Lesson 1 print()
Lesson 2 Using math
Lesson 3 Variables
Lesson 4 input()
Lesson 5 Comments
Lesson 6 if(), elif(), else()
Lesson 7 Understanding strings, integers, and floats
Lesson 8 Operators
Lesson 9 While loops
Lesson 10 For loops
Lesson 11 Randomness
Lesson 12 Unit test 1
Lesson 13 Tuples
Lesson 14 Lists
Lesson 15 Dictionaries
Lesson 16 Functions
Lesson 17 Understanding scopes
Lesson 18 Modules
Lesson 19 Unit test 2
Lesson 20 Reading from text files
Lesson 21 Writing to a text file
Lesson 22 Pickling
Lesson 23 Hnadling exceptions
Lesson 24 Unit test 3
Lesson 25 Objects
Lesson 26 Classes
Lesson 27 Methods
Lesson 28 Attributes
Lesson 29 Printing objects
Lesson 30 Properties
Lesson 31 Sending and recieveing messages between classes
Lesson 32 Extending a class through inheritance
Lesson 33 Unit test 4

Unit test 1:

1) Print the string "Hello world!"

Answer:

print("Hello world!")

2) Create a program that adds two numbers together

Example answer:

number1 = int(input("Enter the first number: "))

number2 = int(input("Enter the second number: "))

answer = number1 + number2

print(answer)

3) How do you create comments, how does Python treat them, and why do we use comments

Example answer:

Comments are started with #, Python doesn't do anything with comments, however comments are useful for others to understand our code

4) Create a program that simulates throwing a six-sided die, by having the throw be random, and then printing the result to the user

Example answer:

inport random

throw = random.randint(1,6)

print("The dice landed on", throw)

5) Create a program that prints "Hello!" then the user says "Hello", exits the program when the user says "Goodbye", and tells the user that it did not understand what they said if the user does not say "Hello" or "Goodbye"

Example answer:

exit_program = 0

while(exit_program == 0):

answer = input("What will you say to the program?: ")

if(answer == "Hello"):

print("Hello!")

elif(answer == "Goodbye"):

exit_program = 1

else:

print("I don't understand")

6) Create a program that exits itself if the user answers "y" or "Y" to the question: "Exit the program?" using an operator

Example answer:

loop_exit = 0

while (loop_exit == 0):

answer = input("Exit program? y/n")

if(answer == "y" or answer == "Y"):

loop_exit = 1

7) Using a for loop, create a program that increments a number by 1 5 times, and then prints the number after each increment

Example answer:

number = 0

for x in range(0, 5):

number += 1

print(number)

Unit test 2

1) Create a tuple containing: "chair", "table", "floor"

Example answer:

example_tuple = ("chair", "table", "floor")

2) Create a list containing: "chair", "table", "floor"

Example answer:

example_list = ["chair", "table", "floor"]

3) Create a dictionary containing three items

Example answer:

example dictionary = {"item1_1":"item1_2",

"item2_1":"item2_2",

"item3_1:"item3_2"}

4) Create a function that prints "Hello world!" and run it

Example answer:

def hello_world():

print("Hello world!")

hello_world()

5) In a new python script, assuming the file name is funcions.py, import the previous function and run it in the new script

Example answer:

from functions import hello_world

hello_world()

Unit test 3

1) Open a text file called test.txt in read only mode from python (assuming the test.txt file is located in the Python directory), then print out the first 3 lines from the file

Example answer:

text_file = open("test.txt", "r")

for x in range(0, 3):

print(text_file.readline()

text_file.close

2) Create a text file called test.txt in write only mode from python, then have Python write the following lines:

This is line 1

This is line 2

This is line 3

Example answer:

text_file = open("test.txt", "w")

text_file.write("This is line 1\n")

text_file.write("This is line 2\n")

text_file.write("This is line 3\n")

text_file.close()

3) Create 3 lists, each with 3 elements. Pickle the 3 lists and then unpickle them and print the lists

Example answer:

import pickle, shelve

print("Creating lists...")

list1 = ["element1_1", "element2_1", "element3_1"]

list2 = ["element1_2", "element2_2", "element3_2"]

list3 = ["element1_3", "element2_3", "element3_3"]

print("Pickling lists...")

f = open("pickles1.dat", "wb")

pickle.dump(list1, f)

pickle.dump(list2, f)

pickle.dump(list3, f)

print("Unpickling lists...")

f = open("pickles1.dat", "rb")

list1 = pickle.load(f)

list2 = pickle.load(f)

list3 = pickle.load(f)

print("Printing lists...")

print(list1)

print(list2)

print(list3)

4) You have created a program that takes a float given by the user and multiplies it by 5. Give you code the ability to recognize if a value is not a number and have the user try again assuming you have the following code:

number = float(input("Enter the number you need multiplied by 5: "))

answer = number * 5

print(answer)

Example answer:

while(True):

try:

number = float(input("Enter the number you need multiplied by 5: "))

break

except:

print("Thats was not a number, please try again!")

answer = number * 5

print(answer)

Unit test 4

1) You have been hired by a bank to create a program that uses objects to store accounts. Use attributes to more easily specify the starting funds of an account, as well as having the funds show if you print the object. Make sure to code in a way to add and remove funds from an account

Example answer:

class CheckingAccount(object):

"""A checking account"""

def __init__(self, funds):

self.funds = funds

def __str__(self)

k = "This account currently has $"

k += str(self.funds)

return k

account1 = CheckingAccount(100)

account2 = CheckingAccount(1000)

while(True):

print("Welcome to test bank")

print("1 - Check the funds of an account")

print("2 - Remove funds from an account")

print("3 - Add funds to an account")

print("4 - Exit")

answer = input()

if (answer == "1"):

accountNumber = input("Specify which account to check: ")

if (accountNumber == "1"):

print(account1)

elif (accountNumber == "2"):

print(account2)

else:

print("That is not a valid account!")

elif (answer == "2"):

accountNumber = input("Specify which account to change: ")

if (accountNumber == "1"):

removeFunds = int(input("How much money to remove?: "))

account1.funds -= removeFunds

elif (accountNumber == "2"):

removeFunds = int(input("How much money to remove?: "))

account2.funds -= removeFunds

else:

print("That is not a valid account!")

elif (answer == "3"):

accountNumber = input("Specify which account to change: ")

if (accountNumber == "1"):

addFunds = int(input("How much money to add?: "))

account1.funds += addFunds

elif (accountNumber == "2"):

addFunds = int(input("How much money to add?: "))

account2.funds += addFunds

else:

print("That is not a valid account!")

elif (answer == "4"):

break

else:

print("That is not a valid choice!")

2) Create a private attribute and use a property to return its value

Example answer:

class Example(object):

"""An object to test private attributes"""

def __init__(self, vatiable)

print("Initialising")

self.__variable = variable

@property

def variable(self):

return self.__variable

def test_variable(self):

print("The private variable is:", self.variable)

example_object = Example("test")

example_object.test_variable()

3) Send a message from one class to another, and have the other class do something with it

Example answer:

class Object1(object):

"""The first object"""

def send_message(self, reciever):

print("Sending the message")

reciever.recieve_message()

class Object2(object):

"""The second object"""

def recieve_message(self):

print("Message recieved")

test1 = Object1()

test2 = Object2()

test1.send_message(test2)

4) Create two classes and have one class inherit all the methods from the other

Example answer:

class Parent(object):

"""The parent class"""

def test1(self):

print("This is the inherited method

class Child(Parent):

"""The child class"""

child = Child()

child.test1()