Ar gyfer dolen yn Python

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.

Os ydych chi'n berson aflonydd fel ni ac eisiau cydweithio i gynnal a chadw a gwella'r prosiect, gallwch chi wneud cyfraniad. Bydd yr holl arian yn mynd i brynu llyfrau a deunyddiau i arbrofi a gwneud tiwtorialau

Gadael sylw