Challenges

Reddit challenges in python language.

Files Code and Result

challenge1_easy

challenge2_easy

challenge3_easy

challenge4_easy

challenge5_easy

challenge6_easy

challenge7_easy

challenge8_easy

challenge9_easy

challenge10_easy

challenge11.easy

challenge12_easy

challenge13_easy

challenge14_easy

challenge15_easy

challenge16_easy

challenge17_easy

challenge18_easy

challenge19_easy

challenge20_easy

challenge21_easy

challenge22_easy

challenge23_easy

challenge25_easy

challenge26_easy

challenge27_easy

challenge28_easy

challenge29_easy

challenge30_easy

challenge31_easy

challenge32_easy

challenge33_easy

challenge34_easy

challenge35_easy

challenge36_easy

challenge37_easy

challenge38_easy

challenge39_easy

challenge40_easy

challenge41_easy

challenge42_easy

challenge44_easy

challenge45_easy

challenge46_easy

challenge47_easy

challenge48_easy

challenge49_easy

challenge50_easy

challenge51_easy

challenge52_easy

challenge53_easy

challenge54_easy

challenge55_easy

challenge56_easy

challenge57_easy

challenge58_easy

challenge59_easy

challenge60_easy

challenge61_easy

challenge62_easy

challenge63_easy

challenge64_easy

challenge65_easy

challenge66_Dev

challenge66_easy

challenge67_easy

challenge68_easy

challenge69_easy

challenge69_easyBonus

challenge70_easy

challenge71_easy.py

challenge72_easy

challenge73_easy

challenge74_easy

challenge76_easy

challenge77_easy

challenge79_easy

challenge80_easyone

challenge82_easy

challenge83_easy

challenge84_easy

challenge85_easy

challenge85_easybonus

challenge86_easy

challenge87_easy

challenge88_easy

challenge88_easybonus

challenge89_easy

challenge91_easy

challenge92_easy

challenge93_easy

challenge94_easy

challenge95_easy

challenge96_easy

challenge97_easy

challenge98_easy

challenge99_easy

challenge100_easy

challenge100_easybonus

challenge101_easy

challenge101_easybonus

challenge102_easy

challenge103_easy

challenge104_easy

challenge105_easy

challenge106_easy

challenge107_easy

challenge108_easy

challenge109_easy

challenge110_easy

challenge111_easy2

challenge112_easy

challenge113_easy

challenge114_easy

challenge115_easy

challenge116_easy

challenge117_easy

challenge118_easy

challenge119_easy

challenge121_easy

challenge122_easy

challenge123_easy

challenge124_easy

challenge125_easy

challenge126_easy

challenge127_easy

challenge128_easy

challenge130_easy

challenge131_east

challenge132_easy

challenge133_easy

challenge134_easy

challenge135_easy

challenge136_easy

challenge137_easy

challenge138_easy

challenge139_easy

challenge140_easy

challenge141_easy

challenge142_easy

challenge143_easy

challenge146_easy

challenge147_easy

challenge148_easy

challenge149_easy

challenge153_easy

challenge153_easy

challenge154_easy

challenge156_easy

challenge157_easy

challenge158_easy

challenge158_easybonus

challenge159_easy

challenge160_easy

challenge168_easy

challenge169_easy

challenge169_easybonus

challenge172_easy

challenge174_easy

challenge175_easy

challenge177_easy

challenge180_easy

challenge181_easy

challenge184_easy

challenge185_easy

challenge188_easy

challenge192_easy

challenge193_easy

challenge197_easy

challenge198_easy

challenge199_easy

challenge201_easy

challenge202_easy

challenge203_easy

challenge204_easy

challenge204_easyBonus

challenge205_easy

challenge205_easyBonu

challenge206_easy

challenge208_easy

challenge210_easy

challenge211_easy

challenge212_easy

challenge212_easybonus

challenge213_easy

challenge214_easy

challenge215_easy

challenge216_easy

challenge217_easy

challenge218_easy

challenge218_easyBonus1

challenge218_easyBunus2

challenge219_easy

challenge220_easy.py

challenge221_easy

challenge221_easy

challenge222_easy

challenge222_easy.py

challenge223_easy

challenge226_easy

challenge226_easy

challenge228_easy.py

challenge228_easydev

challenge229_easy

challenge229_easybonus.py

challenge232_easy

challenge232_easy

challenge232_easybonus

challenge232_easybonus

challenge234_easy

challenge234_easybonus

challenge235_easy

challenge236_easy

challenge237_easy

challenge238_easy

challenge238_easybonus

challenge239_easy

challenge240_easy

challenge242_easy

challenge242_easy

challenge242_easyBonus

challenge243_easy

challenge245_easy

challenge245_easyBonus

challenge246_easy

challenge247_easy

challenge249_easy

challenge252_easy

challenge254_easy

challenge255_easy

challenge270_easy

challenge284_easy

challenge286_easy

challenge287_easy

challenge288_easy

challenge290_easy

challenge290_easybonus

challenge291_easy

challenge291_easybonus

challenge69_easyBonus

