分析字符串长度并添加字符
从下面的程序可以看出,我对Python(2.7.5)还很陌生,所以我决定把我学到的知识结合起来,做一些有趣的事情。不过,如果你仔细看我的程序,特别是第87到90行,你会发现我遇到了一些问题。如果你运行这个程序,当字符串name1、name2和name3的长度大于或等于8个字符时,我设置了一个错误提示。我这样做是因为如果名字超过8个字符,会影响我的表格显示。你有什么建议可以帮助我解决这个问题吗?另外,有没有办法让我代码更简洁、更易读呢?
if len(name1) > 8 or len(name2) > 8 or len(name3) > 8:
print "error- input too large"
else:
table()
1 个回答
1
我想这个问题是因为代码里有这样的行:
"""something
"""+ name1 + """ """+ age1 + """ """+ colour1 + """
more"""
解决这个问题的方法是使用Python的一种字符串格式化方法。例如,下面的代码为每个变量预留了十个空格:
"""something
%10s %10s %10s
more""" % (name1, age1, color1)
这样可以让内容对齐得很好。而且,如果你把%-10s
换成%10s
,你就可以改变对齐方式。
把这个放到一个更完整的例子里:
def table(name1='Ann', name2='Dorothy', name3='JJ',
age1=1, age2=104, age3=10,
color1='red', color2='green', color3='yellow'):
print """
%-10s %3s %-20s
%-10s %3s %-20s
%-10s %3s %-20s
%-10s %3s %-20s
""" % ('Name', 'Age', 'Favourite Colour',
name1, age1, color1,
name2, age2, color2,
name3, age3, color3,
)
table()
上面的代码会产生这样的输出:
$ python table.py
Name Age Favourite Colour
Ann 1 red
Dorothy 104 green
JJ 10 yellow
如果变量占用的空间超过了预留的空间,还是会出现问题,但要解决这个问题,你需要决定你想要表格的样子。把过长的字符串截断是一个解决办法。