chars [' '' '' '' '' '' '' 'chars append('!''join(chars'lorreta!convert to characters list to stringempty delimiter these calls turn out to be surprisingly powerful for examplea line of data columns separated by tabs can be parsed into its columns with single split callthe more py script uses the splitlines variant shown earlier to split string into list of line strings in factwe can emulate the replace call we saw earlier in this section with split/join combinationmystr 'xxaaxxaa'spamjoin(mystr split('aa')'xxspamxxspamstr replacethe hard wayfor future referencealso keep in mind that python doesn' automatically convert strings to numbersor vice versaif you want to use one as you would use the otheryou must say so with manual conversionsint(" ")eval(" "( string to int conversions str( )repr( (' '' 'int to string conversions ("% )'{: }format( (' '' 'via formatting expressionmethod " str( )int(" " (' ' concatenationaddition in the last command herethe first expression triggers string concatenation (since both sides are strings)and the second invokes integer addition (because both objects are numberspython doesn' assume you meant one or the other and convert automaticallyas rule of thumbpython tries to avoid magic--and the temptation to guess-whenever possible string tools will be covered in more detail later in this book (in factthey get full in part )but be sure to also see the library manual for additional string method tools other string concepts in python xunicode and bytes technically speakingthe python string story is bit richer than 've implied here what 've shown so far is the str object type-- sequence of characters (technicallyunicode "code pointsrepresented as unicode "code units"which represents both ascii and wider unicode textand handles encoding and decoding both manually on request and automatically on file transfers strings are coded in quotes ( 'abc')along with various syntax for coding non-ascii text ( '\xc \xe ''\ \ ' system tools