问题: Python提供了一个名为 len 的内置函数,它返回一个字符串的长度,因此len(' allen')的值为5。 编写一个名为 right_justify 的函数,它将一个名为 s 的字符串作为参数,并打印带有足够前导空格的字符串,以便字符串的最后一个字母位于第70列的显示。
>>> right_justify('allen')
allen
我尝试编写如下代码:
>>> def right_justify(s):
... print s
...
>>> right_justify('allen')
>>> allen
结果是练习不需要足够的前导空间。我无法使用内置函数 len 来帮助解决它。
有关如何解决此问题的任何想法?
答案 0 :(得分:2)
在print
和s
之间添加 N - len(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'
答案 1 :(得分:1)
print
之后插入的空格将被忽略,除非它在引号内('
或"
)。您可以使用*
多次插入特定字符,例如要插入30个空格,您可以编写' ' * 30
。因此,使用此选项可插入所需数量的空格,您知道这些空格将由len(s)
确定,并且所选的屏幕宽度为70列。
答案 2 :(得分:0)
答案 3 :(得分:-1)
你可以这样做:
在Python 3.x中:
print(" "*(70 - len(s)) + s)
在Python 2.x中就像这样:
print " "*(70 - len(s)) + s