Verificando si una cadena es un entero o flotante

Así que estoy creando un programa para mostrar sistemas numéricos, sin embargo, me encontré con problemas en el primer obstáculo. El programa tomará un número del usuario y luego usará ese número en todo el programa para explicar varios conceptos de informática.

Al explicar mi primera sección, sistemas numéricos, el programa dirá qué tipo de número es. Estoy haciendo esto convirtiendo la cadena en un número flotante. Si el número flotante solo tiene '.0' después, lo convierte en un número entero.

Actualmente estoy usando este código

while CorrectNumber == False:
try:
    Number = float(NumberString) - 0
    print (Number)
except:
    print ("Error! Not a number!")

Esto es útil ya que muestra si el usuario ha ingresado un número o no. Sin embargo, no estoy seguro de cómo verificar ahora el valor después del lugar decimal para verificar si debo convertirlo en un entero o no. ¿Algun consejo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta