ValueError: invalid literal for int () with base 10. How to fix for alphanumeric values : I am working with a code which gives me the XY Coordinates and Plot number of map like plot number 20,21,22 etc. But if the map had alpha-numeric values like 20-A,20A or 20 A so here i am stuck because when i input the value like 20-A i got this error "ValueError: invalid literal for int () with base 10". So plz help me how to input alpha-numeric values.

Here is my code.

            import matplotlib.pyplot as plt
    from PIL import Image
    import numpy as np
    import Tkinter as tk
    import tkSimpleDialog
    
    #Add path of map file here. The output will be saved in the same path with name map_file_name.extension.csv
    path = "maps/21.jpg"
    
    
    #Set this to true for verbose output in the console
    debug = False
    
    
    #Window for pop ups
    root = tk.Tk()
    root.withdraw()
    root.lift()
    root.attributes('-topmost',True)
    root.after_idle(root.attributes,'-topmost',False)
    
    
    #Global and state variables
    global_state = 1
    xcord_1, ycord_1, xcord_2, ycord_2 = -1,-1,-1,-1
    edge1, edge2 = -1,-1
    
    #Defining Plot
    img = Image.open(path)
    img = img.convert('RGB')
    img = np.array(img)
    
    if(debug):
        print "Image Loaded; dimensions = "
        print img.shape
    
    #This let us bind the mouse function the plot
    ax = plt.gca()
    ax.axes.get_xaxis().set_visible(False)
    ax.axes.get_yaxis().set_visible(False)
    fig = plt.gcf()
    #Selecting tight layout
    fig.tight_layout()
    #Plotting Image
    imgplot = ax.imshow(img)
    
    #Event listener + State changer
    def onclick(event):
        global xcord_1,xcord_2,ycord_1,ycord_2,edge1,edge2, imgplot,fig, ax, path
        if(debug):
            print "Single Click Detected"
            print "State = " + str(global_state)
        if event.dblclick:
            if(debug):
                print "Double Click Detection"
            global global_state
            if(global_state==0):
    
    
                xcord_1 = event.xdata
                ycord_1 = event.ydata
    
                edge1 = (tkSimpleDialog.askstring("2nd", "No of 2nd Selected Plot"))
                #Draw here
                if edge1 is None: #Incase user cancels the pop up. Go to initial state
                    global_state = 1
                    pass
                else:
                    edge1 = int(edge1)
                    global_state = 1
                    difference = edge2-edge1
                    dif_state = 1;
                    #So difference is always positive. Dif_state keeps track of plot at which side has the larger number
                    if difference <0:
                        dif_state = -1;
                        difference *= -1
                    #Corner Case; labelling a single plot
                    if(difference == 0):
                        import csv
                        fields = [int(xcord_1),int(ycord_1),edge1]
                        plt.scatter(int(xcord_1),int(ycord_1),marker='$' + str(edge1) + '$', s=150)
                        with open(path+'.csv', 'a') as f:
                            writer = csv.writer(f)
                            writer.writerow(fields)
                    else:
                        if(debug):
                            print "P1 : (" + str(xcord_1) + ", " + str(ycord_1) + " )"
                            print "P2 : (" + str(xcord_2) + ", " + str(ycord_2) + " )"
                        for a in range(0,difference+1):
                            #Plotting the labels
                            plt.scatter(int(xcord_1+(a*(float(xcord_2-xcord_1)/difference))),int(ycord_1+a*((float(ycord_2-ycord_1)/difference))),marker='$'+str(edge1+dif_state*a)+'$',s=150)
                            #Saving in CSV
                            import csv
                            fields = [int(xcord_1+(a*(float(xcord_2-xcord_1)/difference))),int(ycord_1+a*((float(ycord_2-ycord_1)/difference))),str(edge1+dif_state*a)]
                            with open(path+'.csv', 'a') as f:
                                writer = csv.writer(f)
                                writer.writerow(fields)
    
                            if debug:
                                print (int(xcord_1+(a*(float(xcord_2-xcord_1)/difference))),int(ycord_1+a*((float(ycord_2-ycord_1)/difference))))
                    plt.show()
    
    
    
            elif(global_state == 1):
                xcord_2 = event.xdata
                ycord_2 = event.ydata
                print "Recorded"
                edge2 = (tkSimpleDialog.askstring("1st", "No of Selected Plot"))
                print type(edge2)
                if edge2 is None:
                    root.withdraw()
                    pass
                else:
                    edge2 = int(edge2)
                    global_state = 0
    
    
    
    cid = fig.canvas.mpl_connect('button_press_event', onclick)
    plt.show()

