# Issuing a usage method

A common way to help users with scripts that take command line arguments is to issue a usage message if they get it wrong, as in the following code example.

# square.py
import sys

try:
n = int(sys.argv[1])
except (IndexError, ValueError):
sys.exit('Please enter an integer, <n>, on the command line.\nUsage: '
'python {:s} <n>'.format(sys.argv[0]))
print(n, 'squared is', n**2)


The error message here is reported and the program exits if no command line argument was specified (and hence indexing sys.argv[1] raises an IndexError} or the command line argument string does not evaluate to an integer (in which case the int cast will raise a ValueError).

$python square.py hello Please enter an integer, <n>, on the command line. Usage: python square.py <n>$ python square.py 5
5 squared is 25