Não consigo entender como os exemplos 4, 8 e 9 da função regua se dão sem nenhuma alteração de impressão. Estão respectivamente nas linhas 80, 96 e 102, digo isto porque estou tendo problemas justamente com os barra enes
Oi Enock,
Acho que não entendi direito sua pergunta. Qual você esperava ser a saída destes exemplos?
Terceira vez que tento enviar e dá erro.
Na linha 96 tem um \n a mais na chamada mas a função não o imprime, por quê?
Também não tô conseguindo fazer que a minha função régua devolva o último barra ene sem multiplicá-lo em todas as chamadas recursivas, e por fim, qual é daquele input main(), tem a ver com uma escolha entre ele e a função help ?
Talvez as nossas versões do esqueleto estejam diferentes. Na minha linha 96 não tem nenhum \n, mas vou tentar explicar.
Pela descrição do docstring da função regua ela deve devolver a representação do interior da régua de ordem n concatenada a s. Pela definição de representação do interior da régua, no enunciado, a representação da régua de ordem 2 é: '. -\n. --\n. -\n', ou seja
. -\n
. --\n
. -\n
Assim, se executamos regua(2), que é equivalente a regua(2, ''), receberemos de volta a representação do interior da régua de ordem 2 concatenada com a string vazia, ou seja
. -\n
. --\n
. -\n
Como o valor devolvido é uma string é possível concatená-la com quaisquer outras strings. Na linha 96 a string '.' é concatenada com o resultado de regua(2), que por sua vez é concatenado à string '.', ou seja, '.' + '. -\n. --\n. -\n' + '.' = '.. -\n. --\n. -\n.', ou
.. -\n
. --\n
. -\n
.
Não sei se era essa a dúvida. Se não for, como está a sua linha 96?
Pelo docstring da função main: "Abre um prompt e para cada inteiro n >= digitado imprime uma régua de ordem n. Se o caractere 'q' é digitado o programa é encerrado." A função help, como escrito no docstring, pode ser ignorada se você não quiser utilizá-la.
Bom dia Toshi, é que lá tem duas chamadas de print assim;
print('.'+regua(2)+'.')
print('.\n'+regua(2)+'.')
dando ambas a mesma saída, mas eu esperava que a de baixo tivesse um espaço a mais, tipo;
.
. -
. --
. -
.