Skip to main content

365 DAYS OF CODE - DAY 18

The first documented bug was first found by Grace Hopper.

Steps in Debugging (Tips and Techniques):

Describe the Problem – If the problem is messy and it is not well understood in your head, it is almost impossible to debug it. You have to untangle the problem and try to make sense of what is going on.

Reproduce the Bug – Bugs that show up occasionally are quite difficult to debug. Reproducing the bug helps you discover the problem. (Not too understandable but ok)

Remember on day 2 when I said I was a computer sometimes?? The next technique is to

Play Computer: The skill of pretending to be a computer, reading through your code and imagining what you are going to do each time is really useful especially when you are debugging.

When the editor or console is giving you an error, fix them before you continue. On the console, copy the error message that is not specific to your code and google search adding python to it to be specific. Stack Overflow is a place that offers good fix suggestions.

Try/Except block is used to catch a potentially dangerous code and trap it in a try block, then create an except block to counter it. Probably print out something to inform the user of the situation.

Example from the course:

try:
    age =
int(input("How old are you?"))
except ValueError:
   
print("You have typed in a an invalid number. Please try again with a numerical response such as 15.")
    age =
int(input("How old are you?"))

if age > 18:
   
print(f"You can drive at age {age}.")

 

Try to help people debug their code.

Use the print() statement.

Use a debugger in PyCharm

A breakpoint is created by clicking on the gutter of our code (the numbers located on the LHS i.e., the line numbers). The breakpoint puts a break on the code at that particular line.

Take a break

Ask a friend

Run your code often, confirm that it is actually doing what you want it to do

Ask Stack Overflow

Final notes:

I was going to write out useful notes from today's debugging class but got tired at the later part of the class :(

But, I managed to break down tomorrow's exercise into workable comments.

:)

Comments

Popular posts from this blog

365 DAYS OF CODE - DAY 0

DAY 0 THOUGHT PROCESS Day Zero of the 365 days of code highlights my state of mind before the actual start of the program. Yes, it is a program. A program I set for myself to make sure I actually put in the work on a daily. I have tried coding before but have never been quite consistent with it. A friend advised me to try coding daily if I really wanted to be great at it someday. He also stated that it would take a long time and I should be prepared for it. During the same period, I noticed he was on a year's worth streak of chess which made me realize I could also do the same but with coding. I signed up for the 100 days of code course on Udemy and plan on starting my coding journey with Angela Yu and the thousands of students also taking the course. I also drafted my own copy of the pledge, copied and modified from the 100 Days of Python Pledge from the course materials. It is currently pasted on my wall as a constant reminder. Finally, I will also be recording my process here...

365 DAYS OF CODE - DAY 13

What is wrong with this code?? Can you tell what it does?? import art n1 = 0 n2 = 0 selected_operation = "" solution = 0 def add (n1, n2): return n1 + n2 def subtract (n1, n2): return n1 - n2 def multiply (n1, n2): return n1 * n2 def divide (n1, n2): return n1 / n2 operations = { "+" : add, "-" : subtract, "*" : multiply, "/" : divide } def rest_of_calculation (): print ( "+ \n - \n * \n /" ) selected_operation = input ( "Pick an operation: " ) n2 = float ( input ( "What is the next number?: " )) for key in operations: if key == selected_operation: solution = operations[key](n1, n2) print ( f" { n1 } { key } { n2 } = { solution } " ) print (art.logo) n1 = float ( input ( "What is the first number?: " )) rest_of_calculation() while True : new_calculation = input ( f"Type 'y' to continue calcu...

365 DAYS OF CODE - DAY 10

I realized that I have been tagging each day in accordance with the 100 days of python course . Now, I am one day behind (it is day 10 of the 365 days of code but day 9 on the python course I am taking right now) because I made sure to review unclear exercises yesterday. It is fine regardless. On day 9 of the python course, we looked at dictionaries, its table-likeness (2 columned) One tiny forgotten comma leads to 4 different errors and 1 warning, the prominent one being the SyntaxError. But shouldn’t it highlight line 3 instead of line 4?? Comma added, Error fixed. My Grading Program Code: student_scores = {     'Harry': 88,     'Ron': 78,     'Hermione': 95,     'Draco': 75,     'Neville': 60 }   student_grades = {}   for key in student_scores:     if student_scores[key] > 90:         student_scores[key] = "O...