Printing a rectangle
I think the assignment wants you to read the character from input as well. 

When you are printing the input you are composing the string m times. More optimal solution is if you do that 1 time and output it m times: 

def print_rect(n, m, c):
    row=n*c
    for a in range(m):
        print (row)


I would even do it with this oneliner: 

print((n * c + '\n') * m, end="")