打印带有足够前导空格的字符串?

时间:2012-11-18 13:15:31

标签: python function

Python提供了一个名为len的内置函数,它返回一个字符串的长度,因此len('allen')的值为5

编写一个名为right_justify的函数,它将一个名为s的字符串作为参数,并打印带有足够前导空格的字符串,以便字符串的最后一个字母位于显示的第70列。< / p>

>>> right_justify('allen')
                                                       allen
我解决了这个问题:

def right_justify(s):
    print "                                                                 " + s    

right_justify('allen')

是不是?

是否有内置的Python方法来完成我需要做的事情?

15 个答案:

答案 0 :(得分:8)

使用string formatting非常容易:

def right_justify(s):
    print "%70s" % s

答案 1 :(得分:3)

使用format

In [60]: strs="allen"

In [61]: format(strs,">70s")
Out[61]: '                                                                 allen'

In [62]: format(strs,">70s").index('n')
Out[62]: 69

或使用str.format

In [68]: "{0:>70s}".format(strs)
Out[68]: '                                                                 allen'

答案 2 :(得分:2)

当然,这里有一个巧妙的小技巧:

def right_justify(s, total_length=70):
    return ' ' * (total_length - len(s)) + s

如果不是很清楚,这将打印出total_length - 空白空间的长度。

答案 3 :(得分:1)

我会做这样的事情,这是许多简单的方法之一:

def right_just(s):    
    print(s.rjust(70))

right_just('allen')

答案 4 :(得分:0)

我不会为你做功课,但这是一个简单的算法:

  1. 找出你的字符串有多长(提示:len())。

  2. 找出需要打印的空格数(提示:如果你的字符串是5个字符,总长度应该是70,你想打印65个空格)。

  3. 打印空格。

  4. 打印字符串。

答案 5 :(得分:0)

     def right_justify(s):
         print((70-len(s))*' '+s)

答案 6 :(得分:0)

def right_justify(s):
    print len(s)
    print ' '* (70 - len(s)) + s

word = raw_input('enter any word')
right_justify(word)

答案 7 :(得分:0)

def right_justify(s):
...  length=len(s)
...  spaces=70-length
...  print (' ' * spaces) + s
...
>>> right_justify('allen')

答案 8 :(得分:0)

def right_justify(s):
    print ('')
    print ('Number of chars: ' + str(len(s)))
    print ('')
    print (' '* (70 - len(s)) + s)

word = input('Enter any word: ')
right_justify(word)

答案 9 :(得分:0)

def right_justify (s):
    x = ' '
    w = (70-len(s))*x + s
    print (w)

答案 10 :(得分:0)

也许我误解了这个问题,但似乎只有在变量长度为一个字符时,给出的答案才会给出正确的结果。 我对编码也很陌生,所以这可能会偏离基础。

def right_justify(s):
        length = len(s)
        adjustedLength = len(s) -1
        spaces = 70 - length + adjustedLength
        print(spaces * " " + "s")


s = "whatever you want to enter"
right_justify(s)

我这样做,所以无论定义什么,你得到69个空格然后&#34; s&#34;。

如果这是错的,请告诉我,这样我就可以调整自己的思维方式。

答案 11 :(得分:0)

def right_justify(s):
    length =len(s)
    spaces = 70-length
    print((" " * spaces) + s)

word = "monty"
right_justify(word)

定义后,长度取决于所选单词,而不是(s)...所以你创建公式。长度,空格和打印应缩进。 必须发明变量,以便将单词从str转换为可变格式。

答案 12 :(得分:0)

这是工作代码

    def right_justify(s):

    length = len('s')

    spaces = 70 - length 
    print "required space is",spaces

    print(" " * spaces) + s

right_justify('allen')

输出

required  space is  69
                                                                     allen

答案 13 :(得分:0)

只是想到了使它更具动态性的另一种方法:)

功能

def right_justify(s,num)

print(s.rjust(num))

通话功能

right_justify(“艾伦”,50)

答案 14 :(得分:0)

要使最后一个字母出现在第70列中,您需要从70中减去s的长度,就像这样

def right_justify(s):
    print(" " * (70 - (len(s)) + s)