Use of empty "print()" in place of " n" before conditions

Asked

Viewed 283 times

7

Have a problem using print() before conditions instead of using \n.

For example let’s say I have something basic like:

`idade = int(input('Quantos anos você tem?'))
if idade > 0 and idade < 10:
    print('Você é uma criança.')
elif idade >= 10 and idade < 20:
    print('Você é um jovem.')
elif idade >= 20 and idade < 40:
    print('Você é um adulto.')
elif idade >= 40 and idade < 60:
    print('Você está na meia-idade.')
elif idade > 60:
    print('Você está na velhice.')`

But I want you to make room in whatever condition is true. There:

`idade = int(input('Quantos anos você tem?'))
**print()**
if idade > 0 and idade < 10:
    print('Você é uma criança.')
elif idade >= 10 and idade < 20:
    print('Você é um jovem.')
elif idade >= 20 and idade < 40:
    print('Você é um adulto.')
elif idade >= 40 and idade < 60:
    print('Você está na meia-idade.')
elif idade > 60:
    print('Você está na velhice.')`

But I can also do it this way that I find more laborious:

`idade = int(input('Quantos anos você tem?'))
if idade > 0 and idade < 10:
    print('**\n**Você é uma criança.')
elif idade >= 10 and idade < 20:
    print('**\n**Você é um jovem.')
elif idade >= 20 and idade < 40:
    print('**\n**Você é um adulto.')
elif idade >= 40 and idade < 60:
    print('**\n**Você está na meia-idade.')
elif idade > 60:
    print('**\n**Você está na velhice.')`

And then between the two I choose to use the first one that I think is simpler. But I wondered if this is just a trick, if it’s functional, if other programmers use it, or if there’s something similar, or if I have to put \n in each print() if you want to give space in true condition, even after making a huge code with various conditions.

  • 1

    The colleague has already answered properly. I would like to point out that there are no questions "beast", beast is who does not ask questions. Doubts are inherent to the learning process and no matter if you are a beginner or a senior Developer, doubts will always exist.

2 answers

6


No problem at all. You’re actually thinking like a programmer and avoiding unnecessary repetitions. Maybe you don’t see that much because some people don’t think like programmers and others just copy code from others or from themselves, so the copy creates repetitions without wanting to. I am not saying that this case makes so much difference, but if the semantics is "skip an independent line from which condition it falls". In a different situation perhaps the decision would be another. There is no magic rule, you have to understand the problem and do what it asks.

Do an exercise, think about what problems you would expect to have if you did it one way or another. Knowing why is more important than knowing what to do.

Can simplify the conditions of ifs.

idade = int(input('Quantos anos você tem?'))
print()
if idade < 1:
     print('Não sei o que fazer com este valor.')
elif idade < 10:
   print('Você é uma criança.')
elif idade < 20:
     print('Você é um jovem.')
elif idade < 40:
     print('Você é um adulto.')
elif idade < 60:
    print('Você está na meia-idade.')
else:
     print('Você está na velhice.')

Behold working in the ideone. And in the repl it.. Also put on the Github for future reference.

6

In fact there is no problem. Another alternative would be you just set the value of a variable with its conditions and call the function print just once. That would be another application of what Maniero commented on in his reply about code repetition. Today you are sending the result to the output, but if you needed to change this to save to a file, for example, it would be multiple places of code to make the same change; making only one call would be only one line changed:

idade = int(input('Quantos anos você tem?'))

if idade > 0 and idade < 10:
    mensagem = 'Você é uma criança.'
elif idade >= 10 and idade < 20:
    mensagem = 'Você é um jovem.'
elif idade >= 20 and idade < 40:
    mensagem = 'Você é um adulto.'
elif idade >= 40 and idade < 60:
    mensagem = 'Você está na meia-idade.'
elif idade > 60:
    mensagem = 'Você está na velhice.'
else:
    mensagem = 'Não sei o que fazer com este valor.'

print(f'\n{mensagem}')

Note: added the else to ensure that mensagem is always defined independently of the conditions (idade negative, for example).

It is also worth mentioning that in Python you do not need to make the condition:

idade > 0 and idade < 10

You can do:

0 < idade < 10

Which is much more readable to humans. This way, it would be:

idade = int(input('Quantos anos você tem?'))

if 0 < idade < 10:
    mensagem = 'Você é uma criança.'
elif 10 <= idade < 20:
    mensagem = 'Você é um jovem.'
elif 20 <= idade < 40:
    mensagem = 'Você é um adulto.'
elif 40 <= idade < 60:
    mensagem = 'Você está na meia-idade.'
elif idade > 60:
    mensagem = 'Você está na velhice.'
else:
    mensagem = 'Não sei o que fazer com este valor.'

print(f'\n{mensagem}')

Browser other questions tagged

You are not signed in. Login or sign up in order to post.