eu sei que ja faz tempo q você perguntou, porém agora q comecei a estudar, e me surgiu a mesma duvida, olhei no site do livro e a solução dava resultado diferente do pedido pelo enunciado, então eu fiz assim:
n1 = int(input("Digite o primeiro número: "))
# Recolhe o primeiro número
n2 = int(input("Digite o segundo número: "))
# Recolhe o segundo número
n1s = str(n1)
n2s = str(n2)
# Transformam o primeiro e segundo numero em string de texto
sim = str(" + ")
# Cria um texto com o simbolo "+"
conta1 = (n1 * (sim + n2s))
conta2 = (n2 * (sim + n1s))
# Juntam o sinal "+" com o numero da string
# O resltado fica algo como
# +1+1+1+1
len1 = len(conta1)
len2 = len(conta2)
# Conta quantos carecteres tem nas variaveis conta1 e conta2
# Vai servir pra saber até onde imprimir a string no final
print(f"{n1} x {n2} = {conta1[3:len1]} = {conta2[3:len2]} = {n1 * n2}")
# Imprime o resultado --------^^^^^^^ -> serve para tirar o primeiro "+"
# Assim o resultado fica 1+1+1+1 e não +1+1+1+1
espero ter ajudado