如何在特定列中编写

时间:2014-11-12 21:01:12

标签: python string

所以我觉得这很简单,但我似乎无法让它发挥作用。

目标是简单地定义一个将打印字符串的函数,该字符串的最后一个字母必须位于70列中。

我做到了。

def fun(s):

    print(70*' ' -len(s) , s)

尝试创建70个空格并将其减去字符串的长度。

我收到此错误:

TypeError: unsupported operand type(s) for -: 'str' and 'int'

我知道它告诉我的是什么,但无法扭转它。

6 个答案:

答案 0 :(得分:2)

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

(如果len(s) > 70,您将遇到问题)

答案 1 :(得分:1)

你可以使用rjust:这是演示

>>> 'hello'.rjust(10,' ')
'     hello'

答案 2 :(得分:1)

使用格式化功能:

print('{0:>70}'.format(s))

答案 3 :(得分:0)

你应该这样做:

' '*(70-len(s))

或者,间距很小:

' ' * (70 - len(s))

这将创建一个空格字符串,其长度等于70减去字符串s的长度。因此,如果s长度为20个字符,则代码会生成70-2050个空格字符串。

尽管如此,更好的解决方案是使用str.rjust

s.rjust(70)

以下是演示:

>>> s = 'abcde'
>>> s.rjust(70)
'                                                                 abcde'
>>> len(s.rjust(70))
70
>>>

str.rjuststr.ljuststr.center方法(均在上面的链接中说明)是专为此类任务而设计的。

答案 4 :(得分:0)

你可以做到

print ("%70s" % s)

会更清楚。

答案 5 :(得分:0)

或许这样的事情:

print((70-len(a))*' ',a)