Python提供了一个名为len
的内置函数,它返回一个字符串的长度,因此len('allen')
的值为5.编写一个名为right_justify
的函数,它接受一个名为的字符串s
作为参数并打印具有足够前导空格的字符串,以便字符串的最后一个字母位于显示的第70列。
作者的解决方案:
def right_justify(s):
print (' '*(70-len(s))+s)
>>> right_justify('allen')
我的解决方案:
def right_justify(s):
space_count=70-len(s)
for i in range(0,space_count,1):
print " ",
print s
strng=raw_input("Enter your desired string:")
print len(strng)
right_justify(strng)
我的代码输出与作者代码的输出不同:我得到两倍的空格,例如130而不是65。
但在我看来,这两段代码在逻辑上是等价的。我在俯瞰什么?
答案 0 :(得分:2)
问题在于您的打印声明
print " ",
将为循环的每次迭代打印两个空格。使用逗号终止print语句时,后续调用将以空格分隔。
另外,另一种定义right_justify
功能的方法是
def right_justify(s):
print '%70s' % s
答案 1 :(得分:0)
print " ",
行实际上会打印两个空格(一个来自" "
,一个来自,
)。您可以将其替换为print "",
,以使您的功能与原始功能完全相同。
答案 2 :(得分:0)
您的代码有130个空格,作者的代码有65个空格。这是因为
print " ",
...增加一个空间。你想要的是:
print "",
答案 3 :(得分:0)
我更喜欢str.rjust(70,“”)这个功能,我认为这样做是这样的: strng.rjust(70,“”)