'string.join' is wrong in my Python console

MRAB python at mrabarnett.plus.com
Thu Dec 3 11:24:07 EST 2015


On 2015-12-03 16:00, Robin Koch wrote:
> Am 03.12.2015 um 10:02 schrieb Gary Herron:
>> On 12/02/2015 10:55 PM, Robert wrote:
>>> Hi,
>>>
>>> I read the tutorial on "Why is join() a string method instead of a list
>>>   or tuple method?"
>>> at link:
>>> https://docs.python.org/2/faq/design.html#why-must-self-be-used-explicitly-in-method-definitions-and-calls
>>>
>>>
>>> I have a problem on running the last line:
>>> ---------------
>>> If none of these arguments persuade you, then for the moment you can
>>>   continue to use the join() function from the string module, which
>>> allows
>>>   you to write
>>>
>>> string.join(['1', '2', '4', '8', '16'], ", ")
>>> -----------------------
>>>
>>> My Python console is 2.7. It should be no problem because I see the
>>> tutorial
>>> is 2.7 too.
>>>
>>> The console has these display:
>>>
>>> string.join(['1', '2', '4', '8', '16'], ", ")
>>> ---------------------------------------------------------------------------
>>>
>>> NameError                                 Traceback (most recent call
>>> last)
>>> <ipython-input-15-3947890a7e6e> in <module>()
>>> ----> 1 string.join(['1', '2', '4', '8', '16'], ", ")
>>>
>>> NameError: name 'string' is not defined
>>>
>>>
>>>  From the context, I don't see string should be replaced by something
>>> else.
>>>
>>> Could you tell me why I have such an error?
>>
>> You are trying to use the *string* module without importing it, I'd guess.
>>
>> Try:
>>      import string
>> first then you should be able to access string.join without error.
>
> Now *I* am confused.
>
> Shouldn't it be
>
> ", ".join(['1', '2', '4', '8', '16'])
>
> instead? Without any importing?
>
The documentation says: """The string module contains a number of
useful constants and classes, as well as some deprecated legacy
functions that are also available as methods on strings."""

The "join" function is one of those old functions you don't need any
more, and you're correct that the the "join" method should be used
instead.




More information about the Python-list mailing list