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 >>>