专栏首页python3【已解决】为什么Python打印数据显示

【已解决】为什么Python打印数据显示

这种情况出现在我的下位机向上位机传递数据后,上位机再打印数据的过程中。

举一个案例。

我的下位机是一个单片机,会通过串口向上位机发送一段数据。

这里随意写一个C下位机的程序

include "stm32f10x.h"
include "delay.h"

int main(void)
{
    print("112233test332211\n");
}

也随意写一个python上位机的程序

import serial

s = serial.Serial('com7', 9600, timeout=3) 
data = s.readline()
print(data)

很明显的可以看出来,下位机通过串口com7与上位机连接,波特率是9600,不过这是次要的

按理说,上位机读取一行数据后再把读取的数据答应下来,就应该是和下位机一样的数据

显示为

112233test332211

可是并不是这样的,在我的控制台里显示如下

b'112233test332211'

这是为什么呢???

------------------------------------

说白了 Python3的字符串的编码语言用的是unicode编码,由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节,如果要在网络上传输,或保存在磁盘上就需要把str变成以字节为单位的bytes

python对bytes类型的数据用带b前缀的单引号或双引号表示:

'ABC'
b'ABC'

要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显得和前者一样,但bytes的每个字符都只占用一个字节

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • django Highcharts制作图表--显示CPU使用率

    Highcharts 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表

    py3study
  • Django之admin管理工具

      若要把app应用显示在后台管理中,需要在admin.py中注册。有两种方式注册

    py3study
  • python里的map和reduce

    http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/map...

    py3study
  • 搭建sentry追踪laravel生产环境bug

    未上线的代码无论再测试,也不可能保证全无 bug ,很多 bug 一直隐藏在某个阴暗的角落,邪恶又猥琐地等着你将其部署上线,然后在某个条件的触发下,开始兴风作浪...

    章鱼喵
  • 高分选手讲解:如何突破思维圈限,从NLP角度挖掘新的解题思路

    稳居排行榜前三,成绩高达1.453292的他,究竟是位怎样的神级选手?今天,我们就邀请到这位实力强劲的神秘大咖,为大家揭晓他的上分思路。

    腾讯智能钛AI开发者
  • 如何使用python处理稀疏矩阵

    大多数机器学习从业者习惯于在将数据输入机器学习算法之前采用其数据集的矩阵表示形式。矩阵是一种理想的形式,通常用行表示数据集实例,用列表示要素。

    用户3578099
  • ICML新研究提出泛化能力评估新指标:直接上向量余弦距离就OK,还开源了相关代码

    一篇出自比利时天主教鲁汶大学的研究发表在了ICML 2019识别和理解深度学习现象Workshop上。

    量子位
  • 使用PaddlePaddle实现声纹识别

    本章介绍如何使用PaddlePaddle实现简单的声纹识别模型,首先你需要熟悉音频分类,没有了解的可以查看这篇文章《基于PaddlePaddle实现声音分类》

    夜雨飘零
  • C语言(调试绝活)

    像上述程序那样的话,将不得已要对很多临时调试性代码做注释,用的时候要去掉注释符,非常麻烦。

    用户2617681
  • composer 转

    (adsbygoogle = window.adsbygoogle || []).push({});

    双面人

扫码关注云+社区

领取腾讯云代金券