In [1]:
single_tuple_error = (0)

In [2]:
print(single_tuple_error)
print(type(single_tuple_error))


0
<class 'int'>

In [3]:
single_tuple = (0, )

In [4]:
print(single_tuple)
print(type(single_tuple))


(0,)
<class 'tuple'>

In [5]:
# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple

In [6]:
print((0, 1, 2) + (3, ))


(0, 1, 2, 3)

In [7]:
t = 0, 1, 2

In [8]:
print(t)
print(type(t))


(0, 1, 2)
<class 'tuple'>

In [9]:
t_ = 0,

In [10]:
print(t_)
print(type(t_))


(0,)
<class 'tuple'>

In [11]:
empty_tuple = ()

In [12]:
print(empty_tuple)
print(type(empty_tuple))


()
<class 'tuple'>

In [13]:
# empty_tuple_error = 
# SyntaxError: invalid syntax

In [14]:
# empty_tuple_error = ,
# SyntaxError: invalid syntax

In [15]:
# empty_tuple_error = (,)
# SyntaxError: invalid syntax

In [16]:
empty_tuple = tuple()

In [17]:
print(empty_tuple)
print(type(empty_tuple))


()
<class 'tuple'>

In [18]:
def example(a, b):
    print(a, type(a))
    print(b, type(b))

In [19]:
example(0, 1)


0 <class 'int'>
1 <class 'int'>

In [20]:
# example((0, 1))
# TypeError: example() missing 1 required positional argument: 'b'

In [21]:
example((0, 1), 2)


(0, 1) <class 'tuple'>
2 <class 'int'>

In [22]:
example(*(0, 1))


0 <class 'int'>
1 <class 'int'>