Executando verificação de segurança...
1
DigSix
1 min de leitura ·

Minha primeira função cirada em Python e minha primeira publicação no TabNews

Hello, world! Fala galera estou mergulhando no mundo da programação de cabeça, muita informação. Mas queria compartilhar duas coisas.
1° - Acabei de descubrir o TabNews e achei fantástico.
2° - Semana passada tive que fazer um trabalho para faculdade onde o professor nos deu alguns exemplos de código Python sobre transformações morfológicas usando a biblioteca OpenCV tinhamos que entender e depois explicar o código.
Além de todo desafio para um Noob, encontrei mais um, percebi que estava tendo que fazer um print("\n") para separar as imagens na hora de exibilas. Motivado pela preguiça e pela prática de clean code criei minha primeira função em Python para pular linha.

def line_jumper(lines):
  for l in range(lines):
    print("\n")

É um código bobo mas estou muito orgulhoso dele, e caso queiram dar uma olhadinha no trabalho irei deixar o link do repositório.
https://github.com/DigSix/MyUCP---My-Univali-Class-Projects/tree/main/2-Python-Evaluation

Carregando publicação patrocinada...
2

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.