字符串格式-Python
我有两个字符串,其长度可以根据输入而变化。我想格式化它们,将它们对齐中间,并用字符串格式-Python,python,string,python-2.7,printing,Python,String,Python 2.7,Printing,我有两个字符串,其长度可以根据输入而变化。我想格式化它们,将它们对齐中间,并用'填充剩余的空间。以^^开头和结尾的每个字符串 案例1: String1 = Longer String String2 = Short String1 = Equal String1 String2 = Equal String2 String1 = Short String2 = Longer String 所需输出: ^^ Longer String ^^ ^^ Short
'
填充剩余的空间。以^^
开头和结尾的每个字符串
案例1:
String1 = Longer String
String2 = Short
String1 = Equal String1
String2 = Equal String2
String1 = Short
String2 = Longer String
所需输出:
^^ Longer String ^^
^^ Short ^^
^^ Equal 1 ^^
^^ Equal 2 ^^
^^ Short ^^
^^ Longer String ^^
案例2:
String1 = Longer String
String2 = Short
String1 = Equal String1
String2 = Equal String2
String1 = Short
String2 = Longer String
所需输出:
^^ Longer String ^^
^^ Short ^^
^^ Equal 1 ^^
^^ Equal 2 ^^
^^ Short ^^
^^ Longer String ^^
案例3:
String1 = Longer String
String2 = Short
String1 = Equal String1
String2 = Equal String2
String1 = Short
String2 = Longer String
所需输出:
^^ Longer String ^^
^^ Short ^^
^^ Equal 1 ^^
^^ Equal 2 ^^
^^ Short ^^
^^ Longer String ^^
在所有三个输出中,长度保持不变,以便保持一致性
我最初的想法是,这将涉及以下格式检查两个字符串的长度
if len(String1) > len(String2):
#Do something
else:
#Do something else
如果要参考仅针对两个字符串设置居中:
cases=[
('Longer String','Short'),
('Equal 1','Equal 2'),
('Short','Longer String'),
]
for s1,s2 in cases:
w=len(max([s1,s2],key=len))+6
print '^^{:^{w}}^^'.format(s1,w=w)
print '^^{:^{w}}^^'.format(s2,w=w)
print
印刷品:
^^ Longer String ^^
^^ Short ^^
^^ Equal 1 ^^
^^ Equal 2 ^^
^^ Short ^^
^^ Longer String ^^
或者,如果要测试更多字符串的宽度,可以执行以下操作:
cases=[
('Longer String','Short'),
('Equal 1','Equal 2'),
('Short','Longer String'),
]
w=max(len(s) for t in cases for s in t)+6
for s1,s2 in cases:
print '^^{:^{w}}^^'.format(s1,w=w)
print '^^{:^{w}}^^'.format(s2,w=w)
print
印刷品:
^^ Longer String ^^
^^ Short ^^
^^ Equal 1 ^^
^^ Equal 2 ^^
^^ Short ^^
^^ Longer String ^^
只需使用:
我最终使用了下面的代码,这对我很有用。19可以替换为任何数字,具体取决于您希望将字符串格式化为的长度
print "^^",'{:^19}'.format(String1),"^^"
print "^^",'{:^19}'.format(String2),"^^"
str.center()
有什么问题?匹配字符串可能会有所不同。是的,但是你想要的宽度公式是什么?所有示例都使用宽度19,因此此代码解决了原始问题。您能否提供一个长度为的输出示例!=19,并回答为什么相等
和较长字符串的宽度都是19?这很公平。我的例子可能误导了我们。不过我同意你的解决方案。非常有用。谢谢