正如您从下面的程序中可以清楚地看到的,我对Python(2.7.5)很陌生,我决定将所有的knowledge.py放在一起创造一些有趣的东西。但是,如果你阅读我的程序,专注于第87-90行,很明显我遇到了问题。如果你运行程序并且字符串name1,2和3的长度大于或等于8个字符,我就输错了。我把它放入,因为如果名称超过8个字符,它会弄乱我的表。你有什么建议绕过这个最好的方法?另外,无论如何我可以优化/使我的代码更具可读性吗?
if len(name1) > 8 or len(name2) > 8 or len(name3) > 8:
print "error- input too large"
else:
table()
答案 0 :(得分: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
占用超出分配空间的变量仍然会导致问题,但修复它需要您决定表格的外观。截断一个过长的字符串是一种可能性。