claramente la parte de el def diagonal princiapl aun no lo se
Bueno, mi lenguaje principal es java ahora mismo, en python no he trabajado con matrices, pero la diagonal la deberías de hacer con un for para filas y otro para columnas, una vez hecho esto, deberías de poner un if(i==j) dentro del bloque de los for. Quedaría más o menos así (en java, espero que te pueda ayudar a tomar la idea)
for(i=0;i<matriz.length();i++){//.length() define el tamaño de la matriz
for (j=0;j<matriz.length();j++){
if(i==j){
// BLOQUE SENTENCIAS PARA LA DIAGONAL
}
}
}
Lo de true o false es con el tipo booleano, si se cumple la sentencia que le hayas puesto al imprimir te dira si true o false
Lamento no poder ayudarte en py, pero si llevas tiempo en programación lo entenderás sin problemas