I am reading a data frame sent by a hardware device that separates each field of the frame with the character `'\r'`. When printing the frame in python 2, I have found differences between `print` and `print()` and some problems with disappearing characters.

Some differences between `print()` and `print` can be found in: 
[What is the difference between print and print() in python 2.7](https://stackoverflow.com/questions/33996749/what-is-the-difference-between-print-and-print-in-python-2-7) 
but that not explains the problems that I'm having.

For example, when executing

```
>>>frame = 'word_1#\rword_2\r'
>>>print(frame)
word_2#
>>>print frame
word_2#

```

They are both the same, but I don't understand why the '#' is moved to the end of 'word\_2' and why 'word\_1' disappears.

Also, `print` and `print()` show different results in:

```
>>>frame = 'word_1#\rword_2\r'
>>>print('data:', frame)
('data', 'word_1#\rword_2\r')  
>>>print 'data:', frame
word_2word_1#

```

Here `print()` seems to work as expected, but `print` has removed `'data'` word and has changed the order of the words.

Finally, it is also confusing this case:

```
>>> 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

```

where `print()`, `print` and `print('data', frame)` seems to work the same way that they did in the previous cases but `print 'data', frame` has removed the initial `'w'` from `word_1` after changing the order.

What's happening here?