我想用空格填充一个字符串。我知道以下内容适用于Zero:

>>> print "'%06d'"%4

'000004'

但是如果我想要这个怎么办?:

'hi    '

当然,我可以测量弦长,也可以做str+""*leftover,但我想要最短的方法。

您可以使用str.ljust(width[, fillchar])来完成此操作:

Return the string left justified in a string of length width. Padding is done using the specified fillchar (default is a space). The original string is returned if width is less than len(s).

>>> 'hi'.ljust(10)

'hi        '

@Simon的答案在格式化更复杂的字符串时更加灵活和有用。

或者@abbot's,如果您坚持支持旧版本的python

现在不推荐使用ljust()。请参阅stackoverflow.com/questions/14776788/…,了解正确的方法。

它在python 3中消失了?只是想补充一点,还有rjust和center,它们的工作方式基本相同,但用于不同的路线。

ljust()、rjust()仅从字符串模块中被弃用。它们在str内置类型上可用。

。格式是标准的打印方式。

除非您需要支持python 2.5,否则您可以(也可能应该)使用字符串格式的迷你语言,如下所示:

'{0: <16}'.format('Hi')

如果变量中有"16",该怎么办?

我也明白了。应该贴出来的。医生说这应该适用于PY2.6,但我的发现是相反的。但在PY2.7中工作。

当我使用国家口音时,这种格式有问题。你希望"kra"和"kr&225;"是一样的,但事实并非如此。

@兰迪·埃多克斯(Randy EDOCX1)(3)

不要将str.format()用于只有一个{...}的模板,而不要使用其他模板。只需使用format()函数,就可以节省解析开销:format('Hi', '<16')。

我建议不要让每个阅读代码的人都学习这样一种"迷你语言"——当然,除非您将该逻辑包装在一个函数中。

@aaaaaaa你从来没有用过python,对吧…

@西蒙-不管我使用什么语言,我都会编写可读的函数。但是,是的,我对Python不太熟悉,主要写JS。仅仅因为某些东西是标准的,并不意味着你应该让每个人都分析你的代码。regex对阅读非常不友好,比python的字符串格式化迷你语言要标准得多。

新的(ish)字符串格式方法允许您使用嵌套的关键字参数做一些有趣的事情。最简单的情况是:

>>> '{message: <16}'.format(message='Hi')

'Hi             '

如果您想将16作为变量传入:

>>> '{message:

'Hi              '

如果您想为整个kit和kaboodle传递变量:

'{message:{fill}{align}{width}}'.format(

message='Hi',

fill=' ',

align='

width=16,

)

结果是(你猜对了):

'Hi              '

您可以尝试以下操作:

print"'%-100s'" % 'hi'

打印"%-6s"%'你好!!

从python 3开始,这种语法将被弃用——最好像在我的示例中那样使用新语法,或者像在其他答案中那样使用str.ljust。这可能是最薄弱的答案。

@西蒙就像一个困在Python2.5系统上的人一样,这个答案帮助了我,而不是一个无用的答案+1

3.3中不再反对+

我更喜欢这种常见的printf语法。允许您编写复杂的字符串,而不需要无数的连接。

为了完整起见,"'%+100s'" % 'hi'将用于在'hi'的右侧放置空间。

正确的方法是使用官方文档中描述的python格式语法。

对于这种情况,只需:江户十一〔七〕号哪些输出:埃多克斯1〔8〕

说明:

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]

fill        ::=

align       ::= "" |"=" |"^"

sign        ::= "+" |"-" |""

width       ::=  integer

precision   ::=  integer

type        ::= "b" |"c" |"d" |"e" |"E" |"f" |"F" |"g" |"G" |"n" |"o" |"s" |"x" |"X" |"%"

你所需要知道的几乎都在那里。

更新:从python 3.6开始,使用文字字符串插值更加方便!

foo = 'foobar'

print(f'{foo:10} is great!')

# foobar     is great!

使用str.ljust():

>>> 'Hi'.ljust(6)

'Hi    '

对于字符串格式,还应该考虑使用string.zfill()、str.ljust()和str.center()。这些可以被链接并指定"填充"字符,因此:

>>> ('3'.zfill(8) + 'blind'.rjust(8) + 'mice'.ljust(8, '.')).center(40)

'        00000003   blindmice....        '

这些字符串格式化操作具有在Pythonv2和v3中工作的优势。

看一看江户记1(5):里面有很多好东西。

从python 3.6开始,您可以

>>> strng = 'hi'

>>> f'{strng: <10}'

使用文字字符串插值。

或者,如果您的填充大小是一个变量,则如下所示(谢谢@matt m.!):

>>> to_pad = 10

>>> f'{strng:

用于填充长度为10的前导空格的字符串。那是魔法。而且没有很好的记录。

@长野我认为这也是f'{strng:10}'的违约行为。

您还可以将字符串居中:

'{0: ^20}'.format('nice')

对字符串使用python 2.7的小格式:

'{0: <8}'.format('123')

此左对齐,并用""字符填充到8个字符。

@西蒙已经给出了这个答案…为什么要发布重复答案?

我没有点击"新回复已经发布,点击刷新",所以错过了。

只需删除0,它将添加空格:

>>> print "'%6d'"%4

用切片会不会更像Python?

例如,要将右边带有空格的字符串填充到10个字符长:

>>> x ="string"

>>> (x +"" * 10)[:10]

'string    '

要用左边的空格填充到15个字符长:

>>> ("" * 15 + x)[-15:]

'         string'

