使用所需的缩进打印浮动(' + inf'),浮动(' -inf')和浮动(' NaN')

时间:2018-01-21 09:12:53

标签: python

我有一个用于测试某些功能的脚本。

在这个脚本中,我做了类似的事情:

const mongoose = require('mongoose');

let Schema = mongoose.Schema;

const matchSchema = new Schema({

    match_id:{
        type:Number,
        required:true
    },

    season:{
        type:Number,
        required:true
    },

    city:{
        type:String,
        required:true
    },

    date:{
        type:Number
    },

    team1:{
        type:String,
        required:true
    },

    team2:{
        type:String,
        required:true
    },


    toss_winner:{
        type:String,
        required:true
    },

    toss_decision:{
        type:String,
        required:true
    },

    dl_applied:{
        type:Number
    },

    winner:{
        type:String,
        required:true
    },

    win_by_runs:{
        type:Number,
        required:true
    },

    win_by_wickets:{
        type:Number,
        required:true
    },

    player_of_match:{
        type:String,
        required:true
    },

    venue:{
        type:String,
        required:true
    },

    umpire1:{
        type:String,
        required:true
    },

    umpire2:{
        type:String,
        required:true
    },

    umpire3:{
        type:String
    }

});

const matches = mongoose.model('matches', matchSchema);

module.exports = matches;

函数for n in range(1000000): minVal,maxVal = getMinMax(n) print('Test #{}: minVal = {:.40f}, maxVal = {:.40f}'.format(n+1,minVal,maxVal)) 返回一对getMinMax值。

这包括floatfloat('+inf')float('-inf')的值。

我想确保这些值打印时使用相同的缩进(即40位数字)。

显然,我不能在这里添加前导零或尾随零,因为它看起来毫无意义。

所以我相信领先或尾随空格几乎是唯一明智的选择。

有没有"聪明"用Python做的方法?

执行以下代码可以解释为什么它对我很重要:

float('NaN')

1 个答案:

答案 0 :(得分:3)

.40f格式化选项将在小数点后显示 40 位数,因此要获得正确的缩进,您必须添加小数点和小数点前面的位数点。在您的情况下,您处理0到1范围内的值,因此只需要2个额外字符。

最简单的选择是使用><格式选项:

>>> # > for leading spaces
>>> print('Test #{}: minVal = {:>42.40f}, maxVal = {:>42.40f}'.format(8,e,a))
Test #8: minVal =                                        nan, maxVal = 3.1415926535897931159979634685441851615906

>>> # < for trailing spaces
>>> print('Test #{}: minVal = {:<42.40f}, maxVal = {:<42.40f}'.format(8,e,a))
Test #8: minVal = nan                                       , maxVal = 3.1415926535897931159979634685441851615906

>>> # Check for matching indentation
>>> print('Test #{}: minVal = {:.40f}, maxVal = {:.40f}'.format(1,a,b))
Test #1: minVal = 3.1415926535897931159979634685441851615906, maxVal = 2.7182818284590450907955982984276488423347