Search code examples
pythonpyzo

can only concatenate str (not "NoneType") to str! What's wrong


legth = 6
price = ''
for i in range(legth):
    price += "{}    ".format(i)
print(price)
line2 = ""
board = []
for i in range(legth):
    board.append([" "]*legth)

for k in range(legth):
    # if k == 0:
    #     line2 += "str(k)   +"
    line2 += "board[{}]".format(k)+ "[{}]  + '  |  ' +".format(k)                      
line2 = line2[:-1]


for k in range(legth):
    
    newline = str(k)+ '|' + exec(line2)
    #line2 = line2[:-1]
    
    print(newline + " "*5) # + line2)
    if i < legth:
        print("  +___+___+___+___+___+___+___+___+" )

Why does this return

  newline = str(k)+ '|' + exec(line2)
TypeError: can only concatenate str (not "NoneType") to str

Solution

  • legth = 6
    price = ''
    for i in range(legth):
        price += "{}    ".format(i)
    print(price)
    line2 = ""
    board = []
    for i in range(legth):
        board.append([" "]*legth)
    
    for k in range(legth):
        # if k == 0:
        #     line2 += "str(k)   +"
        line2 += "board[{}]".format(k)+ "[{}]  + '  |  ' +".format(k)                      
    line2 = line2[:-1]
    
    
    for k in range(legth):
        
        newline = str(k)+ '|' + str(eval(line2))
        #line2 = line2[:-1]
        
        print(newline + " "*5) # + line2)
        if i < legth:
            print("  +___+___+___+___+___+___+___+___+" )
    

    I don't know what you are trying to do but Try this

    exec returns None but eval returns something