Di Python de pirtik û navnîşan pak bikin (berfireh bikin û ji gelek guherbaran re veqetînin).

Dikan

Di Python de, hêmanên pirjimarek an navnîşek dikare were berfireh kirin û ji gelek guhêrbaran re were destnîşankirin. Ji vê re vekirina rêzê an peywira nepakkirî tê gotin.

Agahiyên jêrîn li vir têne diyar kirin.

  • Vekirina bingehên tîp û navnîşan
  • Kulîlkên hêlînkirî, navnîşên nepakkirî
  • Vekirina bi Underscores:_
  • Vekirina bi stêrkan:*

Ji bo agahdariya li ser karanîna stêrkan ji bo berfirehkirin û derbaskirina tîpan, navnîşan û ferhengan wekî argumanên fonksiyonê li gotara jêrîn binêrin.

Vekirina bingehên tîp û navnîşan

Dema ku guhêrbar li milê çepê têne nivîsandin, bi kommasan têne veqetandin, ji her guhêrbar re hêmanek ji tîpê an navnîşê li milê rastê tê destnîşankirin. Hem ji bo tîpan û hem jî ji bo navnîşan yek e (mînakên jêrîn bi forma pirjimar têne nivîsandin).

t = (0, 1, 2)

a, b, c = t

print(a)
print(b)
print(c)
# 0
# 1
# 2

l = [0, 1, 2]

a, b, c = l

print(a)
print(b)
print(c)
# 0
# 1
# 2

Bala xwe bidinê ku ji ber ku tuples dikarin kelûpelên dor derxin, ev dikare were bikar anîn da ku li ser yek rêzek yekane çend nirxan bide çend guhêrbaran wekî jêrîn.

a, b = 0, 1

print(a)
print(b)
# 0
# 1

Ger hejmara guherbaran bi hejmara hêmanan re nebe, xeletiyek çêdibe.

# a, b = t
# ValueError: too many values to unpack (expected 2)

# a, b, c, d = t
# ValueError: not enough values to unpack (expected 4, got 3)

Ger hejmara guhêrbaran ji hejmara hêmanan kêmtir be, hêmanên mayî dikarin bi pêvekirina stêrkekê li navê guhêrbar wekî lîsteyek bêne destnîşan kirin (li jêr binêre).

Kulîlkên hêlînkirî, navnîşên nepakkirî

Tîp û navnîşên hêlînkirî jî dikarin bên pakkirin. Heke hûn dixwazin naverokê jî vekin, guhêrbar di yek ji jêrîn de veşêrin

  • ()
  • []
t = (0, 1, (2, 3, 4))

a, b, c = t

print(a)
print(b)
print(c)
# 0
# 1
# (2, 3, 4)

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

a, b, (c, d, e) = t

print(a)
print(b)
print(c)
print(d)
print(e)
# 0
# 1
# 2
# 3
# 4

Bi _binavkirî_ venebû.

Di Python de, ne tenê nepakkirî, nirxên ku ne hewce ne bi kevneşopî li binê (binavkirî) _ têne destnîşan kirin. Wateya rêzimanî ya taybetî tune; ew bi tenê li guhêrbarek bi navê _ têne destnîşan kirin.

t = (0, 1, 2)

a, b, _ = t

print(a)
print(b)
print(_)
# 0
# 1
# 2

Vekirina bi stêrkan

Ger hejmara guherbaran ji hejmara hêmanan kêmtir be, stêrkek di navê guhêrbar de dê bibe sedem ku hêman wekî lîsteyek bi hev re werin destnîşankirin.

Ev hevoksazî ji Python 3-ê ve hatî bicîh kirin û di Python 2 de peyda nabe.

Hêman ji serî û dawiyê ji guhêrbarên bê stêrk re, û hêmanên mayî jî wekî lîsteyek ji guhêrbarên bi stêrk re têne destnîşan kirin.

t = (0, 1, 2, 3, 4)

a, b, *c = t

print(a)
print(b)
print(c)
# 0
# 1
# [2, 3, 4]

print(type(c))
# <class 'list'>

a, *b, c = t

print(a)
print(b)
print(c)
# 0
# [1, 2, 3]
# 4

*a, b, c = t

print(a)
print(b)
print(c)
# [0, 1, 2]
# 3
# 4

Mînakî, heke hûn dixwazin tenê du hêmanên pêşîn ên pirjimarek an navnîşek bi guhêrbarek veqetînin, dibe ku hûn ji bo beşên ku ne hewce ne binxala jorîn bikar bînin.

a, b, *_ = t

print(a)
print(b)
print(_)
# 0
# 1
# [2, 3, 4]

Heman tişt jî wiha dikare were nivîsandin

a, b = t[0], t[1]

print(a)
print(b)
# 0
# 1

Tenê stêrkek dikare were girêdan. Ger gelek guherbarên bi stêrkê hatine nîşankirin hebin, dê xeletiyek SyntaxError derkeve ji ber ku ne gengaz e ku meriv diyar bike ka çend hêman ji her guhêrbar re hatine veqetandin.

# *a, b, *c = t
# SyntaxError: two starred expressions in assignment

Bala xwe bidinê ku tewra yek elementek ku ji guhêrbarek bi stêrkê ve hatî destnîşan kirin jî wekî navnîşek tête destnîşan kirin.

t = (0, 1, 2)

a, b, *c = t

print(a)
print(b)
print(c)
# 0
# 1
# [2]

print(type(c))
# <class 'list'>

Ger hêmanên zêde tune bin, navnîşek vala tê destnîşankirin.

a, b, c, *d = t

print(a)
print(b)
print(c)
print(d)
# 0
# 1
# 2
# []
Copied title and URL