Colab

def get_line(n):
    result = ""
    for i in range(n):
        result += 'X'
    return result

x = get_line(5)
print(x)

def get_line(n):
    return 'X' * n

x = get_line(5)
print(x)


XXXXX
XXXXX
def get_square(n):
    result = ""
    for i in range(n):
        line = get_line(n)
        result += line + '\n'
        
    return result

x = get_square(5)
print(x)

def get_square(n):
    lines = [get_line(n)] * n
    return "\n".join(lines)

print(get_square(5))

XXXXX
XXXXX
XXXXX
XXXXX
XXXXX

XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
def get_triang(n):
    result = ""
    for i in range(1, n+1):
        line = get_line(i)
        result += line + '\n'
        
    return result

x = get_triang(5)
print(x)

X
XX
XXX
XXXX
XXXXX

def reverse(lst):
    return lst[ : : -1]
    
def shape(n):
    return '\n'.join([
        get_triang(n), 
        get_square(n),
        reverse(get_triang(n))
    ])

print(shape(5))

X
XX
XXX
XXXX
XXXXX

XXXXX
XXXXX
XXXXX
XXXXX
XXXXX

XXXXX
XXXX
XXX
XX
X
x = get_triang(5)
x = x[::-1]
print(x)


XXXXX
XXXX
XXX
XX
X
x = ['one', 'two', 'three', 'four']
x[0]

'one'
x[-1]

'four'
x[0:2]

['one', 'two']
x[:2]

['one', 'two']
x[2:]

['three', 'four']
x[0:4:2]

['one', 'three']
x[3:0:-1]

['four', 'three', 'two']
x[3:0:-2]

['four', 'two']
x[ : :-2]

['four', 'two']
help(len)

Help on built-in function len in module builtins:

len(obj, /)
    Return the number of items in a container.

help(shape)

Help on function shape in module __main__:

shape(n)
    shape is an awesome function that draws something that looks like
    a double edged sword