python的%字符串格式化

百度了一下python字符串格式化的操作符%,依据这篇文章,http://www.cnblogs.com/vamei/...
大概知道了格式。

问题:
1、%s表示字符串格式,但是下面这个代码中的%2s是什么意思呢?

for row in rows:
    tmp = "%2s" % row

2、python2使用%操作符,python3好像是这样的:

"{0} {1}".format(a,b) 

上面的%2s要改成python3的格式化方式,应该怎么写呢?

阅读 4.9k
4 个回答
  1. 字符串長度為2

    >>> rows =range(1,3)
    >>> for row in rows:
    ...     tmp = "%2s" % row
    ...     print (tmp)
    ...
     1
     2
    >>> for row in rows:
    ...     tmp = "%5s" % row
    ...     print (tmp)
    ...
        1
        2
        
  2. 參見PEP 3101Aligning the text and specifying a width

    "{:>2}".format(row)  
    

针对这个Python3可以使用

{:>2}.format(row)

不过Python3依然保持着对%形式格式化的支持。
另外在3.6版本新增了模板字符串的功能,可以直接地进行字符串格式化。

s = 'abc'
n = 5
print(f'{s:>2} and {n:.2f}') # abc and 5.00

format函数不是python3独有,python2.6后就有的, %2s 意思大概是格式化后至少2个字符,不足的用空格填充.
你可以参考这个: http://blog.csdn.net/handsome...
你问的%2s 改为format函数格式里面也有提到,在填充与对齐 那一部分

也可以这么写

name = 5
print(f'{name}')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题