Syntax and logical errors
Two types of errors can occur in Python:
1. Syntax errors – usually the easiest to spot, syntax errors occur when you make a typo. Not ending an if statement with the colon is an example of an syntax error, as is misspelling a Python keyword (e.g. using whille instead of while). Syntax error usually appear at compile time and are reported by the interpreter.
Here is an example of a syntax error:
x = int(input('Enter a number: ')) whille x%2 == 0: print('You have entered an even number.') else: print('You have entered an odd number.')
Notice that the keyword whille is misspelled. If we try to run the program, we will get the following error:
C:Python34Scripts>python error.py File "error.py", line 3 whille x%2 == 0: ^ SyntaxError: invalid syntax
2. Logical errors – also called semantic errors, logical errors cause the program to behave incorrectly, but they do not usually crash the program. Unlike a program with syntax errors, a program with logic errors can be run, but it does not operate as intended.
Consider the following example of an logical error:
x = float(input('Enter a number: ')) y = float(input('Enter a number: ')) z = x+y/2 print('The average of the two numbers you have entered is:',z)
The example above should calculate the average of the two numbers the user enters. But, because of the order of operations in arithmetic (the division is evaluated before addition) the program will not give the correct answer:
>>> Enter a number: 3 Enter a number: 4 The average of the two numbers you have entered is: 5.0 >>>
To rectify this problem, we will simply add the parentheses: z = (x+y)/2
Now we will get the correct result:
>>> Enter a number: 3 Enter a number: 4 The average of the two numbers you have entered is: 3.5 >>>