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
1 answer

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)