我有一个用于测试某些功能的脚本。
在这个脚本中,我做了类似的事情:
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
值。
这包括float
,float('+inf')
和float('-inf')
的值。
我想确保这些值打印时使用相同的缩进(即40位数字)。
显然,我不能在这里添加前导零或尾随零,因为它看起来毫无意义。
所以我相信领先或尾随空格几乎是唯一明智的选择。
有没有"聪明"用Python做的方法?
执行以下代码可以解释为什么它对我很重要:
float('NaN')
答案 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