почему встроенная печать с плавающей точкой идет не так с питоном - PullRequest
0 голосов
/ 20 октября 2018

При печати получился странный эффект округления.Используя приведенный ниже код Python, я попытался поместить все это в одну строку.Тем не менее, переменная s неправильно напечатана в первой строке, кажется,

s = gb.score(train, y)
if (s>0.96)&(s<1.0):
   print("LR: {0:.3f} estimators: {0:.3f} score: {0:.16f}".format(learning_rate,est,s))
   print (s)

Вывод, который я получаю из этого:

LR: 0,003 оценки: 0,003 балла: 0,0025000000000000
0,9696969696969697

почему S округляется до 0,00250000 в первой строке ??Я бы хотел, чтобы оно отображалось во втором ряду.

1 Ответ

0 голосов
/ 20 октября 2018

Поскольку 0 в {0:.16f} вставит первый аргумент.Вот почему во всех трех местах вставляется и форматируется только значение вашего learning_rate.

Попробуйте

print("LR: {0:.3f} estimators: {1:.3f} score: {2:.16f}".format(learning_rate,est,s))

или просто используйте порядок аргументов:

print("LR: {:.3f} estimators: {:.3f} score: {:.16f}".format(learning_rate,est,s))

Чтобы избежать путаницы, вы также можете использовать имена для вставки:

print("LR: {learningrate:.3f} estimators: {estimators:.3f} score: {score:.16f}".format(learningrate=learning_rate,estimators=est,score=s))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...