| | |
Experimenting with Strings (Python)
Please support our Python advertiser: Programming Forums - DaniWeb Sister Site
There are some pretty fancy things you can do with strings in Python. You can append, convert, justify, join, split, slice, and list selected files of a folder. I just give you a small sample here.
# a look at strings and methods # tested with Python23 vegaseat 23jan2005 print "Fill an empty string:" empty_string = "" for k in range(65, 91): empty_string += chr(k) print empty_string print "\nOriginal string (California humor):" s = "She has 8 body piercings and none are visible" print s print "\nSeparate string at any whitespace to a list of words:" sL = [] sL = s.split() print sL print "\nShow item 4 on the list (lists are zero based):" print sL[4] # iterate through the list and also show item numbers print "\nIterate (walk) through the list:" for k in range (len(sL)): print k, sL[k] # print words and length print "\nAgain this time show words and ( length ):" for word in sL: print word, " (", len(word), ")" # append one more word print "\nAdd one more word to the end:" sL.append("yet!") print sL print "\nJoin the list of words to form a string again:" # single space = " " as a delimiter print " ".join(sL) + '\n' # a string can be enclosed in " or ' so if you want to # use " as part of the string, enclose it with ' s2 = '"How to Serve Your Fellow Man"' s3 = "Cannibal's recipe book:" # left justify string s3 and pad with 2 spaces past its length # then concatenate ( use + ) with string s2 print "Concatenate two strings, leftjustify and pad first string:" print s3.ljust(len(s3) + 2) + s2 + '\n' s4 = "hippopotamus" print "full string = ", s4 print "spell/space it:" for char in s4: print char, print "count the characters:" # create an empty dictionary charCount = {} for char in s4: charCount[char] = charCount.get(char, 0) + 1 print charCount print "full string = ", s4 print "first char = ", s4[0] print "last char = ", s4[-1] """ now for something completely different, slicing ... [starting-at-index : but-less-than-index [ : step]] start defaults to 0, end to len(sequence), step to 1 """ print "first 2 char = ", s4[0:2] print "next 2 char = ", s4[2:4] print "last 2 char = ", s4[-2:] print "exclude first 3 char = ", s4[3: ] print "exclude last 4 char = ", s4[:-4] print "reverse the string = ", s4[::-1] print "the whole word again = ", s4 # [start:end:step] print "spell skipping 2 char = ", s4[::2] print "concatenate 3 strings = ", s4 + s4 + s4 # same result print "simply multiply by 3 = ", s4 * 3 # prints 50 dashes print '-' * 50 print "Convert an integer or float to a string with repr() or str():" num1 = 3.14 print "num1 =", num1 print "repr(num1) = %s" % repr(num1) print "str(num1) = %s" % str(num1) str1 = str(num1) print "Convert numeric string back to an integer or float with eval():" num2 = eval(str1) print "eval(str1) =", eval(str1) print "type(eval(str1)) =", type(eval(str1)) print "If you know the type, you can use int(str1) or float(str1)" print "An added bonus, function int() has a base option:" print "binary to decimal int('1111', 2) =", int('1111', 2) print "hexadecimal to decimal int('FF', 16) =", int('FF', 16) print "One more bonus, eval() can evaluate a math expression string:" print "eval('3 * 4 + 2') =", eval('3 * 4 + 2') print "Comparing strings:" print "cmp('mouse', 'mouse') = ", cmp('mouse', 'mouse') print "cmp('mouse', 'louse') = ", cmp('mouse', 'louse') print "cmp('louse', 'mouse') = ", cmp('louse', 'mouse') # make your own words, a little character fun ... str1 = 'Aack' # 'Auck' might be a temptation print "Replace A in %s with other letters:" % str1 # go from B to Z for b in range(66, 91): ch = chr(b) if ch == 'Q': # special case Q, use Qu ch = ch + 'u' print str1.replace('A', ch) # how to create a multiline string ... print "This is a multiline string:" mlStr = """Noses are running. Feet are smelling. Park on driveway. Drive on parkway. Recite at a play. Play at a recital. """ print mlStr print "Show the line that starts with Park:" # find Park index/position pos1 = mlStr.find("Park") # find index of the end of that line pos2 = mlStr.find("\n", pos1) # slice the line from the string line = mlStr[pos1:pos2] print line # if you just want to see if a substring is there ... subStr = 'smell' if subStr in mlStr: print "Found substring '%s'" % subStr print "There are", mlStr.count('a'), "'a' in the multiline string." print "They are at index:" index = mlStr.find('a') # find first print index while index != -1: # look for more index = mlStr.find('a', index + 1) if index > 0: print index print "Extract a substring located between two given substrings, here the quotes:" def extract(text, sub1, sub2): """extract a substring between two substrings sub1 and sub2 in text""" return text.split(sub1)[-1].split(sub2)[0] str3 = 'I bought the "Python Cookbook" and could not find one single recipe about cooking the slithery beast!' # notice that here beginning and trailing spaces can be included with the quotes str4 = extract(str3, ' "', '" ') print str3 print str4 print "Line continuation (\) can also be used for long or multiline strings:" # combining three strings to one string # (ignores whitespace between strings) # (do not add a space right behind the \) str1 = "The alien wheezes, 'Darn, this is it. I will die now! \n"\ "Tell my 2.4 million larvae that I esteem them ... \n"\ "Good-bye, truculent universe.'" print str1 # file names are strings, so let's find them # find all the .py files in the working folder (path = '') import os # module needed for listdir() print "Add all the python files in the working folder to a list:" path = '' ext = '.py' filelist = [] for filename in os.listdir(path): if filename.endswith(ext): filelist.append(filename) # show the list print filelist print "\nPrint the file list one item on a line:" # new line as delimiter print "\n".join(filelist) # a function can have a documentation string def formatDollar(amount): "formatDollar(amount) returns a string with the amount formatted to $ currency" return "$%.2f" % amount print "The function's documentation string:" print formatDollar.__doc__ print "For example", 123.9 * 0.0725,"formatted to", formatDollar(123.9 * 0.0725)
Similar Threads
- Chinese Strings in Python (Python)
- need help with spaces within strings in python (Python)
- Experimenting with Boo (Legacy and Other Languages)
- Google Experimenting with Scholar on Homepage (Search Engine Optimization)
- Code Snippet: Experimenting with the STL list (C++)
| Thread Tools | Search this Thread |
Tag cloud for Python
advanced anydbm app bash beginner bits calling chmod cmd code data dictionary directory dynamic edit examples excel external feet file float format ftp function gui homework http i/o images import info input ip itunes java keycontrol line linux list lists loan loop maintain millimeter mouse newb number numbers output panel parsing path port prime print program programming projects push py-mailer py2exe pygame pyqt python queue random rational recursion recursive scrolledtext smtp split ssh string strings sudokusolver table terminal text thread threading time tkinter tlapse tuple tutorial ubuntu unicode update urllib urllib2 variable variables ventrilo web webservice whileloop windows wxpython xlib



