为啥结果打印 b'hello,Python!' ,当我使用张量流? [复制]

Posted

技术标签:

【中文标题】为啥结果打印 b\'hello,Python!\' ,当我使用张量流? [复制]【英文标题】:Why the result prints b'hello,Python!' ,when I use tensorflow? [duplicate]为什么结果打印 b'hello,Python!' ,当我使用张量流? [复制] 【发布时间】:2018-03-08 10:40:08 【问题描述】:

代码固定在下面:

import tensorflow as tf

hello=tf.constant("hello,Python!")

sess=tf.Session()

print(sess.run(hello))

当前结果固定在下方:

b'你好,Python!'

然后截图

那么,我应该怎么做才能在当前结果之前删除奇怪的“b”?

【问题讨论】:

我的描述可能有点令人费解,其实我跑完代码后,结果的头部显示了一个“b”,让我很困惑。 b 字符前缀表示Hello, TensorFlow! 是byte string 【参考方案1】:

根据 Python 2.x documentation:

'b' 或 'B' 前缀在 Python 2 中被忽略;它表明 文字应该成为 Python 3 中的字节文字(例如,当代码 用 2to3 自动转换)。 'u' 或 'b' 前缀可能是 后跟一个“r”前缀。

所以在 Python 3.x 中

bytes = b'...' 字面量 = 八位字节序列(0 到 第255章)

它实际上并不存在,它只是被打印出来。这不会在任何地方造成任何问题。

您可以尝试 decode("utf-8") 将其转换为 str。

为我工作

>>> print(out)
b'hello,Python!'
>>> out.decode('utf-8')
'hello,Python!'

【讨论】:

这是一个临时解决方案。所以,每次都需要换。有什么永久的解决方案吗?

以上是关于为啥结果打印 b'hello,Python!' ,当我使用张量流? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥打印结果与实物不符

为啥 1 == int 的计算结果为 False? [复制]

为啥sql查询结果会打印出不需要的字符?

GWT RPC - 为啥来自数据库的结果被打印两次?

当我使用线程将内容打印到控制台时,为啥会产生奇怪的结果?

为啥此命令无法打印 Python 命令的正确退出代码?