College Board Big Idea 1

Identifying and Correcting Errors (Unit 1.4)

Become familiar with types of errors and strategies to fixing them

  • Lightly Review Videos and take notes on topics with Blog
  • Complete assigned MCQ questions

Here are some code segments you can practice fixing:

alphabet = "abcdefghijklmnopqrstuvwxyz"

alphabetList = []

for i in alphabet:
    alphabetList.append(i)

print(alphabetList)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

The intended outcome is to determine where the letter is in the alphabet using a while loop

  • What is a good test case to check the current outcome? Why?
  • Make changes to get the intended outcome.
letter = input("What letter would you like to check?")

i = +1


while i < 26:
    if alphabetList[i] == letter:
        print("The letter " + letter + " is the " + str(i + 1) + " letter in the alphabet")
    i += 1
The letter c is the 3 letter in the alphabet

The intended outcome is to determine where the letter is in the alphabet using a for loop

  • What is a good test case to check the current outcome? Why?
  • Make changes to get the intended outcome.
count = 0

letter = input("What letter would you like to check?")

for i in alphabetList:
    count = count +1
    if i == letter:
        print("The letter " + letter + " is the " + str(count) + " letter in the alphabet")
The letter z is the 26 letter in the alphabet

This code outputs the even numbers from 0 - 10 using a while loop.

  • Analyze this code to determine what can be changed to get the outcome to be odd numbers. (Code block below)
evens = []
i = 1

while i <= 10:
    evens.append(i)
    i += 2

print(evens)    
[1, 3, 5, 7, 9]

This code should output the odd numbers from 0 - 10 using a while loop.

odds = []
i = 0

while i <= 10:
    odds.append(i)
    i += 2

print(odds)
[0, 2, 4, 6, 8, 10]

This code outputs the even numbers from 0 - 10 using a for loop.

  • Analyze this code to determine what can be changed to get the outcome to be odd numbers. (Code block below)
numbers = [0,1,2,3,4,5,6,7,8,9,10]
evens = []

for i in numbers:
    if (numbers[i] % 2 == 0):
        evens.append(numbers[i])

print(evens)
[0, 2, 4, 6, 8, 10]

This code should output the odd numbers from 0 - 10 using a for loop.

numbers = [0,1,2,3,4,5,6,7,8,9,10]
odds = []

for i in numbers:
    if (numbers[i] % 2 == 1):
        odds.append(numbers[i])

print(odds)
[1, 3, 5, 7, 9]

The intended outcome is printing a number between 1 and 100 once, if it is a multiple of 2 or 5

  • What values are outputted incorrectly. Why?
  • Make changes to get the intended outcome.
numbers = []
newNumbers = []
i = 0

while i < 100:
    numbers.append(i)
    i += 1

for i in numbers:
    if numbers[i] % 5 == 0:
        newNumbers.append(numbers[i])
    if numbers[i] % 2 == 1:
        newNumbers.append(numbers[i])

print(newNumbers) 
[0, 1, 3, 5, 5, 7, 9, 10, 11, 13, 15, 15, 17, 19, 20, 21, 23, 25, 25, 27, 29, 30, 31, 33, 35, 35, 37, 39, 40, 41, 43, 45, 45, 47, 49, 50, 51, 53, 55, 55, 57, 59, 60, 61, 63, 65, 65, 67, 69, 70, 71, 73, 75, 75, 77, 79, 80, 81, 83, 85, 85, 87, 89, 90, 91, 93, 95, 95, 97, 99]

Challenge

menu =  {"burger": 3.99,
         "fries": 1.99,
         "drink": 0.99}
print (menu)

order= input("What can i get for you? >>")

if order == "burger":
    print("you ordered burger, your total is $3.99")
elif order == "fries":
    print("you ordered fries, your total is $1.99")
elif order == "drink":
    print("you ordered a drink, your total is $0.99")
elif order != "burger" or "fries" or "drink":
    print("That item is not on the menu, try re-order")
{'burger': 3.99, 'fries': 1.99, 'drink': 0.99}
you ordered a drink, your total is $0.99

Hacks

Now is a good time to think about Testing of your teams final project...

  • What errors may arise in your project?
  • What are some test cases that can be used?
  • Make sure to document any bugs you encounter and how you solved the problem.
  • What are “single” tests that you will perform on your project? Or, your part of the project?
    • As Hack Design and Test plan action … Divide these “single” tests into Issues for Scrum Board prior to coding. FYI, related tests could be in same Issue by using markdown checkboxes to separate tests.