[Tutor] Character Buffer Object Error

Christian Witts cwitts at compuscan.co.za
Wed Feb 8 07:38:13 CET 2012


On 2012/02/08 07: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.
>
> I've tried the following code, but I am getting the following error. 
> How do I do this properly?
>
> def AlterInput(user_input):
>     print user_input
>     new_output = ''
>     for index, char in enumerate(user_input):
>         if char.isdigit():
>             new_char = int(char)
>             new_char += 1
>             new_output = ' '.join(user_input)
>             new_output.replace(char, new_char)
>     print new_output
>
> def GetUserInput():
>     '''Get a string from the user and pass it'''
>     user_input = '''I got 432 when I counted, but Jim got 433 which
> is a lot for only 6 cats, or were there 12 cats?'''
>     AlterInput(user_input.split())
>
>
> Traceback (most recent call last):
>   File "C:/Python27/Homework/Homework 4_1.py", line 25, in <module>
>     GetUserInput()
>   File "C:/Python27/Homework/Homework 4_1.py", line 23, in GetUserInput
>     AlterInput(user_input.split())
>   File "C:/Python27/Homework/Homework 4_1.py", line 15, in AlterInput
>     new_output.replace(char, new_char)
> TypeError: expected a character buffer object
>
> Thanks.
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
new_char is of type int and not type str, so cast it back to a string 
before using it in your call to .replace as it expects both arguments to 
be strings.
-- 

Christian Witts
Python Developer
//
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20120208/9cba1fe3/attachment.html>


More information about the Tutor mailing list