【发布时间】:2019-07-25 08:15:02
【问题描述】:
我正在读取由硬件设备发送的数据帧,该数据帧用字符'\r' 分隔帧的每个字段。在 python 2 中打印框架时,我发现了 print 和 print() 之间的差异以及消失字符的一些问题。
print() 和 print 之间的一些区别可以在以下位置找到:
What is the difference between print and print() in python 2.7
但这并不能解释我遇到的问题。
例如在执行时
>>>frame = 'word_1#\rword_2\r'
>>>print(frame)
word_2#
>>>print frame
word_2#
它们都是一样的,但我不明白为什么'#'被移到'word_2'的末尾以及为什么'word_1'消失了。
另外,print 和 print() 显示不同的结果:
>>>frame = 'word_1#\rword_2\r'
>>>print('data:', frame)
('data', 'word_1#\rword_2\r')
>>>print 'data:', frame
word_2word_1#
这里print() 似乎按预期工作,但print 删除了'data' 单词并更改了单词的顺序。
最后,这个案子也让人迷惑:
>>> frame = 'word_1\r#word2\r#'
>>> print(frame)
#word2
>>> print frame
#word2
>>> print('data', frame)
('data', 'word_1\r#word2\r#')
>>> print 'data', frame
#word2ord_1
其中print()、print 和print('data', frame) 的工作方式似乎与之前的情况相同,但print 'data', frame 在更改顺序后从word_1 中删除了初始'w'。
这里发生了什么?
【问题讨论】:
标签: python python-2.7 printing