¿me gustaría saber que es para vos una opinón decente y bien realizada? ¿y qué pasa si no son así?
¿cuál es la necesidad de remarcar que lo hiciste solo con lo que vas aprendiendo? ¿es eso extraordinario?
con respecto al código, efectivamente hay muchos errores, ni hablar que se puede simplificar.
veamos:
print("Que quiere hacer?" + "\n" + "1:Crear un usuario" + "\n" + "2:Inicia sesión" + "\n" + "3:Salir" )
la suma(concatenación) de cada cadena es innecesaria y además es feo de leer pero en todo caso:
print("Qué quiere hacer?\n1:Crear un usuario\n2:Inicia sesión\n3:Salir" )
da el mismo resultado y te ahorrás todos los "+"
pero lo mejor para hacer el código más legible sería:
print("""Qué quiere hacer?
1:Crear un usuario
2:Inicia sesión
3:Salir""" ) #el mismo resultado más legible
d = int(input(": "))
no hay manejo de error, el usuario puede "errar" y tipear una letra lo cual lo hará crashear, además si la opción es mayor a 3 repite el menú pero no infoema que la opción no es válida.
hay varios errores de indentado, no sé si cuando lo copiaste o así está, si ponés dos usuarios distintos dará error, y si haces todo bien repetirá el bucle sin salir.
solo permite un usuario, no vuelve al menú etc.
Edito: me olvidé, esto debería ir en scripting