python ' 'xxxand 'xxxunicode string literal forms were removed in python because they were deemed redundant--normal strings are unicode in to aid both forward and backward compatibilitythoughthey are available again as of where they are treated as normal str stringsc:\codec:\python \python 'spamtype(uu 'spamu[ 'slist( [' '' '' '' ' unicode literal accepted in it is just strbut is backward compatible these literals are gone in through where you must use 'xxxinstead you should generally use 'xxxtext literals in new -only codebecause the form is superfluous howeverin and laterusing the literal form can ease the task of porting codeand boost code compatibility (for case in pointsee ' currency exampledescribed in an upcoming noteregardless of how text strings are coded in xthoughthey are all unicodeeven if they contain only ascii characters (more on writing non-ascii unicode text in the section "coding non-ascii texton page python string literals all three of the string forms of the prior section can be coded in xbut their meaning differs as mentioned earlierin python and the 'xxxbytes literal is present for forward compatibility with xbut is the same as 'xxxand makes str (the is ignored)and bytes is just synonym for stras you've seenin both of these address the distinct bytes typec:\codec:\python \python 'spams 'eggs bytes literal is just str in str is bytes/character sequence type( )type( (bs ('spam''eggs' [ ] [ (' '' 'list( )list( ([' '' '' '' '][' '' '' '' ']in the special unicode literal and type accommodates richer forms of textu 'spamtype( unicode and byte strings unicode literal makes distinct type works in toobut is just str there