Uzziniet Python vadības plūsmu un cilpas, lai rakstītu un pielāgotu čaulas skriptus - 2. daļa


Šīs Python sērijas iepriekšējā rakstā mēs dalījāmies ar īsu ievadu par Python, tā komandrindas apvalku un IDLE. Mēs arī parādījām, kā veikt aritmētiskos aprēķinus, kā saglabāt vērtības mainīgajos un kā šīs vērtības izdrukāt ekrānā. Visbeidzot, mēs izskaidrojām metožu un īpašību jēdzienus objektorientētās programmēšanas kontekstā, izmantojot praktisku piemēru.

Šajā rokasgrāmatā mēs apspriedīsim vadības plūsmu (lai izvēlētos dažādus darbības virzienus atkarībā no lietotāja ievadītās informācijas, aprēķina rezultāta vai mainīgā pašreizējās vērtības) un cilpas (atkārtotu uzdevumu automatizēšanai) un pēc tam izmantosim līdz šim ir iemācījušies rakstīt vienkāršu čaulas skriptu, kurā tiks parādīts operētājsistēmas tips, resursdatora nosaukums, kodola laidiens, versija un iekārtas aparatūras nosaukums.

Šis piemērs, kaut arī vienkāršs, palīdzēs mums ilustrēt, kā mēs varam izmantot Python OOP iespējas, lai vienkāršāk rakstītu čaulas skriptus, nekā izmantojot parastos bash rīkus.

Citiem vārdiem sakot, mēs vēlamies pāriet no

# uname -snrvm

uz

vai

Izskatās glīti, vai ne? Satinēsim piedurknes un panāksim to.

Vadības plūsma Python

Kā mēs teicām iepriekš, vadības plūsma ļauj mums izvēlēties dažādus rezultātus atkarībā no konkrētā stāvokļa. Tās vienkāršākā ieviešana Python ir klauzula if/else.

Pamata sintakse ir:

if condition:
    # action 1
else:
    # action 2

  1. Kad nosacījums tiek novērtēts kā patiess, tiks izpildīts zemāk esošais koda bloks (ko apzīmē ar # action 1 . Pretējā gadījumā tiks izpildīts kods cits.
  2. Nosacījums var būt jebkurš apgalvojums, kuru var novērtēt kā patiesu, vai nepatiesu. Piemēram:

1 < 3 # true
firstName == "Gabriel" # true for me, false for anyone not named Gabriel

  1. Pirmajā piemērā mēs salīdzinājām divas vērtības, lai noteiktu, vai viena ir lielāka par otru.
  2. Otrajā piemērā mēs salīdzinājām vārdu FirstName (mainīgais), lai noteiktu, vai pašreizējā izpildes brīdī tā vērtība ir identiska ar Gabriel
  3. Nosacījumam un citam paziņojumam ir jāseko kolai (:)
  4. Ievilkums ir svarīgs Python. Tiek uzskatīts, ka līnijas ar identisku atkāpi atrodas vienā un tajā pašā kodu blokā.

Lūdzu, ņemiet vērā, ka paziņojums if/else ir tikai viens no daudzajiem Python pieejamajiem vadības plūsmas rīkiem. Mēs to pārskatījām šeit, jo vēlāk to izmantosim savā skriptā. Vairāk par pārējiem rīkiem varat uzzināt oficiālajos dokumentos.

Cilpas Python

Vienkārši sakot, cilpa ir instrukciju vai priekšrakstu secība, kas tiek izpildīta secībā, kamēr nosacījums ir patiess, vai vienu reizi sarakstā.

Visvienkāršākā Python cilpa tiek attēlota ar cilpu iterācijas pa norādītā saraksta vai virknes vienumiem, kas sākas ar pirmo vienumu un beidzas ar pēdējo.

Pamata sintakse:

for x in example:
	# do this

Šeit piemērs var būt saraksts vai virkne. Ja pirmais, mainīgais ar nosaukumu x apzīmē katru saraksta vienumu; ja pēdējais, x apzīmē katru rakstzīmi virknē:

>>> 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)

Iepriekš minēto piemēru iznākums ir parādīts šajā attēlā:

Python moduļi

Acīmredzamu iemeslu dēļ failā ir jābūt iespējai saglabāt Python instrukciju un priekšrakstu secību, kuru var izsaukt, kad tas ir nepieciešams.

Tas ir tieši tas, kas ir modulis. Jo īpaši os modulis nodrošina saskarni pamatā esošajai operētājsistēmai un ļauj mums veikt daudzas darbības, kuras parasti veicam komandrindas uzvednē.

Kā tāds tas ietver vairākas metodes un īpašības, kuras var izsaukt, kā mēs paskaidrojām iepriekšējā rakstā. Tomēr mums tas ir jāimportē (vai jāiekļauj) savā vidē, izmantojot importēšanas atslēgvārdu:

>>> import os

Izdrukāsim pašreizējo darba direktoriju:

>>> os.getcwd()

Tagad saliksim to visu kopā ar iepriekšējā rakstā aplūkotajiem jēdzieniem, lai uzrakstītu vēlamo skriptu.