On 2/8/2012 12:56 AM, Michael Lewis wrote:
I want to find all digits in a string and then increment those digits by 1 and then return the same string with the incremented digits.
[snip]

You got lots of good advice from others and some not-so-good advice.

Michael said:
2. The following line appears wrong.
             new_output = ' '.join(user_input)
He did not say why!


I add:

Master the art of "Desk Checking".

Take pencil & paper.

Write down the input and output of each statement as though you were the computer.


Also learn to read the & understand the Python Manuals:

str.replace(old, new[, count])
Return a copy of the string with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.

Notice "return a copy". It does NOT say that this will convert old in place.

No one else caught this problem!

Since this is homework we we probably should not be offering alternative solutions.

However I can't resist offering the one-line solution:

''.join(str(int(x)+1) if x.isdigit() else x for x in 'user_input)

--
Bob Gailer
919-636-4239
Chapel Hill NC

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to