Flag control variable

Gary Herron gary.herron at islandtraining.com
Tue Feb 11 20:20:27 CET 2014

On 02/11/2014 11:01 AM, luke.geelen at gmail.com wrote:
> when using python script.py 2 \* 2 i get Traceback (most recent call 
> last): File "math2.py", line 5, in <module> sign = int(sys.argv[2]) 
> ValueError: invalid literal for int() with base 10: '*' 

Stop trying to guess what is going on.  Print out sys.argv, and *see* 
what values are there.  Then read the error message.

You wrote your script expecting sys.argv[2] to contain an int, but in 
fact (according to the error) it contains a '*' -- which can't be 
converted to an integer obviously.  Your error is in running the script 
incorrectly, *OR* in your understanding of how the command line 
arguments get placed in sys.argv.  In either case you best bet is to 
examine sys.argv by printing it (or examining it within a debugger) and 
*see* what values it contains.  Then adjust your script (or the running 
of it) accordingly.

These are very beginner level debugging suggestions.  If you develop the 
skill to read and understand the error messages, and the skill to print 
(or otherwise examine) the values your program is dealing with, you 
progress will by 100's of times faster then this slow wait for someone 
to respond to on this list.

Gary Herron

More information about the Python-list mailing list