【问题标题】:Python: Usage of ^ operator within a print expression: {^:61}.format [duplicate]Python:在打印表达式中使用 ^ 运算符:{^:61}.format [重复]
【发布时间】:2020-02-04 19:03:04
【问题描述】:

我正在观看有关交叉验证概念的视频。这是该视频中的代码 sn-p:

from sklearn.cross_validation import KFold
kf = KFold(25, n_folds=5, shuffle=False)

print '{}{:^61}{}'.format('Iteration', 'Training set observations', 'Testing set observations')
for iteration,data in enumerate(kf, start=1):
    print '{:^9}{}{:^25}'.format(iteration, data[0], data[1])

然而,我的问题是关于 print 中使用的格式:例如,{:^61} 是做什么的?我从未在用于打印格式的大括号中看到^。它通常像{0:3.2f}。我知道^ 可以用作异或,但是,它在这里做什么?

谁能解释一下?

【问题讨论】:

    标签: python scikit-learn data-science string-formatting


    【解决方案1】:

    它将文本在字段中居中,其中字段为 61 个字符宽。

    这记录在Format Specification Mini-Language:

    '^'
    强制场在可用空间内居中。

    请注意,还有左对齐和右对齐选项(分别使用'<''>'),以及一个特定于数字的= 选项,用于将填充放在值和正数或负数之间签名。

    不同的对象类型有不同的格式化规范; Python 本质上是在{...:...} 之后的: 之后的部分,并通过__format__() method 将格式化委托给正在格式化的对象。因此,虽然数字支持像 3.2f 这样的规范,但还有更多可能的格式说明符。例如,datetime.date()datetime.date()datetime.time() 对象采用 strftime() formatting specification strings,您可以在自定义 Python 类中实现自己的。

    【讨论】:

    • 啊,好吧!那么,61 是否给出了字段的大小呢?
    • @Luk:是的,61 是字段宽度。如果没有字段宽度,则默认为格式化值的长度,此时将该值居中是徒劳的。
    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多