Compatíveis ?

Compatíveis ?

por Enock Rodrigues dos Santos -
Número de respostas: 4

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

Em resposta à Enock Rodrigues dos Santos

Re: Compatíveis ?

por Enock Rodrigues dos Santos -

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 ?

Em resposta à Enock Rodrigues dos Santos

Re: Compatíveis ?

por Andrew Kurauchi -

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.

Em resposta à Enock Rodrigues dos Santos

Re: Compatíveis ?

por Enock Rodrigues dos Santos -

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;

.

 

. -

. --

. -

.