On Wed, Jul 20, 2011 at 2:54 PM, Ken Baclig <kbac...@yahoo.com> wrote:

> Hi,
>
> I'm trying to make a function that receives text (a string) as an argument
> and returns the same text (as string), but with 1 added to each word that is
> a number.
>
> I need help getting started.
>
> So far, I have:
>
> def FindNumbers(a_string):
>
>     for index, char in enumerate(a_string):
>         if char.isdigit():
> a_string[index] =
>
>
> def Test():
>
>     sometext = "I got 432 when I counted, but Jim got 433 which is a lot
> foronly 6 cats, or were there 12 cats?"
>
>     FindNumbers(sometext)
>
> Test()
>

First of all, don't enumerate() the string; split() it instead - this will
give you a list of words instead of characters.
Then, look at each item in that list; check to see whether it's numeric -
isdigit() works for this.
If it _is_ numeric, convert it to an int, add one to it, and turn it back
into a string.
Join the list back into a string, and you're done.

Note: you can step through the items in a list by saying (for example) "for
word in words:" - but if you do it that way you can't modify any of the
items.  If you need to modify them - by adding 1, for example - you need to
refer to them by index instead, and the quickest way to do that is "for x in
range(len(words)):  print words[x]".

That was a bunch of broad hints - if you need help putting them together,
feel free to ask.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to