F字符串,帮助格式化

时间:2019-06-30 20:24:56

标签: python

我正在跟踪一个教程,试图了解此处发生的情况。因此,我们首先将“消息”编码为字节,然后取其长度,然后将其向左对齐(?)10,然后对整个内容进行编码?

我正尝试在无法理解f字符串的设备中使用此部分,因此我需要以.format()的方式对其进行格式化,但无法弄清楚该怎么做。

HEADER_LENGTH = 10
message = 'this is test message'

message = message.encode('utf-8')
message_header = f"{len(message):<{HEADER_LENGTH}}".encode('utf-8')

2 个答案:

答案 0 :(得分:4)

如果目标位于Python 3.6之前,则可以“降级”为format风格

message_header = "{ml:<{hl}}".format(ml=len(message),hl=HEADER_LENGTH).encode('utf-8')

format支持嵌套,因此适应很容易。只需在format参数中移动求值变量并使用关键字,所以占位比位置(或空括号)样式更容易。

上面的左边使用HEADER_LENGTH的长度将消息(以字符串的形式)的长度对齐到右空格,并带有空格。

答案 1 :(得分:-1)

运行代码后,它不是字符串,messagemessage_header都是utf-8编码的字符串。