具有对齐方式{:>}和变量插值的str.format()

时间:2018-09-15 08:52:58

标签: python formatting interpolation string-interpolation

我仍在尝试了解Python中字符串格式化的新语法。

  // find the next int token and print it
  // loop for the whole scanner
  while (scanner.hasNext()) {

     // if the next is a int, print "Found" and the int
     if (scanner.hasNextInt()) {
        System.out.println("Found " + scanner.nextInt());
     }
     // if no int is found, print "Not found" and the token
     System.out.println("Not found " + scanner.next());
  }

上面的代码插值path参数,并正确设置字符串格式,但是用变量替换文本窗口值(80)可以得到 ValueError:无效的格式说明符

"{fpath:>80}".format(fpath=path, flongest=longest)

如何通过变量分配窗口大小?

"{fpath:>flongest}".format(fpath=path, flongest=longest)

2 个答案:

答案 0 :(得分:1)

好的,终于知道了。 var'longest'可以是数字('80')或int(80)的字符串版本。诀窍是仅在右插值var周围使用花括号。

"{fpath:>{flong}}".format(fpath=path, flong=longest)

答案 1 :(得分:0)

尝试使用此功能:

longest='{0}.format(variable value)'#let say 80
print('{fpath:>{flong}}'.format(fpath=path,flong=longest))

可变长度也需要转换为格式说明符。我希望你明白。如果仍然有任何问题,请告诉我。