IndexError: List index out of range issue - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: IndexError: List index out of range issue (/thread-22169.html) |
IndexError: List index out of range issue - Adem - Nov-01-2019 Hi, could someone help me on this code plz ? It says"IndexError: List index out of range issue" in "n = int(sys.argv[1])". btw i m using python 3.7 if it can help. import sys import numpy as np import matplotlib import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatter def multiplication_table(n, N=None, number_labels=True): """Create and plot an image of a multiplication table modulo n The table is of ij % n for i, j = 1, 2, ..., N-1. If not supplied, N defaults to n. If N is a mutiple of n, the pattern is repeated across the created image. The "rainbow" colormap is used, but zeros (corresponding to factors of n) are displayed in white. """ if not N: N=n # A multiplication table (modulo n) arr = np.fromfunction(lambda i,j:(i+1)*(j+1) % n, (N-1,N-1)) # Select a colormap, but we'll set 0 values to white cmap = matplotlib.cm.get_cmap('rainbow') cmap.set_under('w') fig, ax = plt.subplots() # Plot an image of the multiplication table in colours for values greater # than 1. Zero values get plotted in white thanks to set_under, above. ax.imshow(arr, interpolation='nearest', cmap=cmap, vmin=1) # Make sure the tick marks are correct (start at 1) tick_formatter = FuncFormatter(lambda v, pos: str(int(v+1))) ax.xaxis.set_major_formatter(tick_formatter) ax.yaxis.set_major_formatter(tick_formatter) # For small n, write the value in each box of the array image. if number_labels and N < 21: for i in range(N-1): for j in range(N-1): ax.annotate(s=str((i+1)*(j+1)%n), xy=(i,j), ha='center', va='center') # The user supplies n (and optionally N) as command line arguments n = int(sys.argv[1]) try: N = int(sys.argv[2]) except IndexError: N = None multiplication_table(n, N, False) plt.show() RE: IndexError: List index out of range issue - ichabod801 - Nov-01-2019 Well, that depends on how you call it. You have to provide at least one arguments to that script when it is called from the command line. Otherwise you will get that error. |