On 2016-04-11 01:13, Fillmore wrote:

Sorry guys. It was not my intention to piss off anyone...just trying to 
understand how the languare works

I guess that the answer to my question is: there is no such thing as a 
one-element tuple,
and Python will automatically convert a one-element tuple to a string... hence 
the
behavior I observed is explained...

  >>> a = ('hello','bonjour')
  >>> b = ('hello')
  >>> b
'hello'
  >>> a
('hello', 'bonjour')
  >>>


Did I get this right this time?

Nope. :-)

A one-element tuple can be written as:

>>> ('hello',)
('hello',)

As has been said already, it's the comma that makes the tuple. The parentheses are often needed to avoid ambiguity.

For example, object are passed into a function thus:

    f(x, y)

(In reality, it's making a tuple and then passing that in.)

What if you want to pass in the tuple (1, 2) as a single argument?

    f((1, 2))

If you write this:

    f(1, 2)

it passes them in as 2 separate arguments.

Or consider this:

   f((1, 2), 3)

This has 2 arguments: the first is the tuple (1, 2) and the second is the int 3.

There _is_ one exception though: (). It's the empty tuple (a 0-element tuple). It doesn't have a comma and the parentheses are mandatory. There's no other way to write it.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to