Como é sua primeira função (e pelo que entendi, vc ainda está começando), acho válido tecer alguns comentários.
print
, por padrão, adiciona uma quebra de linha ao final. Ou seja, além do \n
(que já pula uma linha), depois será pulada outra, adicionada automaticamente pelo print
. Isso quer dizer que se vc chamar line_jumper(5)
, serão puladas 10 linhas.
Não sei se era essa a intenção, mas enfim, uma forma mais simples de pular várias linhas é "multiplicando" a string pela quantidade de vezes. E para evitar que o print
adicione mais uma quebra de linha ao final, vc pode usar o parâmetro end
, ou então subtrair 1 da quantidade:
# Primeira opção: mudar o parâmetro end para não pular a linha extra no final
# E também mudei o nome do parâmetro "lines" para deixar mais claro o que ele faz (ele não representa as linhas, e sim a quantidade)
def line_jumper(qtd_linhas):
print("\n" * qtd_linhas, end='')
####################################
# Segunda opção: subtrai 1 da quantidade, pois o print já adiciona uma quebra de linha no final
def line_jumper(qtd_linhas):
print("\n" * (qtd_linhas - 1))
Sim, se vc multiplica uma string por um número, o resultado é outra string, cujo valor será o texto da string original repetido várias vezes. Por exemplo, "\n" * 3
é o mesmo que "\n\n\n"
.
E o parâmetro end
diz qual é a string que o print
deve adicionar no final, depois que tudo for impresso. Por padrão, o valor é um \n
, mas no exemplo acima mudei para uma string vazia (ou seja, não adiciona nada). Portanto, agora ele vai imprimir a quantidade exata de \n
que eu indiquei.
Na segunda opção eu não mudei o end
, portanto o print
vai adicionar um \n
automaticamente no final. Por isso subtraí 1 da quantidade, e no final pulará a quantidade de linhas correta.
Então agora, se chamar line_jumper(5)
, serão puladas 5 linhas.
Para mais detalhes, consulte sempre a documentação oficial.