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

  1. 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.
  2. 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

  1. Fl-ewwel eżempju qabbilna żewġ valuri biex niddeterminaw jekk wieħed huwiex akbar mill-ieħor.
  2. 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
  3. Il-kundizzjoni u d-dikjarazzjoni else għandhom ikunu segwiti minn kolon (:)
  4. 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.