Harvard:Biophysics 101/2007/Notebook:Keller Rinaudo/2007-2-8
From OpenWetWare
Jump to navigationJump to search
The Script
#!/usr/bin/env python # Create an empty list to store the strings import random List = [] s = [] All_Strings = [] # Generate 10,000 strings using a for loop and add those to the list print "Generating Strings..." for i in range(10000): s = ''.join([random.choice('HT') for n in range(10)]) List.append(s) print '='*70 # Iterate through the list and count up the stretches of H's and T's tally = [0 for i in range(10)] variables = ['H','T'] print "Counting repeat stretches of H and T..." for j in variables: for i in range (10): substr = ''.join([j for n in range(i+1)]) for k in range (10000): All_Strings = List[k] count = 0 pos = All_Strings.find(substr,0) while not pos == -1: count = count + 1 pos = All_Strings.find(substr,pos+1) tally[i] = tally[i] + count #We must then print i and the number of times that i occurs (tally[i]) for i in range(len(tally)): print "%2d: %6d" % (i+1, tally[i]) print '='*70 print "Calculation Complete"
Output
>>> Generating Strings... ====================================================================== Counting repeat stretches of H and T... 1: 100000 2: 44902 3: 19947 4: 8716 5: 3745 6: 1554 7: 604 8: 212 9: 61 10: 15 ====================================================================== Calculation Complete >>>