Introducción
Hoy veremos cómo implementar un algoritmo para saber si un entero es narcisista usando el lenguaje de programación Python.

Si no sabes cómo funciona este algoritmo o qué cosa es un número narcisista, te recomiendo leer esto.
Por cierto, recuerda que debes tener instalado el intérprete de Python. Si no sabes cómo, mira cómo instalar Python 3 y ponerlo en la PATH.
Función para comprobar si un número es narcisista
Definimos la siguiente función aquí y más abajo la explico:
def es_narcisista(numero):
    numero_como_cadena = str(numero)
    longitud_de_numero = len(numero_como_cadena)
    suma = 0
    for letra in numero_como_cadena:
        # Convertir carácter a entero
        cifra_actual = int(letra)
        # Elevar ese carácter a la potencia dada por la longitud del número
        elevado = pow(cifra_actual, longitud_de_numero)
        # El resultado lo añadimos a suma
        suma = suma + elevado
    # Comprobar si la suma al elevar es igual al número que recibimos
    if numero == suma:
        return True
    else:
        return False
Aunque Python es de tipado fuerte, nos permite convertir variables de manera fácil. Para ello usamos int y str. Más tarde para elevar un número usamos pow.
Así de fácil es hacer esa función. Veamos cómo podemos implementarla
Implementación de la función
La función mencionada anteriormente recibe un entero y regresará True o False. Aquí un ejemplo de cómo podemos invocarla:
"""
    Determinar si un número es narcisista usando Python
    https://parzibyte.me/blog/
"""
def es_narcisista(numero):
    numero_como_cadena = str(numero)
    longitud_de_numero = len(numero_como_cadena)
    suma = 0
    for letra in numero_como_cadena:
        # Convertir carácter a entero
        cifra_actual = int(letra)
        # Elevar ese carácter a la potencia dada por la longitud del número
        elevado = pow(cifra_actual, longitud_de_numero)
        # El resultado lo añadimos a suma
        suma = suma + elevado
    # Comprobar si la suma al elevar es igual al número que recibimos
    if numero == suma:
        return True
    else:
        return False
# Hora de probar
numeros = [1, 2, 3, 4, 153, 28, 11, 96, 407, 1634, 54748]
for numero in numeros:
    print("¿{} es narcisista? {}".format(numero, es_narcisista(numero)))
Lo que hacemos es probar un arreglo de enteros y llamar a la función por cada uno de ellos.
En mi caso la salida se ve así:
