Take a list of nums and return max and min
Avoid repeating yourself: use a single input call; it isn't much here, but it is easily error-prone if your "initialization" phase is several steps long. The usual idiom in such case is to use a while True loop and test the condition after the initialization to break if necessary.
Please avoid bare except, this is a bad habit to get into. This will catch all exceptions, including the ones you're not expecting (such as KeyboardInterrupt if the user hits Ctrl+C) and, thus, not ready to handle. In both cases, you’re expecting ValueErrors here.
Use functions, this will make your code much more reusable:




def ask_user_number_list():
    num_list = []
    while True:
        num = input('Please enter a number or 'done' to finish: ')
        if num.lower() == 'done':
            break

        try:
            number = int(num)
        except ValueError:
            print('Invalid input')
        else:
            num_list.append(number)

    return num_list


def search_min_and_max(lst):
    try:
        return min(lst), max(lst)
    except ValueError:
        return None


if __name__ == '__main__':
    bounds = search_min_and_max(ask_user_number_list())
    if bounds is None:
        print('NO INPUT!')
    else:
        print('Maximum number: ', bounds[-1])
        print('Minimum number: ', bounds[0])