'''
Bonus: amend the program so that it can output a two-dimensional
table instead of a list. For example, a list of websites:

titles: ['Name', 'Address', 'Description']
input:  [['Reddit', 'www.reddit.com', 'the frontpage of the internet'],
        ['Wikipedia', 'en.wikipedia.net', 'The Free Encyclopedia'],
        ['xkcd', 'xkcd.com', 'Sudo make me a sandwich.']]

output:

    +-----------+------------------+-------------------------------+
    |   Name    |     Address      |          Description          |
    +-----------+------------------+-------------------------------+
    | Reddit    | www.reddit.com   | the frontpage of the internet |
    +-----------+------------------+-------------------------------+
    | Wikipedia | en.wikipedia.net | The Free Encyclopedia         |
    +-----------+------------------+-------------------------------+
    | xkcd      | xkcd.com         | Sudo make me a sandwich       |
    +-----------+------------------+-------------------------------+

'''

title = 'Necessities'
wordlist = ['fairy', 'cakes', 'happy', 'fish', 'disgustipated', 'melon-balls']

bonus_titles = ['Name', 'Address', 'Description']
bonus_wordlist = [['Reddit', 'www.reddit.com', 'the frontpage of the internet'],
        ['Wikipedia', 'en.wikipedia.net', 'The Free Encyclopedia'],
        ['xkcd', 'xkcd.com', 'Sudo make me a sandwich.']]

# find length of longest word in list
def length_of_word(lst):
    leng = 0
    for word in wordlist:
        temp_leng = len(word)
        if temp_leng  >= leng:
            leng = temp_leng
    return leng


# in the name
def total_width(leng):
    return leng + 3

# upper and lower stripe, first column
def outer(leng):
    return '+' + ('-' * (total_width(leng) + 1)) + '+'

# stripe, mid column
def midColumn(leng):
    return ('-' * (total_width(leng) + 1)) + '+'

# stripe, outer column
def outerColumn(leng):
    return ('-' * (total_width(leng) + 1)) + '+'


def headercentre(title, leng, width):
    return '|  '+ title.center(leng) + '  |'

def headerright(title, leng, width):
    return '  ' + title.center(leng) + '  |'

def header(title, leng, width):
    return '|  '+ title.ljust(leng) + '  |'

def content(wordlist):
    global leng
    content_string = ''
    for word in wordlist[:-1]:
        content_string += '|  ' + word.ljust(leng) + '  |\n'
    else:
        content_string += '|  ' + wordlist[-1].ljust(leng) + '  |'

    return  content_string


if __name__ == '__main__':

    #length of longest word in first column
    leng1 = max(len(bonus_titles[0]), len(bonus_wordlist[0][0]),
                        len(bonus_wordlist[1][0]), len(bonus_wordlist[2][0]))
    # second column
    leng2 = max(len(bonus_titles[1]), len(bonus_wordlist[0][1]),
                        len(bonus_wordlist[1][1]), len(bonus_wordlist[2][1]))
    # third column
    leng3 = max(len(bonus_titles[2]), len(bonus_wordlist[0][2]),
                        len(bonus_wordlist[1][2]), len(bonus_wordlist[2][2]))
    width2 = total_width(leng2)
    print(leng2)
    stripe2 = outer(leng1)

    firsttitle = bonus_titles[0]
    secondtitle = bonus_titles[1]
    thirdtitle = bonus_titles[2]

    # name, address, description
    head_a = headercentre(firsttitle, leng1, width2)
    head_b = headerright(secondtitle, leng2, width2)
    head_c = headerright(thirdtitle, leng3, width2)

    content1 = bonus_wordlist[0][0]
    content1a = bonus_wordlist[0][1]
    content1b = bonus_wordlist[0][2]

    content2 = bonus_wordlist[1][0]
    content2a = bonus_wordlist[1][1]
    content2b = bonus_wordlist[1][2]

    content3 = bonus_wordlist[2][0]
    content3a = bonus_wordlist[2][1]
    content3b = bonus_wordlist[2][2]

    content1 = header(content1, leng1, width2)
    content1a = headerright(content1a, leng2, width2)
    content1b = headerright(content1b, leng3, width2)

    content2 = header(content2, leng1, width2)
    content2a = headerright(content2a, leng2, width2)
    content2b = headerright(content2b, leng3, width2)

    content3 = header(content3, leng1, width2)
    content3a = headerright(content3a, leng2, width2)
    content3b = headerright(content3b, leng3, width2)

    midStripe = midColumn(leng2)
    outerStripe = outerColumn(leng3)

    print(stripe2, end= '')
    print(midStripe, end= '')
    print(outerStripe)
    print(head_a, end= '')
    print(head_b, end= '')
    print(head_c)
    print(stripe2, end= '')
    print(midStripe, end= '')
    print(outerStripe)

    print(content1, end= '')
    print(content1a, end= '')
    print(content1b)
    print(stripe2, end= '')
    print(midStripe, end= '')
    print(outerStripe)


    print(content2, end= '')
    print(content2a, end= '')
    print(content2b)
    print(stripe2, end= '')
    print(midStripe, end= '')
    print(outerStripe)

    print(content3, end= '')
    print(content3a, end= '')
    print(content3b)
    print(stripe2, end= '')
    print(midStripe, end= '')
    print(outerStripe)

Result

16
+-------------+--------------------+---------------------------------+
|     Name    |      Address       |           Description           |
+-------------+--------------------+---------------------------------+
|  Reddit     |   www.reddit.com   |  the frontpage of the internet  |
+-------------+--------------------+---------------------------------+
|  Wikipedia  |  en.wikipedia.net  |      The Free Encyclopedia      |
+-------------+--------------------+---------------------------------+
|  xkcd       |      xkcd.com      |     Sudo make me a sandwich.    |
+-------------+--------------------+---------------------------------+