练习从3.3认为Python
问题描述:
问题: Python提供称为内置函数len返回字符串的长度,所以LEN(“艾伦”)的值是5 写命名的函数right_justify将一个名为s的字符串作为参数,并用足够的前导空格打印该字符串,以使字符串的最后一个字母位于显示的第70列。练习从3.3认为Python
>>> right_justify('allen')
allen
我试着写一些代码如下:
>>> def right_justify(s):
... print s
...
>>> right_justify('allen')
>>> allen
结果是没有通过运动所需的足够的前导空格。而且我无法使用内置函数len来帮助解决它。
有关如何解决此问题的任何想法?
答
只要加上N-len(s)print
和s
之间的空格不会有帮助,因为Python会简单地忽略它们。你可以做到这一点使用字符串格式化:
>>> '{: >70}'.format('allen')
' allen'
或rjust
方法str
对象:
>>> 'allen'.rjust(70)
' allen'
或format
功能(这是一样的str.format
,真的):
>>> format('allen', ' >70')
' allen'
尽管最直接的方法是
>>> s = 'allen'
>>> ' ' * (70 - len(s)) + s
' allen'
答
空白更多信息的print
后插入将被忽略,除非它是引号('
或"
)内。您可以使用*
多次插入特定字符,例如要插入30个空格,您可以编写' ' * 30
。所以用这个插入所需数量的空格,你知道这个空格将由len(s)
决定,并且所选的屏幕宽度为70列。
假设的目的锻炼是让你通过尝试不同的东西来学习,你想要什么样的帮助?被给予答案不会帮助你。 – Stuart 2014-11-22 13:29:05