In Class Activity - Python - For loops

Problem 0: For-loop over a dictionary

Here is a dictionary colleges that lists the city and zip (as values) for several schools in NYC (as keys).

colleges = {}
colleges['NYU'] = 'New York, NY 10012'
colleges['Columbia'] = 'New York, NY 10027'
colleges['Fordham'] = 'Bronx, NY 10458'
colleges['Brooklyn college'] = 'Brooklyn, NY 11210'

Write a for-loop to iterate over the keys and return the values, printing in this format:

# Your answer goes here
for k in colleges.keys():
    print(k, ':', colleges[k])
NYU : New York, NY 10012
Columbia : New York, NY 10027
Fordham : Bronx, NY 10458
Brooklyn college : Brooklyn, NY 11210

Problem 1: Multiplication table

Write a function mult_table(n) that produces the multiplication table below. Note that for each cell \(c_{ij}\), its value is equal to the product of the row number \(i\) and column number \(j\), assuming they are numbered \(1,\dots,n\).

Note, it’s not necessary to get the spacing exactly as in the example, but kudos if you do!

Here is what the output should look like when you run mult_table(10)

# Your answer goes here
def pad_num(x):
    x = str(x)
    npad = 3-len(x)
    x = npad*' '+x
    return x
        
def mult_table(n):
    for i in range(1,n+1):
        for j in range(1,n+1):
            print(pad_num(i*j), end=' ')
        print("")
        
mult_table(10)
  1   2   3   4   5   6   7   8   9  10 
  2   4   6   8  10  12  14  16  18  20 
  3   6   9  12  15  18  21  24  27  30 
  4   8  12  16  20  24  28  32  36  40 
  5  10  15  20  25  30  35  40  45  50 
  6  12  18  24  30  36  42  48  54  60 
  7  14  21  28  35  42  49  56  63  70 
  8  16  24  32  40  48  56  64  72  80 
  9  18  27  36  45  54  63  72  81  90 
 10  20  30  40  50  60  70  80  90 100