Como transformar a resposta desse código em porcentagem?
from scipy.stats import norm
media = 70
desvio_padrao = 5
Z = (85 - media) / desvio_padrao
norm.cdf(Z)
Como transformar a resposta desse código em porcentagem?
from scipy.stats import norm
media = 70
desvio_padrao = 5
Z = (85 - media) / desvio_padrao
norm.cdf(Z)
Olá, Glaucia! Como vai?
Você pode usar uma das três opções:
print(f'{round(norm.cdf(Z)*100,2)}%')
print('{:.2f}%'.format(norm.cdf(Z)*100))
print('%.2f' % (norm.cdf(Z)*100), '%', sep='')
A saída dessas três opções é 99.87%
.
Caso queira a saída com 3 casas após a vírgula, você pode fazer:
print(f'{round(norm.cdf(Z)*100,3)}%')
print('{:.3f}%'.format(norm.cdf(Z)*100))
print('%.3f' % (norm.cdf(Z)*100), '%', sep='')
Saída: 99.865%
A resposta do Rosicley é bem completa. Basicamente essas são as três principais formas de realizar a formatação de um string.
A lógica é substituir o conteúdo dentro das chaves {..} por uma string, segundo as orientações passadas.
No entanto, como você deseja observar o valor em porcentagem, há uma alternativa mais 'pythonica'.
print('Probabilidade de {:.02%}'.format(norm.cdf(Z)))
Note que ao invés de usarmos o f
, usamos o %
. Desta forma o Python já transforma o valor decimal em porcentagem (0,2 → 20%). Por isso, não precismos multiplicar o resultado por 100 (norm.cdf(Z)*100
).
Existe muito material sobre esse tema. E há casos mais complexos de formatação. Tem este artigo, em inglês, que aborda somente os dois últimos exemplos (não o influi o f'...'), mas ilustra direitinho a lógica.