Mae gan y ddolen For yn Python rai nodweddion gwahanol nag ieithoedd rhaglennu eraill. Rwy'n gadael i chi yr hyn rwy'n ei ddysgu i gael y gorau o un o'r dolenni a ddefnyddir fwyaf.
Yn Python bwriedir ailadrodd trwy wrthrych iteradwy, boed yn rhestr, gwrthrych, neu elfen arall.
Mae'r strwythur canlynol
h2=[ 'Valencia', 'Castellón', 'Alicante'] for j in h2: instructions
Yma mae h2 yn elfen ailadroddadwy er enghraifft rhestr h2 =[ 'Valencia', 'Castellón', 'Alicante']. Bydd gan y ddolen 3 iteriad, yn y cyntaf j=Valencia yn yr ail y newidyn j=Castellón.
A chyda hyn gallwn ddiffinio'r cyfarwyddiadau yr ydym eu heisiau, gan gofio bob amser y mewnoliad, rhywbeth hanfodol yn Python ac y mae llawer o bobl yn ei anwybyddu, gan gael gwallau yn y cod.
Ailadroddwch ar gyfer dolen union nifer o weithiau.
Os ydym am iddo ailadrodd nifer penodol o weithiau ag y gallwn ei wneud yn C ++ bydd yn rhaid i ni ddefnyddio range(). I ailadrodd 10 gwaith byddem yn defnyddio a
for element in Range(9): instructions
Rydyn ni'n rhoi 9 ac nid 10 oherwydd bod Ystod yn dechrau o 0, felly o 0 i 9 mae 10 iteriad neu dro o'r ddolen.
Mae Knowing Range () yn caniatáu i ni, yn lle rhoi rhif y tu mewn, i roi newidyn, felly bydd gennym lawer mwy o reolaeth.
var = 10 for element in Range(var): instructions
Mae gan y swyddogaeth Ystod lawer o opsiynau, byddaf yn siarad amdano mewn post arall, er mwyn peidio â chymysgu'r cynnwys a'i ddatblygu cymaint â phosib.
Gellir gwneud llawer mwy i reoli llif y ddolen ar gyfer.
Datganiadau Torri a Pharhau
Mae yna 2 nodwedd ddefnyddiol iawn sy'n ein galluogi i wneud dolen ar gyfer swyddogaethol iawn, yn yr egwyl a'r parhau. Fe'u defnyddir fel arfer gydag amodau, os, gwirio a yw rhywbeth yn wir.
Maen nhw'n gweithio mewn dolenni eraill, ac mae yna ddatganiad diddorol arall sef pass, sef datganiad sy'n cael ei weithredu ond sy'n gwneud dim byd ac sy'n ddelfrydol ar gyfer pan rydyn ni eisiau diffinio strwythur sy'n gofyn am orchmynion ond rydyn ni am eu rhoi yn nes ymlaen (sylwadau yw ddim yn ddefnyddiol ar gyfer hyn)
Egwyl
Gydag egwyl gallwn adael y ddolen ar unrhyw adeg. Fel y dychmygwch yn ddefnyddiol iawn. Mae'n wir bod strwythurau eraill fel While,
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')
parhau
Mae'n gwneud i ni fynd i'r elfen nesaf yn y ddolen.
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/
Ar gyfer … arall
Mae strwythur yn deillio o For, sydd ar gyfer … arall
datos = [1, 2, 3, 4, 5] for n in datos: if n == 2: break else: print('No hay 2')
Cododd y strwythur hwn ar ôl iddynt weld ei fod yn angenrheidiol a bod llawer o bobl yn defnyddio ffyrdd amgen o gyflawni hyn. Felly, maen nhw'n helpu pobl ac yn cael cod mwy darllenadwy
am _ yn ailadroddadwy
Rwyf wedi gweld hyn mewn rhai rhaglenni er nad wyf erioed wedi ei ddefnyddio.
Pan fyddwn yn ailadrodd gwrthrych, rhestr, geiriadur, ac ati, ond nid yw cynnwys yr elfennau hynny o ddiddordeb i ni, gallwn ei nodi gyda _
Enghraifft:
Rydyn ni eisiau cyfri'r elfennau o restr ond does dim ots gennym beth mae'n ei gynnwys, rydyn ni eisiau ei hyd.
h2=[ 'Valencia', 'Castellón', 'Alicante'] count = 0 for _ in h2: cont += 1
Mewn llawer o safleoedd maent yn argymell peidio â chamddefnyddio'r arfer hwn. Dydw i ddim yn gwybod y manteision y mae'n eu cyflwyno, a yw'n gyflymach?
dolennu am yn ôl
yn ôl ar gyfer dolen. I ailadrodd o'r diwedd i'r dechrau
Mae'n defnyddio'r ffwythiant gwrthdroi () a gyflwynwyd yn python 3
h2=[ 'Valencia', 'Castellón', 'Alicante'] for j in reversed(h2): print (j)
Dolen gyda dau fynegai, gwerth yr ailadroddadwy a mynegai
Gyda rhif() gallwn weithio gyda mynegeion casgliad. Oherwydd sawl gwaith, yn ychwanegol at werth y gwrthrych ailadroddadwy ei hun, mae gennym ddiddordeb yn ei fynegai.
h2=[ 'Valencia', 'Castellón', 'Alicante'] for j, h in enumerate(h2): print j, '-->', h2[i]
Yn ailadrodd dros 2 restr
Opsiwn diddorol iawn arall yw zip() a fydd yn gwneud ein gwaith yn haws ac yn gwneud ein cod yn symlach ac yn fwy darllenadwy.
h2=[ 'Valencia', 'Castellón', 'Alicante'] cod=[100, 200, 300] for j, h in zip(h2, cod): print h2, '-->', cod
Yn Python 2.x defnyddiwyd izip() i wella'r swyddogaeth hon, ond yn Python 3 izip yw zip()
Dolen mewn trefn wedi'i didoli
Ailadroddwch mewn trefn yn ôl gwerth y gwrthrych yn lle ei fynegai. sorted() yn cael ei ddefnyddio
colors = ['rojo', 'amarillo', 'verde'] for color in sorted(colors): print color
Ac os ydym am ei wneud yn ôl
colors = ['rojo', 'amarillo', 'verde'] for color in sorted(colors, reverse=True): print color
Trefn didoli personol
colors = ['rojo', 'amarillo', 'verde'] for color in sorted(colors, key=len): print color
Sentinel Gwerth i mewn ar gyfer dolen
Mae'r gwerth sentinel yn werth sy'n achosi i'r ddolen ddod i ben. Fe'i cyflwynir fel arfer mewn dolen ychydig, ond mae Raymond Hettinger yn dangos i ni sut i'w ddefnyddio gydag ar gyfer, sy'n gyflymach
blocks = [] for block in iter(partial(f.read, 32), ''): blocks.append(block) print (block)
Croesi geiriaduron ag ar gyfer
Mae geiriaduron yn arfau hanfodol ar gyfer mynegi perthnasoedd a gwneud grwpiau.
Gallwch fynd drwy'r geiriadur mewn ffordd draddodiadol ag ar gyfer, ond ni fydd hynny'n dychwelyd yr holl wybodaeth, ni fyddwn yn gallu gweithio gyda gwerthoedd a mynegeion fel hyn, os na fyddwn yn dechrau ychwanegu cownteri ac elfennau eraill.
d = {'casa': 'azul', 'coche': 'rojo', 'hombre': 'verde'} for k in d.keys(): if k.startswith('r'): del d[k]
Yn y modd hwn, yn ogystal â gweld yr elfennau, gallwn addasu'r geiriadur trwy newid elfennau neu eu dileu, ar yr un pryd ag y mae'r ddolen for yn cael ei ailadrodd.
Mae d.keys() yn galw'r dadleuon ac yn gwneud copi y mae'n ei storio mewn rhestr y gallwn ei haddasu.
Cael mynegeion a gwerthoedd yn lle rhywbeth traddodiadol a dyna'r peth cyntaf sy'n dod i'r meddwl i'r rhai ohonom sy'n dechrau rhaglennu
for k in d: print k, '-->', d[k]
Byddwn yn defnyddio'r opsiwn hwn yn llawer cyflymach
for k, v in d.items(): print k, '-->', v
iteritemau () nag eitemau()
Sgwrs am Loops in Python gan Raymond Hettinger
Mae'n fideo hen ond darluniadol iawn, lle yn yr 20 munud cyntaf mae Raymond Hettinger yn dysgu'r gwahanol bosibiliadau o ddolenni yn Python i ni ac yn rhoi enghreifftiau i ni o sut maen nhw'n trawsnewid strwythurau a ddefnyddir yn eang gan bobl yn swyddogaethau, i wneud y ddolen yn fwy darllenadwy a symlach. .god.