分析字符串的长度并为其添加字符

时间:2014-08-04 23:00:01

标签: python string

正如您从下面的程序中可以清楚地看到的,我对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()

1 个答案:

答案 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  

占用超出分配空间的变量仍然会导致问题,但修复它需要您决定表格的外观。截断一个过长的字符串是一种可能性。