需要一些Python字符串格式的帮助 我有两个代码:
a = "Hello"
b = False
p = "Python rocks"
q = True
我想要打印a,b,p&我喜欢这样:
Hello ................................. False
Python rocks .......................... True
每行的总长度(从Hello到False)是固定的,比如70个字符。
(编辑)正在尝试以下内容。显然不是一个好方法(而且不正确),因此问题
arr = [ ["Hello", False], ["Python rocks", True]]
totallen = 70
for e in arr:
result = "{0}".format(e[1])
dottedlen = totallen - len(e[0]) - len(result) - 2
dottedstr = "." * dottedlen
str = "".join([e[0], " ", dottedstr, " ", result])
print str
答案 0 :(得分:1)
In [48]: def solve(a,b):
a,b=str(a),str(b)
spaces=len(a.split())-1
return "{0} {1} {2}".format(a,"."*(68-len(a)-len(b)-spaces),b)
....:
In [49]: print solve(a,b);print solve(p,q)
Hello .......................................................... False
Python rocks ................................................... True
答案 1 :(得分:0)
只需创建一个函数,将句点添加到固定数量的字符:
def formatter(my_string,length,my_boolean):
my_string += " " + "." * (length - len(my_string))
print my_string, my_boolean
formatter(a,70,b)
formatter(p,70,q)
注意:打印而不是返回的原因是当您返回然后打印它时,使用此方法打印以下内容:
('Hello .................................................................', False)
('Python rocks ..........................................................', False)
但没有返回,只需直接从函数打印就可以得到你想要的东西:
Hello ................................................................. False
Python rocks .......................................................... False