# How to get these strings by using return instead of print?

``````def createSteps(stepCount):
if stepCount==1:
for i in reversed(range(1,stepCount+1)):
print(" "*(( i * 2) - 2), end = '')
print('+-+')
print(" " * ((i * 2) - 2), end = '')
print('| |')
print(" " * ((i * 2) - 2), end = '')
print('+-+')
elif stepCount != 0:
print(" " * ((stepCount * 2) - 2), end = '')
print('+-+')

for i in reversed(range(1, stepCount + 1)):
print(" " * ((i * 2) - 2), end = '')
print('| |')
print(" " * ((i * 2) - 4), end = '')
if i == 1:
print('+-+')
else:
print('+-+-+')
``````

I tried to get the output by using return instead of using print,

``````for i in reversed(range(1,stepCount+1)):

a = (" "*(( i * 2) - 2))
b = ('+-+')
c = (" " * ((i * 2) - 2))
d = ('| |')
e = (" " * ((i * 2) - 2))
f = ('+-+')
g = a + b + c + d + e + f
return str(g)
``````

However, the error appears: SyntaxError: 'return' outside function

Your indentation is inconsistent. Your function must look like this. Note that `g` is already a string, you don't have to convert it. Also note that you will need to insert the newlines, since you are no longer using print to get that effect.

``````def createSteps(stepCount):
g = []
for i in range(stepCount,1,-1):
a = " "*(( i * 2) - 2)
b = '+-+'
c = " " * ((i * 2) - 2)
d = '| |'
e = " " * ((i * 2) - 2)
f = '+-+'
g.extend( [a + b, c + d, e + f] )
return '\n'.join(g)
``````