Tgħallem Python Control Flow u Loops biex Tikteb u Tixgħel Shell Scripts - Parti 2
Fl-artiklu preċedenti ta 'din is-serje Python konna qsamna introduzzjoni qasira għal Python, il-qoxra tal-linja tal-kmand tagħha, u l-IDLE. Aħna wrejna wkoll kif twettaq kalkoli aritmetiċi, kif taħżen il-valuri fil-varjabbli, u kif tipprintja lura dawk il-valuri fuq l-iskrin. Fl-aħħarnett, spjegajna l-kunċetti ta 'metodi u proprjetajiet fil-kuntest tal-Programmazzjoni Orjentata lejn l-Oġġetti permezz ta' eżempju prattiku.
F’din il-gwida ser niddiskutu l-fluss tal-kontroll (biex nagħżlu korsijiet ta’ azzjoni differenti skont l-informazzjoni mdaħħla minn utent, ir-riżultat ta’ kalkolu, jew il-valur kurrenti ta’ varjabbli) u loops (biex awtomatizzati kompiti ripetittivi) u mbagħad napplikaw dak li aħna tgħallmu s'issa jiktbu script shell sempliċi li se juri t-tip tas-sistema operattiva, l-isem tal-host, ir-rilaxx tal-kernel, il-verżjoni, u l-isem tal-ħardwer tal-magna.
Dan l-eżempju, għalkemm bażiku, se jgħinna nispjegaw kif nistgħu nisfruttaw il-kapaċitajiet ta 'Python OOP biex niktbu skripts tal-qoxra aktar faċli milli nużaw għodod bash regolari.
Fi kliem ieħor, irridu mmorru minn
# uname -snrvm
biex
jew
Jidher sabiħ, hux? Ejja nxammru l-kmiem u nagħmluh iseħħ.
Kontroll tal-fluss f'Python
Kif għidna qabel, il-fluss tal-kontroll jippermettilna nagħżlu riżultati differenti skont kundizzjoni partikolari. L-implimentazzjoni l-aktar sempliċi tagħha f'Python hija klawżola if/else.
Is-sintassi bażika hija:
if condition: # action 1 else: # action 2
- Meta l-kundizzjoni tevalwa bħala vera, il-blokka tal-kodiċi hawn taħt se tiġi eżegwita (rappreżentata minn
# azzjoni 1
. Inkella, il-kodiċi taħt inkella jitħaddem. - Kundizzjoni tista' tkun kwalunkwe stqarrija li tista' tevalwa jew vera jew falza. Per eżempju:
1 < 3 # true firstName == "Gabriel" # true for me, false for anyone not named Gabriel
- Fl-ewwel eżempju qabbilna żewġ valuri biex niddeterminaw jekk wieħed huwiex akbar mill-ieħor.
- Fit-tieni eżempju qabbilna firstName (varjabbli) biex niddeterminaw jekk, fil-punt tal-eżekuzzjoni attwali, il-valur tiegħu huwiex identiku għal \Gabriel
- Il-kundizzjoni u d-dikjarazzjoni else għandhom ikunu segwiti minn kolon (:)
- L-indentazzjoni hija importanti f'Python. Linji b'indentazzjoni identika huma kkunsidrati li huma fl-istess blokk tal-kodiċi.
Jekk jogħġbok innota li d-dikjarazzjoni if/else hija biss waħda mill-ħafna għodod tal-fluss tal-kontroll disponibbli f'Python. Irrevejnaha hawn peress li se nużawha fl-iskrittura tagħna aktar tard. Tista' titgħallem aktar dwar il-bqija tal-għodod fid-dokumenti uffiċjali.
Loops f'Python
Fi kliem sempliċi, linja hija sekwenza ta 'struzzjonijiet jew dikjarazzjonijiet li huma esegwiti fl-ordni sakemm kundizzjoni tkun vera, jew darba għal kull oġġett f'lista.
L-aktar loop sempliċi f'Python huwa rappreżentat mill-loop for iterati fuq l-oġġetti ta 'lista partikolari jew string li jibda bl-ewwel oġġett u jispiċċa bl-aħħar.
Sintassi bażika:
for x in example: # do this
Hawnhekk eżempju jista 'jkun jew lista jew string. Jekk l-ewwel, il-varjabbli bl-isem x tirrappreżenta kull oġġett fil-lista; jekk dan tal-aħħar, x jirrappreżenta kull karattru fis-sekwenza:
>>> rockBands = [] >>> rockBands.append("Roxette") >>> rockBands.append("Guns N' Roses") >>> rockBands.append("U2") >>> for x in rockBands: print(x) or >>> firstName = "Gabriel" >>> for x in firstName: print(x)
L-output ta 'l-eżempji ta' hawn fuq jidher fl-immaġni li ġejja:
Moduli Python
Għal raġunijiet ovvji, għandu jkun hemm mod kif tissejvja sekwenza ta 'struzzjonijiet u dikjarazzjonijiet Python f'fajl li jista' jiġi invokat meta jkun meħtieġ.
Dan huwa preċiżament dak modulu. B'mod partikolari, il-modulu os jipprovdi interface għas-sistema operattiva sottostanti u jippermettilna nwettqu ħafna mill-operazzjonijiet li s-soltu nagħmlu fil-pront tal-linja tal-kmand.
Bħala tali, tinkorpora diversi metodi u proprjetajiet li jistgħu jissejħu kif spjegajna fl-artikolu preċedenti. Madankollu, għandna bżonn nimportawh (jew ninkluduh) fl-ambjent tagħna billi tuża l-kelma prinċipali tal-importazzjoni:
>>> import os
Ejja nipprintjaw id-direttorju tax-xogħol kurrenti:
>>> os.getcwd()
Ejja issa ngħaqqdu dan kollu flimkien (flimkien mal-kunċetti diskussi fl-artiklu preċedenti) biex niktbu l-iskrittura mixtieqa.