def readable_number(num, single_thing='', plura_thing='',):
    """
    Convert numbers into human readable format e.g 1000000 to 1M
    :param num: the number
    :param single_thing: 1 apple
    :param plural_thing: 2 apples
    """
    if num is None:
        return ''

    # Add a space in front of the thing
    if single_thing:
        single_thing = ' ' + single_thing
    if plura_thing:
        plura_thing = ' ' + plura_thing

    # 0/1 thing
    if num <= 1:
        return '%i%s' % (num, single_thing)

    magnitude = 0
    while abs(num) >= 1000:
        magnitude += 1
        num /= 1000.0
    if magnitude == 0:
        return '%i%s' % (num, plura_thing)
    else:
        pattern = '%i%s%s' if str(num).endswith('0') else '%.1f%s%s'
        return pattern % (num, ['', 'K', 'M', 'B'][magnitude], plura_thing)