syntactical whenever you make typo of some sortyou create syntactical error some python syntactical errors are quite easy to find because the application simply doesn' run the interpreter may even point out the error for you by highlighting the errant code and displaying an error message howeversome syntactical errors are quite hard to find python is case sensitiveso you may use the wrong case for variable in one place and find that the variable isn' quite working as you thought it would finding the one place where you used the wrong capitalization can be quite challenging most syntactical errors occur at compile time and the interpreter points them out for you fixing the error is made easy because the interpreter generally tells you what to fixand with considerable accuracy even when the interpreter doesn' find the problemsyntactical errors prevent the application from running correctlyso any errors the interpreter doesn' find show up during the testing phase few syntactical errors should make it into production as long as you perform adequate application testing semantic when you create loop that executes one too many timesyou don' generally receive any sort of error information from the application the application will happily run because it thinks that it' doing everything correctlybut that one additional loop can cause all sorts of data errors when you create an error of this sort in your codeit' called semantic error semantic errors occur because the meaning behind series of steps used to perform task is wrong -the result is incorrect even though the code apparently runs precisely as it should semantic errors are tough to findand you sometimes need some sort of debugger to find them provides discussion of tools that you can use with python to perform tasks such as debugging applications you can also find blog posts about debugging on my blog at logical some developers don' create division between semantic and logical errorsbut they are different semantic error occurs when the code is essentially correct but the implementation is wrong (such as having loop execute once too oftenlogical errors occur when the developer' thinking is faulty in many casesthis sort of error happens when the developer uses relational or logical operator incorrectly howeverlogical errors can happen in all sorts of other waystoo for examplea developer might think that data is always stored on the local hard drivewhich means that the application may behave in an unusual manner when it attempts to load data from network drive instead