"cannot concatenate 'str' and 'list' objects" keeps coming up :(
Question: I'm writing a python program. The program calculates Latin Squares using two
numbers the user enters on a previous page. But but an error keeps coming up,
"cannot concatenate 'str' and 'list' objects" here is the program:

    
    
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    
    # enable debugging
    import cgi
    import cgitb
    cgitb.enable()
    
    def template(file, **vars):
        return open(file, 'r').read() % vars
    
    print "Content-type: text/html\n"
    print
    
    form = cgi.FieldStorage() # instantiate only once!
    num_1 = form.getfirst('num_1')
    num_2 = form.getfirst('num_2')
    
    int1r = str(num_1)
    int2r = str(num_2)
    
    def calc_range(int2r, int1r):
        start = range(int2r, int1r + 1)
        end = range(1, int2r)
        return start+end
    
    
    int1 = int(int1r)
    
    int2 = int(int2r)
    
    out_str = ''
    
    for i in range(0, int1):
        first_line_num = (int2 + i) % int1
        if first_line_num == 0:
            first_line_num = int1
        line = calc_range(first_line_num, int1)
    out_str += line
    
    
    print template('results.html', output=out_str, title="Latin Squares")
    


Answer: `range` returns a list object, so when you say

    
    
    line = calc_range(first_line_num, int1)
    

You are assigning a list to `line`. This is why `out_str += line` throws the
error.

You can use `str()` to convert a list to a string, or you can build up a
string a different way to get the results you are looking for.

