Skip to main content

Section 2.13 Debugging

At this point, the syntax error you are most likely to make is an illegal variable name, like class and yield, which are keywords, or odd~job and US$, which contain illegal characters.
If you put a space in a variable name, Python thinks it is two operands without an operator:

Checkpoint 2.13.1.

    csp-10-2-2: Which error will you get if you name a variable “bad name”?
  • NameError
  • No, a NameError occurs when a variable is used before it is defined.
  • SyntaxError
  • This error comes from bad input.
  • TypeError
  • No, a TypeError occurs when an operation or function is applied to an object of inappropriate type.
  • There will not be an error
  • No, this will cause an error - see above for an example.
For syntax errors, the error messages don't help much. The most common messages are SyntaxError: invalid syntax and SyntaxError: invalid token, neither of which is very informative.
The runtime error you are most likely to make is a “use before def;” that is, trying to use a variable before you have assigned a value. This can happen if you spell a variable name wrong:
Variables names are case sensitive, so LaTeX is not the same as latex.
At this point, the most likely cause of a semantic error is the order of operations. For example, to evaluate \(1 \over {2\pi }\) (which is .159), you might be tempted to write
But the division happens first, so you would get \(\pi \over 2\text{,}\) which is not the same thing! There is no way for Python to know what you meant to write, so in this case you don't get an error message; you just get the wrong answer. Try adding parentheses to the code above to return the correct answer.

Checkpoint 2.13.2.

csp-10-2-5: ________ is the process of fixing errors in your code.

Checkpoint 2.13.3.

    csp-10-2-6: Which error will you get if you use the equation 1/2*3.14 instead of 1/(2*3.14)?
  • NameError
  • No, a NameError occurs when a variable is used before it is defined.
  • SyntaxError
  • No, a SyntaxError occurs when the program cannot understand a line of code.
  • TypeError
  • No, a TypeError occurs when an operation or function is applied to an object of inappropriate type.
  • There will not be an error
  • This will still compute, but will not return the expected result.