Nambari, ambazo hazibadiliki (zisizobadilika) vitu vya mlolongo kwenye Python.
Uangalifu lazima uchukuliwe wakati wa kutengeneza nakala kwa kipengele kimoja au nakala tupu.
Maelezo yafuatayo yanaelezwa hapa.
- Tuple yenye kipengele 1
- Mabano ya pande zote mbili yanaweza kuachwa.
- Tuple tupu
- Nambari katika hoja za utendakazi
Tuple yenye kipengele 1
Ikiwa unajaribu kuzalisha tuple na kipengele kimoja na kuandika kitu kimoja tu ndani ya mabano ya pande zote (), mabano ya pande zote () yatapuuzwa na kusindika na hayazingatiwi tuple.
single_tuple_error = (0)
print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>
Koma inayofuata inahitajika ili kutengeneza tuple yenye kipengele kimoja.
single_tuple = (0, )
print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>
Kwa mfano, unapotumia opereta + kubatilisha nakala nyingi, kumbuka kuwa ukijaribu kuongeza kipengee kimoja na kusahau koma, utapata hitilafu.
# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple
print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)
Mabano ya pande zote mbili yanaweza kuachwa.
Sababu kwa nini nakala iliyo na kipengele kimoja inahitaji koma ni kwa sababu tuple si thamani iliyoambatanishwa katika mabano ya duara () bali ni thamani iliyotenganishwa na koma.
Ni koma inayounda tuple, sio mabano ya pande zote.
Tuples — Built-in Types — Python 3.10.4 Documentation
Hata kama mabano ya pande zote () yameachwa, inachakatwa kama nakala.
t = 0, 1, 2
print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>
Kumbuka kuwa koma isiyo ya lazima baada ya kitu inachukuliwa kuwa tuple.
t_ = 0,
print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>
Tuple tupu
Kama ilivyoelezwa hapo juu, mabano ya pande zote () yanaweza kuachwa wakati wa kuwakilisha tuple, lakini inahitajika wakati wa kuzalisha tuple tupu.
Nafasi au koma pekee itasababisha SyntaxError.
empty_tuple = ()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
# empty_tuple_error =
# SyntaxError: invalid syntax
# empty_tuple_error = ,
# SyntaxError: invalid syntax
# empty_tuple_error = (,)
# SyntaxError: invalid syntax
Nakala tupu pia zinaweza kuzalishwa na tuple() bila hoja.
empty_tuple = tuple()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
Nambari katika hoja za utendakazi
Mabano ya pande zote mbili () yanahitajika hata wakati kuna utata wa kisintaksia.
Hoja za kazi zinatenganishwa na koma, lakini katika kesi hii, ni muhimu kuonyesha kwa uwazi ikiwa kazi ni tuple au la kwa kuwepo au kutokuwepo kwa mabano ya pande zote ().
Bila mabano (), kila thamani hupitishwa kwa kila hoja; yenye mabano (), kila thamani hupitishwa kama nakala kwa hoja moja.
def example(a, b):
print(a, type(a))
print(b, type(b))
example(0, 1)
# 0 <class 'int'>
# 1 <class 'int'>
# example((0, 1))
# TypeError: example() missing 1 required positional argument: 'b'
example((0, 1), 2)
# (0, 1) <class 'tuple'>
# 2 <class 'int'>
Ikiwa nakala imetiwa alama ya nyota *, vipengele vya tuple vinaweza kupanuliwa na kupitishwa kama hoja.
example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>
Kwa habari zaidi, ona makala ifuatayo.