Kitanzi cha For katika Python kina sifa tofauti kuliko lugha zingine za programu. Ninakuachia kile ninachojifunza ili kufaidika zaidi na mojawapo ya vitanzi vinavyotumika zaidi.
Katika Python imekusudiwa kurudia kupitia kitu kinachoweza kutekelezeka, iwe orodha, kitu, au kitu kingine.
Muundo ufuatao ni
h2=[ 'Valencia', 'Castellón', 'Alicante'] for j in h2: instructions
Hapa h2 ni kipengele kinachoweza kutekelezeka kwa mfano orodha h2=[ 'Valencia', 'Castellón', 'Alicante']. Kitanzi kitakuwa na marudio 3, katika j=Valencia ya kwanza katika j=Castellón ya pili.
Na kwa hili tunaweza kufafanua maagizo tunayotaka, kukumbuka daima indentation, kitu muhimu katika Python na kwamba watu wengi hupuuza, kupata makosa katika kanuni.
Rudia kwa kitanzi idadi kamili ya nyakati.
Ikiwa tunataka irudie idadi fulani ya nyakati kama tunavyoweza kufanya katika C++ tutalazimika kutumia range(). Kurudia mara 10 tungetumia a
for element in Range(9): instructions
Tunaweka 9 na sio 10 kwa sababu Masafa huanza kutoka 0, kwa hivyo kutoka 0 hadi 9 kuna marudio 10 au zamu ya kitanzi.
Kujua Range() huturuhusu, badala ya kuweka nambari ndani, kuweka tofauti, ambayo tutakuwa na udhibiti zaidi.
var = 10 for element in Range(var): instructions
Kazi ya Range ina chaguo nyingi, nitazungumzia juu yake katika chapisho lingine, ili si kuchanganya maudhui na kuendeleza iwezekanavyo.
Mengi zaidi yanaweza kufanywa ili kudhibiti mtiririko wa kitanzi.
Vunja na Endelea Taarifa
Kuna vipengele 2 muhimu sana vinavyoturuhusu kufanya kitanzi kifanye kazi sana, kupiga mapumziko na kuendelea. Kawaida hutumiwa na masharti, ikiwa, kuangalia ikiwa kitu ni kweli.
Wanafanya kazi katika vitanzi vingine, na kuna taarifa nyingine ya kuvutia ambayo ni kupita, ambayo ni taarifa ambayo inatekelezwa lakini haifanyi chochote na ni bora kwa wakati tunataka kufafanua muundo unaohitaji amri lakini tunataka kuziweka baadaye (maoni ni sio muhimu kwa hili)
Kuvunja
Kwa mapumziko tunaweza kuondoka kwenye kitanzi wakati wowote. Kama unavyofikiria ni muhimu sana. Ni kweli kwamba kuna miundo mingine kama Wakati,
numeros = [1, 2, 4, 3, 5, 8, 6] for n in numeros: if n == 3: break else: print('No se encontró el número 3')
kuendelea
Inatufanya tuende kwa kipengele kinachofuata kwenye kitanzi.
numeros = [1, 2, 4, 3, 5, 8, 6] for n in numeros: if n == 3: continue else: print('No se encontró el número 3')
https://j2logo.com/bucle-for-en-python/
Kwa… kwingine
Kuna muundo unaotokana na Kwa, ambao ni kwa ...
datos = [1, 2, 3, 4, 5] for n in datos: if n == 2: break else: print('No hay 2')
Muundo huu uliibuka baada ya kuona kuwa ni lazima na watu wengi wanatumia njia mbadala kufanikisha hili. Kwa hivyo, wanasaidia watu na kupata msimbo unaosomeka zaidi
kwa _ kwa iterable
Nimeona hii katika programu zingine ingawa sijawahi kuitumia.
Tunaporudia kitu, orodha, kamusi, n.k, lakini maudhui ya vipengele hivyo hayatuvutii, tunaweza kuionyesha kwa _
Mfano:
Tunataka kuhesabu vipengele vya orodha lakini hatujali iliyomo, tunataka tu urefu wake.
h2=[ 'Valencia', 'Castellón', 'Alicante'] count = 0 for _ in h2: cont += 1
Katika tovuti nyingi wanapendekeza kutotumia vibaya mazoezi haya. Kwa kweli sijui faida inayoleta, je, ni haraka?
Inapendekezwa katika Utangulizi wa Harvard kwa kozi ya Python. Tunaporudia kutofautisha lakini hatutaitumia kabisa, tunaweka undescore, ni kama wanavyotoa maoni hapo Pythonic, mazoezi ya Python ambayo hayaonekani kwa lugha zingine, inasaidia usomaji kwa kutolazimika kuwa. kufahamu ni kwa ajili ya nini.
kuruka nyuma
nyuma kwa kitanzi. Kurudia kutoka mwisho hadi mwanzo
Inatumia reverse() kazi iliyoletwa kwenye python 3
h2=[ 'Valencia', 'Castellón', 'Alicante'] for j in reversed(h2): print (j)
Kufunga kwa fahirisi mbili, thamani ya iterable na index
Na enumerate() tunaweza kufanya kazi na fahirisi za mkusanyiko. Kwa sababu mara nyingi, pamoja na thamani ya kitu yenyewe iterable, sisi ni nia ya index yake.
h2=[ 'Valencia', 'Castellón', 'Alicante'] for j, h in enumerate(h2): print j, '-->', h2[i]
Inarudia zaidi ya orodha 2
Chaguo jingine la kuvutia sana ni zip() ambayo itafanya kazi yetu iwe rahisi na itafanya msimbo wetu kuwa rahisi na kusomeka zaidi.
h2=[ 'Valencia', 'Castellón', 'Alicante'] cod=[100, 200, 300] for j, h in zip(h2, cod): print h2, '-->', cod
Katika Python 2.x izip() ilitumika kuboresha utendakazi huu, lakini katika Python 3 izip ni zip()
Kuruka kwa mpangilio uliopangwa
Rudia kwa mpangilio kulingana na thamani ya kitu badala ya faharasa yake. sorted() inatumika
colors = ['rojo', 'amarillo', 'verde'] for color in sorted(colors): print color
Na ikiwa tunataka kuifanya nyuma
colors = ['rojo', 'amarillo', 'verde'] for color in sorted(colors, reverse=True): print color
Agizo maalum la kupanga
colors = ['rojo', 'amarillo', 'verde'] for color in sorted(colors, key=len): print color
Thamani ya Sentinel kwa kitanzi
Thamani ya mlinzi ni thamani inayosababisha kitanzi kuisha. Kawaida huwasilishwa kwa kitanzi cha muda, lakini Raymond Hettinger anatuonyesha jinsi ya kuitumia na kwa, ambayo ni haraka.
blocks = [] for block in iter(partial(f.read, 32), ''): blocks.append(block) print (block)
Pitia kamusi ukitumia kwa
Kamusi ni zana muhimu za kuelezea uhusiano na kuunda vikundi.
Unaweza kupitia kamusi kwa njia ya kitamaduni na kwa, lakini hiyo haitarudisha habari zote, hatutaweza kufanya kazi na maadili na fahirisi kama hizo, ikiwa hatutaanza kuongeza vihesabio na zingine. vipengele.
d = {'casa': 'azul', 'coche': 'rojo', 'hombre': 'verde'} for k in d.keys(): if k.startswith('r'): del d[k]
Kwa njia hii, pamoja na kuona vipengele, tunaweza kurekebisha kamusi kwa kubadilisha vipengele au kufuta, wakati huo huo kitanzi cha kitanzi kinarudiwa.
d.keys() huita hoja na kutengeneza nakala ambayo huhifadhi katika orodha ambayo tunaweza kurekebisha.
Kupata faharisi na maadili badala ya kitu cha kitamaduni na hiyo ndio jambo la kwanza linalokuja akilini kwa wale wetu ambao huanza programu.
for k in d: print k, '-->', d[k]
Tutatumia chaguo hili kwa kasi zaidi
for k, v in d.items(): print k, '-->', v
vitu() kuliko vitu()
Ongea juu ya Vitanzi kwenye Python na Raymond Hettinger
Ni video ya zamani lakini ya kielelezo sana, ambapo katika dakika 20 za kwanza Raymond Hettinger anatufundisha uwezekano tofauti wa vitanzi katika Python na anatupa mifano ya jinsi wanavyobadilisha miundo inayotumiwa sana na watu kuwa kazi, ili kufanya kitanzi kusomeka zaidi na rahisi zaidi. kanuni.