【发布时间】:2015-07-20 08:23:46
【问题描述】:
我对 Python 还很陌生,并尝试格式化一个字符串以在 LCD 显示器上输出。
我想输出一个格式化的火车发车表
- 显示的长度固定为 20 个字符 (20x4)
- 我有 3 个可变长度的字符串变量(line、station、eta)
- 其中 2 个应左对齐(线路、车站),而第三个应右对齐
例子:
8: station A 8
45: long station 10
1: great station 25
我玩过各种各样的东西,但我无法定义整个字符串的最大长度,但只有 1 个变量:
print('{0}: {1} {2:<20}'.format(line, station, eta))
非常感谢任何提示和提示!
--- 基于@Rafael Cardoso 回答的解决方案:
print(format_departure(line, station, eta))
def format_departure(line, station, eta):
max_length = 20
truncate_chars = '..'
# add a leading space to the eta - just to be on the safe side
eta = ' ' + eta
output = '{0}: {1}'.format(line, station) # aligns left
# make sure that the first part is not too long, otherwise truncate
if (len(output + eta)) > max_length:
# shorten for truncate_chars + eta + space
output = output[0:max_length - len(truncate_chars + eta)] + truncate_chars
output = output + ' '*(max_length - len(output) - len(eta)) + eta # aligns right
return output
【问题讨论】: