当前位置: 首页 > 面试题库 >

删除Python 3中字符串文字前面的'b'字符

姚煜
2023-03-14
问题内容

我是python编程的新手,我有点困惑。我尝试从字符串中获取字节以进行哈希和加密,但是我得到了

b'...'

字符串前面的b字符,如以下示例所示。有什么办法可以避免这种情况吗?有人可以提供解决方案吗?对不起这个愚蠢的问题

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)

输出:

 print b'my secret data'

问题答案:

解码是多余的

首先,您对这种情况有误解,这是因为对所发生的事情有误解。

您会得到,b因为您utf-8已对其进行编码,现在它是一个字节对象。

 >> type("text".encode("utf-8"))
 >> <class 'bytes'>

修正:

  1. 您可以先打印字符串
  2. 编码后冗余解码


 类似资料:
  • 问题内容: 删除字符串的前三个字符的最有效方法是什么? 例如: 问题答案: 只需使用子字符串:将返回

  • 问题内容: 显然,以下是有效的语法 我想知道: 这是什么b字在前面的字符串是什么意思? 使用它有什么作用? 在什么情况下可以使用它? 我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,而不是是要从版本兼容的代码,当迁移到PHP 6时。我认为这不适用于Python。 我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为的文档。不幸的是,它在

  • 问题内容: 将字符串创建为inary 有什么后果? 我在文档中找不到关于此的任何提示。刚刚在查看language_scanner时发现了这种好奇心。 问题答案: 这是永不发布的PHP版本6的前向兼容性令牌,该版本应具有本机unicode支持。 在PHP6中,字符串默认为unicode,函数在其上的unicode字符级别上运行。“ b”表示“二进制字符串”,即非unicode字符串,在其上功能以字节

  • 问题内容: 如果我有一个字符串列表,例如: 为了摆脱每个字符串中的所有s,我该怎么办?我尝试在for循环中使用或,但是它无法像正常字符串(不在列表中)那样工作。有人有建议吗? 问题答案: 尝试这个:

  • 问题内容: 我有像这样的字符串“ aaaabbbccccaaddddcfggghhhh”,我想删除重复的字符,得到像这样的字符串“ abcadcfgh”。 一个简单的实现是: 使用正则表达式是否可能有更好的实现? 问题答案: 你可以这样做: 正则表达式使用反向引用和捕获组。 正常的正则表达式是,但是您必须在Java中使用另一个反斜杠来使反斜杠转义。 如果您想要重复的字符数: 演示版

  • 我需要编写一个静态方法,该方法将作为参数,并返回一个新的。例如,如果我将“Maaaakkee”作为输入,它将返回“make”。我已经尝试了下面的代码,但它似乎没有显示最后一个字符。下面是我的代码: