Let's start with a lie: Python tuples are created using parentheses, like this:
MAGENTA = (255, 0, 255)
Wait, what??! In Python, tuples are not created with parentheses?
The truth is that tuples are created with commas AND do not require parentheses. You can create a tuple like this:
MAGENTA = 255, 0, 255 #Avoid this
But just because you can doesn't mean you should. It's a better idea to get used to including the parentheses, because sometimes you do need them.
The best way to understand why you should get in the habit of using parentheses when creating tuples is to look at some Python code:
def show_type(obj): print(type(obj)) #tuple created w/o parentheses (works but bad practice) MAGENTA = 255, 0, 255 show_type(MAGENTA) #When passing a tuple to a function, you need parentheses: show_type( (255, 0, 255) ) #Passing the tuple w/o parentheses to a function will error show_type( 255, 0, 255 )
The above code will render the following:
MAGENTAtuple is created without using parentheses.
show_type()function, we see that
MAGENTAis indeed a tuple.
(255, 0, 255)(constructed with parentheses) is passed to the
show_type()function. This works fine.
255, 0, 255(constructed without parentheses) is passed to the
show_type()function. In this case, Python passes the values to the
show_type()function as three separate arguments. As the function only expects one argument, this results in an error:
TypeError: show_type() takes 1 positional argument but 3 were given.
To create an empty tuple, use an empty set of parentheses:
veggies_my_son_likes = ()
To create a single-element tuple, follow the element with a comma, like this:
pitchers_with_500_wins = ('Cy Young',)
If you do not include the comma, you just get a string as illustrated below:
So, in a nutshell, tuples are created with commas, but you should wrap them in parentheses.
Nat Dunn founded Webucator in 2003 to combine his passion for technical training with his business expertise and to help companies benefit from both. His previous experience was in sales, business and technical training, and management. Nat has an MBA from Harvard Business School and a BA in International Relations from Pomona College.