新电脑环境,python关于转义字符的报错

img

在编写一道题目的exp时候,因为是新机子,似乎出现了一些问题。python对于\x00这种转义字符报错?这是什么原因呢?

害,原来是前面hex(),把int转成str了,虽然报错在这句,但是这句没有问题。qaq

  • 建议你看下这篇博客👉 :python学习之exp整合
  • 除此之外, 这篇博客: 太强了,Python 开发桌面小工具,让代码替我们干重复的工作中的 五、解决 exe 文件可能过大问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
    有的伙伴 Python 环境刚安装没多久,可能不存在这个文件过大的问题。像我的电脑里安装了 Python 很多的依赖包和 anaconda 等等,打包出来的文件居然 660M,打包时间长,执行时还卡,后来经过整改缩小到 31M,打包快,秒级执行。解决方案是在 Windows 系统下安装一个 Python 的虚拟环境,前提是已经在电脑上安装过 Python 才可以进行如下操作。

    在这里插入图片描述
    找到 Python 所在路径,如果忘记了,可以在电脑左下角搜索【编辑系统环境变量】——【用户变量】——【PATH】中找到

    在这里插入图片描述
    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    这个问题是由于Python中一些字符具有特殊含义,需要转义才能正确表示它们本身的值,而当输入单个反斜杠时,Python会将其解释为转义字符的起始符号,从而导致转义字符无法正确表示,进而报错。这并非与Python版本或编码有关。

    解决方案是在字符前面再添加一个反斜杠,即使用"\x00"代替"\x00"。这样Python会将第一个反斜杠解释为转义符号,将第二个反斜杠解释为表示反斜杠本身的字符,从而正确表示转义字符。

    例如,可以使用如下代码进行测试:

    s = "\\x00"
    print(s.encode("latin-1"))
    

    输出结果为b'\x00',即成功转义为0x00的字节。

    如果需要将这个转义字符插入到字符串中,则也需要进行类似的转义处理,例如:

    s = "hello\\x00world"
    print(s.encode("latin-1"))
    

    输出结果为b'hello\x00world',即成功将转义字符插入到字符串中。

x是16进制,x00就是0啊,它在c语言里是字符串结束符
python里没有结束符