When you press CTRL + C, Python interprets it as a Substitute Character. This character is used by Python to denote the end of file. Python represents the substitute character by using ^Z because in many environments CTRL + Shift + Z can be used to send this character.
However, when you paste ^Z into python and hit Enter, it does not exit. This is because when python reads ^Z it gets three bytes, 0x5e 0x5a 0x0a, which represent ^, Z and New Line respectively. When you press CTRL + Shift + Z, Python gets only one byte, 0x1a, which represents the substitute character. Since the values are not the same, Python does not interpret them as the same.
The same result occurs with CTRL + C because this signals python to close. The way Python closes itself is by sending itself the substitute character, which is why you see ^Z on the command line.