2014-11-22 78 views
-7

问题: 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来帮助解决它。

有关如何解决此问题的任何想法?

+2

假设的目的锻炼是让你通过尝试不同的东西来学习,你想要什么样的帮助?被给予答案不会帮助你。 – Stuart 2014-11-22 13:29:05

回答

-1

你可以这样做只是这样的:

在Python 3.X:

print(" "*(70 - len(s)) + s) 

而且像这样在Python 2.x中:

print " "*(70 - len(s)) + s 
+1

非常感谢。真的行。 – sky112901 2014-11-22 15:42:01

+0

如果它适合你,请按下高按钮。你只是给我一个不好的分数来回答我的问题。谢谢 – 2014-11-22 15:44:16

+1

这不是我。现在我没有足够的声望来投票。 – sky112901 2014-11-22 15:50:39

2

只要加上N-len(s)prints之间的空格不会有帮助,因为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' 
0

什么你正在做的是:

print (              s) 

帕拉姆 “S” 是一样的。你可以使用String类的*只是方法或其他。 在here

1

空白更多信息的print后插入将被忽略,除非它是引号('")内。您可以使用*多次插入特定字符,例如要插入30个空格,您可以编写' ' * 30。所以用这个插入所需数量的空格,你知道这个空格将由len(s)决定,并且所选的屏幕宽度为70列。