所以我觉得这很简单,但我似乎无法让它发挥作用。
目标是简单地定义一个将打印字符串的函数,该字符串的最后一个字母必须位于70
列中。
我做到了。
def fun(s):
print(70*' ' -len(s) , s)
尝试创建70
个空格并将其减去字符串的长度。
我收到此错误:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
我知道它告诉我的是什么,但无法扭转它。
答案 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-20
或50
个空格字符串。
尽管如此,更好的解决方案是使用str.rjust
:
s.rjust(70)
以下是演示:
>>> s = 'abcde'
>>> s.rjust(70)
' abcde'
>>> len(s.rjust(70))
70
>>>
str.rjust
,str.ljust
和str.center
方法(均在上面的链接中说明)是专为此类任务而设计的。
答案 4 :(得分:0)
你可以做到
print ("%70s" % s)
会更清楚。
答案 5 :(得分:0)
或许这样的事情:
print((70-len(a))*' ',a)