> > > def find(strng, ch, start, step=1): > > > index = start > > The problem lies here, if you do a print on index, it never gets past > > the first index of the number, so > > your while loop below goes into an infinite loop. > > > > For example: > > find('starfruit','t',0) <- First time will return 1 > > find('starfruit','t',1) <- Still returns 1. Infinite loop > > > > > while 0 <= index < len(strng): > > > if strng[index] == ch: > > > return index > > > index += step > > > return -1 > > > > > > fruit="" > > > letter="" > > > fruit= raw_input("Enter a sort of fruit: ") > > > letter = raw_input("Enter the character which must be counted: ") > > > start=0 > > > aantal=0 > > > while 0 <=start < len(fruit): > > > x=find (fruit,letter, start) > > > aantal +=1 > > > start=x > > > print "De letter", letter , "komt", aantal , "maal voor in het woord", > > > fruit > > > > > > > HTH, > > Tino > > Hello, > > Your right. index get never past 1 > But in my opinion when something is found then x will be the place where the > character is be found. > After that the counter is increased and start gets the value of x. > So start should change. > > Now finding out why this is not happening.
You're including the previous found index; so it will just find the character at that same index again. You need to start the next search one index further down the word. > > But thanks for the help. > > Roelof > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor