def get_printable_banner(input_str=None):
    """
    Returns a string that when printed shows a banner with the given string in the center.

    Args:
        input_str: str. Any string of moderate length roughly less than 30 that you want placed inside a
                        pound/hashtag (#) banner.

    Returns:
        banner: str. A banner comprised of ascii pound symbols (#) and the given string in the center.
    """
    if type(input_str) is not str:
        input_str = str(input_str)
    ninput = len(input_str)
    nhash = max(4+ninput, 36)
    nshort1 = (nhash - ninput - 2) // 2
    nshort2 = nhash - ninput - 2 - nshort1
    banner = '\n' + '#'*nhash + \
             '\n' + '#'*nshort1 + f' {input_str} ' + '#'*nshort2 + \
             '\n' + '#'*nhash
    return banner