当然,这需要知道你想要填充多长时间,但不需要测量你开始时的绳子长度。

不,不会的。

你能详细解释一下吗?不是我不相信你,我只是想知道为什么。

当然。最诡异的方法是使用一个内置的函数,而不是尽可能多地使用国产的解决方案。

@疯子物理学家说,切片是较少的Python,因为你应该使用内置的功能,就像说''.join(reversed(str))比str[::-1]更Python,我们都知道这不是真的。

@尼卡。这不是一个很好的类比。作为一个例子,您使用的案例是非常有效的。然而,在我看来,使用(x +"" * 10)[:10]比使用x.ljust(10)要复杂得多。

@疯子物理学家,我更想说的是,你的评论"使用一个内置函数的最诡异的方式"并不总是准确的,而且它们也不是生活的语言。虽然在这种情况下,它确实是。

@尼卡。在这种情况下,我们达成了暴力协议:)

一个很好的技巧来代替各种打印格式:

(1)右边有空格的垫子:

('hi' + '        ')[:8]

(2)用左前导零填充:

('0000' + str(2))[-4:]

你可以使用列表理解来完成它,这也会让你对空格的数量有一个概念,并且是一行代码。

"hello" +"".join(["" for x in range(1,10)])

output --> 'hello                 '

+=可用于附加到字符串

>>> string = 'hi'

>>> for s in range(0,5):

...    string += ' '

...

>>> string

'hi          '

或者只使用string += ' ' * 5来避免显式的for循环。

python空格符用什么表示_如何用空格填写Python字符串?相关推荐

  1. python 爬取财经新闻_如何用 100 行 Python 代码实现新闻爬虫?

    CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 每天我都要坐地铁上班,而地铁里完全没有手机信号.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫. 我 ...

  2. python学法用法 自动刷分_如何用SphereFace+纯Python刷分Megaface

    SphereFace 是今年CVPR的一篇论文, 理论直观优美, 作者的代码和调参功力也足够深厚. 已经有部分人用项目中release的20层模型在Megaface-challenge-1中刷到了70 ...

  3. python爬虫定时爬取_如何用框架给python爬虫定时?

    生活中需要按时的事情很多,如果一旦错过原定的时间,就会出现一些不必要的麻烦要处理.在编程中,我们用python做测试,需要某个程序在固定的时间点启用,这就要用到python爬虫的定时功能.常用的几种定 ...

  4. python向数据库写入数据_如何用Python向Mysql中插入数据

    我们使用Python经常会和Postgresql进行搭配,很少将python和mysql进行搭配.下面小编给大家分享如何用Python向Mysql中插入数据. 工具/原料 Pycharm 方法/步骤 ...

  5. python web为什么不火_如何用纯 Python 写交互式 Web 应用?

    不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户. 痛点 从我开始折腾数据分析工具的那一天,就没有想明白一件事儿 -- 我打算把数 ...

  6. python write 写多行_如何用 Python 执行单行命令

    一般来说,面对日常处理的一些小任务,直接用 sed,grep 之类的就可以搞定,更复杂一点的就会考虑 awk 或者用一些现成的轮子,要是 awk 搞不定我就只好用 Python 了.但有些时候,我仅仅 ...

  7. python9行代码_如何用9行Python代码编写一个简易神经网络

    原标题:如何用9行Python代码编写一个简易神经网络 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 学习人工智能时,我给自己定了一个目标--用Pyth ...

  8. python中文模糊关键词提取_如何用Python提取中文关键词?

    本文一步步为你演示,如何用Python从中文文本中提取关键词.如果你需要对长文"观其大略",不妨尝试一下. 需求 好友最近对自然语言处理感兴趣,因为他打算利用自动化方法从长文本里提 ...

  9. python能制作游戏吗_如何用python写一个小游戏

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游 ...

最新文章

  1. 《小账本》开发日志 第三天
  2. 基于django的视频点播网站开发-step2-搭建环境
  3. C++迭代器失效的几种情况总结
  4. MySQL MHA 安装
  5. 在MongoDB和Spring Batch中将XML转换为JSON和原始使用
  6. 苹果cmsV10仿哈哩哈哩动漫自适应模板
  7. 对AngularJS的编译和链接过程讲解一步到位的文章
  8. 手机各种JS语法,随时更新
  9. 关于异常信息未找到成员
  10. C++11基于范围的for循环
  11. 2017/07/27 工作日志
  12. HTML5期末大作业:我的家乡网站设计——我的家乡-南京(4页)
  13. 关于码元、波特率和比特率
  14. 动词ing形式的5种用法_动词ing形式的用法及变化规则.
  15. Unity InputField光标位置不对
  16. 如何解决打开浏览器跳转MSN中国页面
  17. 原来这才是折叠屏的刚需...
  18. 万能实用工具箱微信小程序
  19. 洛谷P1240 诸侯安置
  20. PL/0语言 词法分析

热门文章

  1. 3dmax脚本将字符串转换成整型,去掉结尾多余的字符串
  2. Max动画分割脚本 Unity 自动识别动画分割信息
  3. dedecms 标签使用大全说明(织梦cms)
  4. 如何删除onekey ghost创建的目录
  5. ditto工具的使用
  6. 线程和进程/阻塞和挂起
  7. Elasticsearch:flattened 数据类型 (7.3 发行版新功能)
  8. 【洛谷1892】团伙 并查集
  9. [IP_Flow 19-4964] n has core container option enabled. This is not supported for packag vivado封装IP报
  10. 判断一个对象是不是数组类型,最全方法