Python 3.x makes a clear distinction between the types:
str = '...' literals = a sequence of Unicode characters (Latin-1, UCS-2 or
UCS-4, depending on the widest character in the string)
bytes = b'...' literals = a sequence of octets (integers between 0 and 255)
#If you're familiar with:
#Java or C#, think of str as String and bytes as byte[];
#SQL, think of str as NVARCHAR and bytes as BINARY or BLOB;
#Windows registry, think of str as REG_SZ and bytes as REG_BINARY.