How to get index or location of point selected in edit mode using python API?
Using this question and its numerous answers as a base for an efficient code, you can use this script :

import bpy
import numpy as np

mode = bpy.context.active_object.mode
# Keep track of previous mode
bpy.ops.object.mode_set(mode='OBJECT')
# Go into object mode to update the selected vertices

obj = bpy.context.object
# Get the currently select object
sel = np.zeros(len(obj.data.vertices), dtype=np.bool)
# Create a numpy array with empty values for each vertex

obj.data.vertices.foreach_get('select', sel)
# Populate the array with True/False if the vertex is selected

for ind in np.where(sel==True)[0]:
    # Loop over each currently selected vertex
    v = obj.data.vertices[ind]
    print('Vertex {} at position {} is selected'.format(v.index, v.co))
    # If you just want the first one you can break directly here
    # break

bpy.ops.object.mode_set(mode=mode)
# Go back to the previous mode