<< Chapter < Page | Chapter >> Page > |
Figure 8 . A serious programming problem. |
---|
>>>xypdq = 6>>>pzmbw = 5>>>xypdq + pzmbw
11>>>xyppq = 16 # accidental misspelling>>>xypdq + pzmbw # correct spelling
11>>> |
The problem arose in the fifth line of text in Figure 8 . In this line, the programmer intended to assign a value of 16 to the existing variable named xypdq. However, because of a spelling error, the programmerinadvertently created a new variable named xyppq and assigned the new value of 16 to the new variable insteadof assigning it to the existing variable.
As a result, the value stored in the original variable named xypdq wasn't changed. When that variable was used later in an expression, the result did not meet theprogrammer's expectations.
This error is illustrated in the diagram for the code visualizer in Figure 9 .
Figure 9. Visualizer showing result of a spelling error.
The code in the code window in Figure 9 is similar to the interactive code in Figure 8 .
The diagram on the right in Figure 9 shows a variable named xyppq (not xypdq) that exists solely because of a spelling error when writing the code. That variable should not exist. In addition, that variable points toan object of type int containing a value 16. That object also should not exist. (The computer does exactly what you tell it to do, even if what you tell it to do is wrong.)
This is one of the greatest dangers of using a programming language that doesn't require the declaration of variables. This type of spelling error iseasy to make (as a result of a simple typing error) , and can be extremely difficult to find and fix.
The best defense against this kind of error is to make all of your variable names meaningful. Then if you make a typing error (that results in a spelling error) , you might have a better chance of finding it later.
Some meaningful variable names follow. Note the judicious use of upper and lower case to visually break the variable name into separate recognizable words. This is anaming convention that has become very popular, particular among Java programmers. It is commonly referred to as camelCase as in thisCamelHasFourHumps .
The variable named MyUpperLimit is not the same variable as the one named myUpperLimit .
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
-end-
Notification Switch
Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?