def get_value_and_unit(value_string):
    """
    Takes a string and splits it up, returning the number part and the unit part

    :param (str) value_string: examples: "100Mi", "8", "500n" (does not need to include unit)
    :return: ((int) numerical value, (str) unit, which is empty string for no unit)
    """
    i = 0
    while i < len(value_string) and (value_string[i].isdigit() or value_string[i] == 'e'): # e for scientific notation
        i += 1
    first_nondigit_index = i

    value = int(float(value_string[:first_nondigit_index]))
    unit = value_string[first_nondigit_index:]
    return (value, unit)