Tuples me një element të vetëm në Python kërkojnë një presje pasuese

biznes

Tuples, të cilët janë objekte të sekuencës së pandryshueshme (të pandryshueshme) në Python.

Duhet pasur kujdes kur krijohen tupa me një element të vetëm ose tuple bosh.

Detajet e mëposhtme përshkruhen këtu.

  • Tuple me 1 element
  • Kllapat e rrumbullakëta të dyfishta mund të anashkalohen.
  • Tufë bosh
  • Tuples në argumentet e funksionit

Tuple me 1 element

Nëse përpiqeni të gjeneroni një tufë me një element dhe shkruani vetëm një objekt brenda kllapave të rrumbullakëta (), kllapat e rrumbullakëta () do të shpërfillen dhe përpunohen dhe nuk do të konsiderohen tufë.

single_tuple_error = (0)

print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>

Kërkohet një presje pasuese për të krijuar një tuple me një element.

single_tuple = (0, )

print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>

Për shembull, kur përdorni operatorin + për të bashkuar shumë tupa, vini re se nëse përpiqeni të shtoni një element dhe harroni një presje, do të merrni një gabim.

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

print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)

Kllapat e rrumbullakëta të dyfishta mund të anashkalohen.

Arsyeja pse një tuple me një element ka nevojë për presje është sepse një tuple nuk është një vlerë e mbyllur në kllapa të rrumbullakëta () por një vlerë e ndarë me presje.

Është presja që krijon tufën, jo kllapat e rrumbullakëta.
Tuples — Built-in Types — Python 3.10.4 Documentation

Edhe nëse kllapat e rrumbullakëta () hiqen, ai përpunohet si një tufë.

t = 0, 1, 2

print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>

Vini re se një presje e panevojshme pas një objekti konsiderohet një tufë.

t_ = 0,

print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>

Tufë bosh

Siç u përmend më lart, kllapat e rrumbullakëta () mund të hiqen kur përfaqësojnë një tuple, por kërkohen kur gjenerohet një tuple bosh.

Vetëm një hapësirë ​​ose presje do të rezultojë në një gabim sintaksor.

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

Tuples bosh mund të gjenerohen gjithashtu nga tuple() pa argumente.

empty_tuple = tuple()

print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>

Tuples në argumentet e funksionit

Kllapat e rrumbullakëta () kërkohen edhe kur ka një paqartësi sintaksore.

Argumentet e funksionit ndahen me presje, por në këtë rast, është e nevojshme të tregohet në mënyrë eksplicite nëse funksioni është një tufë apo jo nga prania ose mungesa e kllapave të rrumbullakëta ().

Pa kllapa (), çdo vlerë i kalohet çdo argumenti; me kllapa (), secila vlerë kalohet si një tufë në një argument.

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'>

Nëse tupleja shënohet me një yll *, elementët e tuples mund të zgjerohen dhe kalohen si argumente.

example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>

Për më shumë informacion, shihni artikullin e mëposhtëm.

Copied title and URL