分析字符串长度并添加字符

0 投票
1 回答
507 浏览
提问于 2025-04-18 16:00

从下面的程序可以看出,我对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  

如果变量占用的空间超过了预留的空间,还是会出现问题,但要解决这个问题,你需要决定你想要表格的样子。把过长的字符串截断是一个解决办法。

撰写回答