Cyfrifiaduron, Rhaglennu
Iaith raglennu Python: dolenni
Mae'r iaith raglennu Python (fel "Python" neu "Python") Mae sawl ffordd o ddolen rhywfaint o weithredu. Y prif offer ar gyfer gweithredu unrhyw iteriad yn Python - tra dolenni ac am. Mae'r ddolen tra yn fwy cyffredinol nag ar gyfer, felly mae'n arafach. Fodd bynnag, nid yw hyn yn golygu ei bod yn well! Mae'r ddolen am ei ddefnyddio yn fwy aml, oherwydd ag ef yn sylweddoli y tasgau mwyaf anodd i'r o aml-lefel a rhaglenni mnogouslovnyh greu.
Python: cylch gyda postcondition
Cycles ag postcondition - mae'n dolenni tra, sef y strwythurau trefniadol mwyaf cyffredin yn yr amgylchedd rhaglennu. Mae'r ddolen tra yn gweithredu ar yr egwyddor o "cyn belled ag y". Mae hyn yn golygu y canlynol: tra bydd cyflwr penodol yn dychwelyd gwerth yn wir, bydd yn gweithio! Gelwir y cynllun yn "gylch" oherwydd bod y rheolaeth swyddogaethol hailadrodd gylchol, gan ddechrau gyda'r gwerth cychwynnol. Allan yn y cylch tra Python yn cael ei weithredu ar yr adeg pan fydd y gwerth yn dod yn ffug. Ar y pwynt hwn, mae'r cyfieithydd darlledu'r rhaglen ar y segment swyddogaethol-semantig canlynol, sef llinell newydd, sydd wedi ei leoli ar ôl y bloc gyda'r postcondition tra.
Mewn ieithoedd rhaglennu, cylchoedd Python tra postcondition cael y chystrawen canlynol:
1. Er bod (cyflwr): 2. mynegiant |
Gall mynegiant fod yn naill ai datganiad sengl neu nifer. Mae'r cyflwr bob amser yn arwyddocâd wir am unrhyw nad ydynt yn sero. Mae'r cynllun yn gweithio cyn belled â bod y amod a bennir yn wir.
Gan ddefnyddio beiciau tra yn y "Python" er enghraifft
Rassmotirim tra ddolen. Python yw strwythurau eithaf diddorol ei iteriadau:
a = 0 |
Rydym wedi datgan y newidyn "yn" a gofyn iddi i sero. Yna gosod yr amodau "tra bod <7", hynny yw, tra bod y newidyn "yn" yn llai na rhif "7", yna mae ein dolen yn cael ei gweithredu cyn belled â bod yn ffug.
Mae ffug (hynny yw, yn ymadael o'r cylch) bydd pan fydd y newidyn yn fwy na rhif "7". Er mwyn i hyn ddigwydd, mae'n bob tro gynyddrannedig gan 1, ein bod yn nodi yn y "a = a + 1".
Os ydych yn rhedeg hyn adeiladu, y llythyren "A" yn cael ei ddangos 7 gwaith mewn colofn!
A |
cylch diddiwedd tra yn Python
Sut i wneud dolen ddiddiwedd yn Python tra? Dyfalu ddim yn anodd, oherwydd bod y cylch yn rhedeg tan nes ei fod yn derbyn gwerth ffug, ac os nad yw gwerth hyn yn syml yno? Yr ateb i'r cwestiwn hwn yn ôl pob tebyg eisoes, felly mae popeth yn glir. Mewn rhai achosion, mae angen dolen ddiddiwedd i ddatrys problem? Bydd enghraifft hon yn gwasanaethu fel gwireddu rhaglen o'r fath, fel "cloc." Yma, wrth gwrs, mae angen i chi ddefnyddio dolen ddiddiwedd, a fydd yn cael ei diweddaru yn barhaol ac yn dangos yr amser.
dolen ddiddiwedd yn aml yn rhaglenwyr newyddian gamgymeriad sy'n anghofio i ychwanegu amodau cylch newid.
Gadewch i ni edrych ar y darn canlynol o cod Python. Mae'r cylchoedd yn yr achos hwn Ailadroddodd am gyfnod amhenodol (ar ôl y "#" gymeriad yn sylw):
Rhif = 1 # datgan nifer amrywiol a benodi iddo werth o 1 tra bod nifer <10: # creu'r postcondition, sy'n rhif llai na 10 print 'Helo' # amod (print «Helo» neges) |
Ni ddylai rhaglen o'r fath yn rhuthro i lunio, gan y bydd yn rhedeg am gyfnod amhenodol. Rydym yn gofyn i amodau o'r fath na fydd byth yn cael gwerthoedd ffug rhif cyflwr «<10" yn yr achos hwn a bob amser yn wir, felly bydd y iteriad yn gyson gan ddod N-fed nifer o "Helo negeseuon". Er mwyn atal y broses o lunio'r tragwyddol, bydd angen i chi bwyso ar y cyfuniad bysellau Ctrl + C yn y gragen.
Python: cystrawen. Er bod, ac ar gyfer dolenni
Fel y soniwyd uchod, yn iaith yr raglennu "Python", mae yna sawl ffordd i drefnu grŵp ailadrodd ymadroddion. Mae'n dod i'r adwy ddolen i, sef ychydig yn wahanol oddi wrth y tra, oherwydd ei ddyluniad yn ychydig yn fwy cymhleth na dim ond postcondition. gadewch i ni siarad am y cyffredinolrwydd y cylch, gan ei fod yn syml, nid yw, fodd bynnag, yn nodi bod y ddolen ar gyfer yn llawer cyflymach nag ychydig. Mae amrywiaeth o ffyrdd i ddatrys y dyluniad a pherfformiad cylch perfformio'n well na bach hwn gyda postcondition, felly mae'n llawer mwy tebygol o ddefnyddio i berfformio llawer o dasgau dibwys.
Beth yw'r heriau sy'n wynebu cylch amdano? Yn ddi-os, yr un fath ag un y tra - ailadrodd unrhyw brosesau. Mae'r nodiadau rhaglen a wneir ar y "python", yn cael ei defnyddio yn eang ar gyfer ddolen, sy'n gallu gweithredu llwybro a bennwyd ymlaen llaw lluosogrwydd o elfennau ac i berfformio yn ei wahanol chorff ailadrodd drostynt. Gall nodweddion dyluniad hwn yn cael ei ddefnyddio mewn llinellau prosesu neu restrau yn union fel unrhyw wrthrych arall Ailadroddodd.
Enghraifft o ddefnydd ar gyfer y cylch yn Python
Lets 'ddeud mae gennym rai rhestr o rifau, ac mae angen pob elfen (hy. E. Rhif) cynnydd o dair uned. I weithredu tasg o'r fath y gallwn drwy'r ddolen, am ddulliau ddolen.
Gadewch i ni edrych ar enghraifft cyflym, lle y byddwn yn perfformio y camau priodol ar gyfer hyn (ar ôl y "#" gymeriad yn sylw):
spisok_chisel = [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] # datgan amrywiaeth sy'n cynnwys ffigurau 10 cyfrif = 0 # cownter greu gyda sero ar gyfer elfennau yn spisok_chisel: # ailadrodd dros y array a'i ysgrifennu yn yr elfennau spisok_chisel [cyfrif] = elfennau + # 3 nifer cynyddol amrywiaeth o dri cyfrif = cyfrif + 1 # yn mynd i'r rhif nesaf ar y mynegai |
Bydd canlyniad y gwaith adeiladu uchod fydd:
spisok_chisel = [8, 18, 28, 38, 48, 58, 68, 78, 88, 98] |
Yn ein enghraifft, mae cyfrif amrywiol, y mae angen er mwyn dathlu gwerthoedd sy'n newid yn y casgliad «spisok_chisel». Mae'r cyfrif newidyn yn cael ei gofnodi gwerth mynegai o bob elfen yn y array (pob rhif yn y rhestr). «Elfennau» Amrywiol cysylltu gwerth sy'n arwain at y rhestr. Yn y am ddolen, rydym yn gweld sut i weithredu'r prosesu pob gwrthrych yn y rhestr rhifiadol. Y tu mewn i'r ddolen, pob gwrthrych rhifol â mynegai «cyfrif» Ychwanegodd y swm yr elfen Ailadroddodd cyfredol a thri. Yna mae ein mynegai «gyfrif» cynyddu o un, a llif y broses o weithredu'r rhaglen yn dychwelyd at ddechrau'r hysbysebion adeiladu ar gyfer. Felly, bydd y ddolen yn rhedeg tan hyd nes ei fod wedi prosesu pob elfen yn y casgliad, a roddwyd gan y cyflwr. Os yw unrhyw elfen yn goll, ond yn cael ei osod gan y cyflwr, y cylch yn gyflawn. Rydym yn tynnu sylw at un peth arall: os nad ydych yn ysgrifennu llinell o «cyfrif = gyfrif + 1", er gwaethaf y ffaith bod amrywiaeth o wrthrychau a broseswyd yn llwyddiannus, y canlyniad bob amser yn cael eu hychwanegu at y mynegai gwrthrych rhifiadol cyntaf sero c.
Nawr gallwn feddwl am tra bod egwyddorion gweithredu dolen ac adnabod y gwahaniaeth (dwyn i gof bod yn Python allan o'r cylch gyda postcondition yn cael ei wneud ar sail y meini prawf rhesymegol - yn wir (y cylch yn parhau) neu ffug (y cylch yn dod i ben)).
Sut i drin llinyn yn Python gan ddefnyddio'r cynllun ar gyfer?
Ym mhob iaith raglennu mae cylchoedd, ac maent yn gweithio, fel arfer ar yr un egwyddor, y gwahaniaethau gweladwy yn unig yn y gystrawen. Fodd bynnag, mae'r gyfer ddolen yn yr iaith "Python" Nid yn gyffredin ac yn ddibwys, am nad yw'r egwyddor ei weithrediad yn cael ei gyfyngu i'r cownter. Mae'r cynllun enumerates pob eitem ar wahân. Gall hyn i gyd yn cael ei egluro yn hawdd gan yr enghraifft o weithio gyda llinynnau, ond yn gyntaf gadewch i ni ymdrin â'r cyfansoddiad y cylch ar gyfer:
am amrywiol
Mae'n cael ei storio mewn gweithrediad canlyniad beicio amrywiol
mewn peremennaya_2
allweddair «yn» - mae'n hanfodol wrth weithio gyda «i» cylch. O peremennoy_2 rydym yn tynnu gwerth fydd yn cael ei ailadrodd. Er mwyn eglurder, ac eglurder, gadewch i ni edrych ar enghraifft fach o sut i weithio ac i ddidoli llinynnau yn Python:
torgoch = 'raglennu' # datgan newidyn a benodi gwerth llinyn am Slovo yn torgoch: # Creu Slovo amrywiol, a fydd yn parhau codau busting o torgoch amrywiol print (Slovo, diwedd = '^') # Allbwn y Slovo ac ar ôl pob llythyr, rhowch symbol - aderyn. |
Mae canlyniad y llawysgrifen:
P ^ p ^ o ^ r ^ r ^ yn ^ m ^ m ^ ^ a p ^ o ^ yn ^ a ^ n ^ a ^ e |
parhau datganiad
gweithredwr parhau i weithredu'r newid i'r cylch nesaf ar waith, a roddir gan y cyflwr, waeth beth yw cydbwysedd y ddolen. Defnyddio'r parhau gall datganiad fod mewn dau gylch - ar gyfer ac er.
Ystyriwch yr enghraifft hon:
i gyfrif yn 'ailadrodd bob llythyren, ac eithrio ar gyfer' os cyfrif == 'o': parhau print (cyfrif * 2, diwedd = '') |
Y canlyniad fydd y canlynol:
Ppvvttrriimm kkaazhzhdduuyuyu bbuukkvvuu ,, kkrrmmee |
Pan dod o hyd i'r trafodwr llythyr "o" yn y llinyn 'ailadrodd bob llythyren, ac eithrio ar gyfer' gweithredu i roi'r rhaglen hanfon ymlaen ar unwaith at y llinell ar ôl y gair '' parhau '', lle mae cyflwr ei osod i ddyblygu pob llythyren.
datganiad egwyl
«Egwyl» allweddair mewnosod yn y man lle y cylch yn cael ei dorri heb aros ar gyfer ei gwblhau, a roddwyd gan y cyflwr. Mae'r cynllun yn cael ei ddefnyddio yn aml wrth ysgrifennu rhaglenni gyda llawer o resymeg ac amodau.
Ystyriwch enghraifft fach o'r datganiad egwyl gwaith:
i gyfrif yn 'ailadrodd bob llythyren, ac eithrio ar gyfer' os cyfrif == 'o': egwyl print (cyfrif * 2, diwedd = '') |
Y canlyniad fydd y canlynol:
nn |
Pan dod o hyd i'r trafodwr llythyr "o" yn y llinyn 'ailadrodd bob llythyr ac eithrio' gweithredu i roi'r rhaglen ei atal ar unwaith, er gwaethaf y ffaith bod y llinell nesaf yn cynnwys rhai o'r amodau ar gyfer y cylch.
Mae'r gair hud arall
Mewn cyfres o unrhyw fath all wneud cais y gweithredydd arall. Beth yw ei ddiben? Roedd hefyd sieciau a oedd wedi ei ymrwymo allan o'r ddolen yn golygu toriad neu y ffordd arferol. Bloc gyda rheolau a bennwyd ymlaen llaw o ran gweithredu arall yn dechrau dim ond pan fydd yr amod bod allbwn y cylch yn cael ei wneud heb ddefnyddio strwythur egwyl.
Ystyriwch enghraifft fach:
i gyfrif yn 'byd helo': os cyfrif == 'I': egwyl arall: print ( 'Mae gan eich dedfryd oes llythyren' I '') |
Mae allbwn y llawysgrifen:
Nid yw eich dedfryd yn y llythyren "I" |
Mae enghreifftiau o gylchoedd yn y drefn gefn y iaith raglennu Python
Fel ar waith yn Python cylch cefn? Gadewch i ddychmygu bod ysgrifennu rhaglen y mae angen cydnabod y llinell cymeriad a'i argraffu yn ôl. Sut i weithredu hyn?
Ystyriwch yr enghraifft isod:
Slovo = 'rhaglennu' new_slovo = [] i gyfrif yn ystod (Len (au), 0, -1): new_slovo.append (au [i-1]) new_slovlo [, 'P' 'P', 'o', 'g', 'p', 'yn', 'm', 'm', 'u', 'p', 'o', 'yn', ' yn ',' n ',' u ',' e '] print (new_slovo) [, 'P' 'P', 'o', 'g', 'p', 'yn', 'm', 'm', 'u', 'p', 'o', 'yn', ' yn ',' n ',' u ',' e '] print ( ''. ymunwch (new_slovo)) |
Mae canlyniad y llawysgrifen:
einavorimmargorp |
dolenni nythu
Yn Python, mae yna hefyd cylchoedd o raglenni a buddsoddiadau, sy'n cael ei osod yn y corff arall. Ym mhob cylch yn gallu bod dolen nythu, ac felly mae'n bosibl adeiladon nhw ysgol i anfeidredd. Yn y iteriad cyntaf y ddolen allanol yn cael ei lunio gyda galwad i'r ddolen mewnol, sy'n cael ei gyflawni cyn cwblhau ei ben ei hun, ac yna rheoli'r holl ailgyfeirio i gorff y ddolen allanol. Mae gan bob iaith ei nodweddion ei hun o dolenni nythu, gadewch i ni edrych ar sut y maent yn gweithio yn y "Python" iaith raglennu.
Os ydych yn defnyddio dolenni nythu, Python yn cynnig y chystrawen canlynol:
am amrywiol o ran dilyniant o newidynnau: am amrywiol o ran dilyniant o newidynnau gam (au) gam (au) |
Cafodd nodweddion arbennig y dolenni nythu yn y ffaith y gall yn y cylch o unrhyw fath yn cael ei ddefnyddio fel unrhyw fath o gylch! Mae hyn yn golygu bod mewn cylch gall tra (neu ar gyfer) yn cael eu hymgorffori i gylch neu eto tra ac i'r gwrthwyneb.
Similar articles
Trending Now