በ Python ውስጥ loop እያለ። እንዴት እንደሚሰራ, የአጠቃቀም ምሳሌዎች

Loops የማንኛውም ቋንቋ ዋና መሳሪያዎች አንዱ ነው። በፓይዘን ውስጥ ሁለት መሰረታዊ ዑደቶች አሉ ፣ አንደኛው ይህ ጊዜ ነው። አስቡበት, እና እንዲሁም ስለ ስዕሉ የተሻለ ግንዛቤ, አንድ ተጨማሪ. በእርግጥ፣ ከተመሳሳይ ነገር ጋር ሲወዳደር የትኛውንም ቁሳቁስ ለመረዳት በጣም ቀላል ነው፣ አይደለም እንዴ?

የአንድ ዑደት ጽንሰ-ሐሳብ

አንድ የተወሰነ ተግባር ብዙ ጊዜ መከናወን ሲያስፈልግ ሉፕ ያስፈልጋል። ይህ በጣም ቀላል ነው, ምክንያቱም በእውነቱ ዑደቶች የመተግበሪያዎች ክልል በጣም ሰፊ ነው. በፓይዘን ውስጥ ሁለት ዋና ዋና የሉፕ ዓይነቶች አሉ፡ ለ እና ለጊዜ። በጣም ታዋቂው ለ.

ከተወሰኑ ድርጊቶች በተጨማሪ የተለያዩ የኮድ ቁራጮችን እስከ አንድ ነጥብ ድረስ ማዞር ይችላሉ። ይህ የተወሰነ ቁጥር ሊሆን ይችላል, ወይም አንድ የተወሰነ ሁኔታ እውነት እስከሆነ ድረስ.

የ loops ዓይነቶችን ለመረዳት ከመጀመራችን በፊት እና በተለይም ተደጋጋሚነት ምን እንደሆነ መረዳት አለብን። ይህ አሁን ባለው የትግበራ ሂደት ውስጥ አሁን ባለው ዑደት ውስጥ የአንድ ድርጊት ወይም የእርምጃዎች ቅደም ተከተል አንድ ድግግሞሽ ነው።

ዑደት ለ

የእኛ ሎፕ እንደ ሌሎች ብዙ ቋንቋዎች ቆጣሪ አይደለም። የእሱ ተግባር የተወሰኑ የእሴቶችን ቅደም ተከተል መዘርዘር ነው. ይህ ምን ማለት ነው? የንጥረ ነገሮች ዝርዝር አለን እንበል። በመጀመሪያ, ሉፕ የመጀመሪያውን, ሁለተኛ, ሶስተኛውን እና የመሳሰሉትን ይወስዳል.

በፓይዘን ውስጥ ያለው የዚህ loop ጥቅም ከሉፕ መቼ እንደሚወጣ ለማወቅ የንጥሉን መረጃ ጠቋሚ መወሰን አያስፈልገዎትም። ሁሉም ነገር በራስ-ሰር ይከናወናል.

>>> spisok = [10, 40, 20, 30]

>>> በ spisok ውስጥ ላለው ንጥረ ነገር፡-

… ማተም (ንጥረ ነገር + 2)

...

12

42

22

32

በእኛ ምሳሌ ውስጥ, ተለዋዋጭውን ተጠቀምን አባል ከትእዛዝ በኋላ ። በአጠቃላይ, ስሙ ማንኛውም ሊሆን ይችላል. ለምሳሌ, ታዋቂው ስያሜ i. እና በእያንዳንዱ ድግግሞሽ, ይህ ተለዋዋጭ ከዝርዝሩ ውስጥ አንድ የተወሰነ ነገር ይመደባል, እሱም ተገቢውን ቃል ብለን እንጠራዋለን.

በእኛ ሁኔታ, ዝርዝሩ የቁጥር 10,40,20,30 ቅደም ተከተል ነው. በእያንዳንዱ ድግግሞሽ, ተመጣጣኝ እሴት በተለዋዋጭ ውስጥ ይታያል. ለምሳሌ ፣ ምልልሱ እንደጀመረ ፣ ተለዋዋጭ አባል እሴቱ 10 ተመድቧል. በሚቀጥለው ድግግሞሹ አሥሩ ወደ ቁጥር 40 ይቀየራል, ለሦስተኛ ጊዜ ወደ ቁጥር 20 ይቀየራል, በመጨረሻም, በመጨረሻው የ loop ድግግሞሽ ላይ, ወደ 30 ይቀየራል.

የዑደቱ መጨረሻ ምልክት በዝርዝሩ ውስጥ ያሉት ንጥረ ነገሮች መጨረሻ ነው.

እንደሌሎች የፕሮግራም አወጣጥ ቋንቋዎች ክላሲክ የእሴቶችን ቆጠራ ለማከናወን ሉፕ ከፈለግክ እኛ እስከምንፈልገው እሴት ድረስ የተፈጥሮ ቁጥሮች ቅደም ተከተል ያለው ዝርዝር መፍጠር አለብህ።

>>> spisok = [1,2,3,4,5]

ወይም ተግባሩን ይጠቀሙ ሌንስ() የዝርዝሩን ርዝመት ለመወሰን. ነገር ግን በዚህ ሁኔታ ሉፕ መጠቀም የተሻለ ነው እያለ፣ ምክንያቱም ተለዋዋጭ መጠቀም አያስፈልግም.

በዝርዝሩ ውስጥ የእሴቶችን ቅደም ተከተል መለወጥ ከፈለጉ ፣ loop እና እዚህ ለማዳን ይመጣል. ይህንን ለማድረግ በእያንዳንዱ ድግግሞሹ እያንዳንዱ የዝርዝሩ አካል ተገቢውን እሴት መመደብ አለበት.

ሉፕ እያለ

ከዑደቱ በተቃራኒ , ይህም በቀላሉ በቅደም ተከተል እሴቶች ላይ ይደግማል, loop ላይ ሳለ የበለጠ ጥቅም አለው። የዚህ አይነት ዑደቶች ስም እንደ "ገና" ተተርጉሟል. ማለትም "እስከ" ድረስ.

ይህ በሁሉም የፕሮግራሚንግ ቋንቋዎች ውስጥ የሚገኝ ሁለንተናዊ ዑደት ነው። እና በአንዳንድ መንገዶች ሁኔታዊ ኦፕሬተርን ይመስላል አዎ፣ አንድ የተወሰነ ሁኔታ መሟላቱን ለማረጋገጥ ቼክ የሚያከናውን. ከሁኔታዊ ኦፕሬተር በተቃራኒ ብቻ ፣ ላይ ሳለ ቼኩን አንድ ጊዜ ብቻ ሳይሆን በእያንዳንዱ ድግግሞሽ ያከናውናል. እና ሁኔታው ​​ውሸት ከሆነ ብቻ, ዑደቱ ያበቃል እና የተከተለው ትዕዛዝ ይፈጸማል. በቀላል ቃላት, የሚሠራበት ሁኔታ ከአሁን በኋላ ትክክል ካልሆነ.

ዑደት ካደረግን ላይ ሳለ ቀለል ባለ መልኩ, እንዲህ ዓይነቱን እቅድ በመጠቀም ይከናወናል.በ Python ውስጥ loop እያለ። እንዴት እንደሚሰራ, የአጠቃቀም ምሳሌዎች

የፕሮግራሙ ዋና ቅርንጫፍ (ከሉፕ ውጭ የሚሠራው) በዚህ ሥዕል ላይ በሰማያዊ አራት ማዕዘኖች ይገለጻል። Turquoise የዑደቱን አካል ይወክላል. በምላሹ, rhombus በእያንዳንዱ ድግግሞሽ ላይ የሚጣራ ሁኔታ ነው.

ዑደት ላይ ሳለ ሁለት ሁኔታዎችን ሊያስከትል ይችላል፡-

  1. በ loop መጀመሪያ ላይ አመክንዮአዊ አገላለጽ እውነት ካልተመለሰ በቀላሉ አይጀምርም ፣ ከመገደሉ በፊት ይጠናቀቃል። በአጠቃላይ ይህ ሁኔታ የተለመደ ነው, ምክንያቱም በተወሰኑ ሁኔታዎች ውስጥ, አፕሊኬሽኑ በሎፕ አካል ውስጥ ያሉ መግለጫዎች መኖራቸውን ላያቀርብ ይችላል.
  2. አገላለጹ ሁልጊዜ እውነት ከሆነ, ይህ ወደ ዑደት ሊያመራ ይችላል. ወደ ዑደቱ ማለቂያ የሌለው ማሸብለል ማለት ነው። ስለዚህ በእንደዚህ አይነት ፕሮግራሞች ውስጥ ሁል ጊዜ ከሉፕ ወይም ከፕሮግራሙ የመውጫ መግለጫ መኖር አለበት ። ይሁን እንጂ ፕሮግራሙ የአንድን የተወሰነ ሁኔታ እውነት ወይም ሐሰት ማወቅ ከቻለ ይህ ሁኔታ ይከሰታል. ይህን ማድረግ ካልቻለች, ከፕሮግራሙ መቋረጥ ጋር ስህተት ተመልሷል. ወይም ስህተቱን መቋቋም ይችላሉ, እና ከዚያ, ከተከሰተ, የተወሰነ ኮድ ይፈጸማል.

ስህተትን እንዴት እንደሚይዙ በጣም ብዙ አማራጮች ሊኖሩ ይችላሉ። ለምሳሌ, ፕሮግራሙ ተጠቃሚው በትክክል ውሂብ እንዲያስገባ ሊጠይቅ ይችላል. ስለዚህ, አንድ ሰው አዎንታዊ ብቻ ሊሆን የሚችልበትን አሉታዊ ቁጥር ካመለከተ, ወይም ቁጥሮች ብቻ መሆን ያለባቸው ፊደሎች ከገቡ, ፕሮግራሙ ስለ እሱ ሊናገር ይችላል.

የሉፕ ምሳሌዎች እያለ

በዚህ ጉዳይ ላይ ስህተትን የሚቆጣጠር ኮድ ምሳሌ እዚህ አለ።

n = ግቤት ("ኢንቲጀር አስገባ:") 

ሲተይቡ(n)!= int:

    ሞክር

        n = int (n)

    ከእሴት ስህተት በስተቀር

        ማተም ("የተሳሳተ ግቤት!")

        n = ግቤት ("ኢንቲጀር አስገባ:") 

ከሆነ n % 2 == 0፡

    ማተም ("እንኳን")

ሌላ

    ማተም ("ያልተለመደ")

ፒቲን ውስብስብ የኮድ ግንባታዎችን ለማወጅ ኮሎን እንደሚጠቀም ያስታውሱ።

ከላይ ባለው ኮድ ቁጥሩ ኢንቲጀር መሆኑን ማረጋገጥ እንዳለብን እንደ ቅድመ ሁኔታ ገለፅን። አዎ ከሆነ፣ ውሸት ተመልሷል። ካልሆነ እውነት ነው።

በኮዱ ሁለተኛ ክፍል, ኦፕሬተሩ ጥቅም ላይ የሚውልበት if, ከክፍል ክዋኔው በኋላ የቀረውን ለማግኘት የ% ኦፕሬተርን ተጠቅመንበታል። የሚቀጥለው እርምጃ ቁጥሩ እኩል መሆኑን ማረጋገጥ ነው. ካልሆነ ቀሪው በዚህ ጉዳይ ላይ አንድ ነው. በዚህ መሠረት ቁጥሩ ያልተለመደ ነው. 

በቀላል አነጋገር፣ ከላይ ያለው ኮድ መጀመሪያ በተጠቃሚው የገባው ሕብረቁምፊ ቁጥር መሆኑን ያረጋግጣል። አዎ ከሆነ፣ በሁሇት ክፍሌ የተረፈው ክፍል መኖሩን ሇማጣራት ሁለተኛ ፍተሻ ይዯረጋሌ። ነገር ግን ሁለተኛው እገዳ በተጠቃሚው የገባው ዋጋ ቁጥራዊ እስኪሆን ድረስ አይተገበርም.

ያም ማለት ሁኔታው ​​እስኪከሰት ድረስ ቀለበቱ በመደበኛነት ይከናወናል. በዚህ ሁኔታ, ልክ እንደዚህ ይሰራል. 

ማለትም ፣ ከተቃራኒው መሄድ ይችላሉ-ክስተቱ ሐሰት እስኪሆን ድረስ አንድን እርምጃ ያዙሩ።

ኮድ መተንተን

አሁን ይህ ኮድ እንዴት እንደሚሰራ በበለጠ ዝርዝር እንመልከት. ይህንን ለማድረግ, ደረጃ በደረጃ እንመረምራለን.

  1. በመጀመሪያ ተጠቃሚው ሕብረቁምፊ ያስገባል, በተለዋዋጭ n ይቀበላል. 
  2. loop በመጠቀም ላይ ሳለ የዚህ ተለዋዋጭ አይነት ተረጋግጧል. በመጀመሪያው ግቤት ላይ, እኩል አይደለም int. ስለዚህ, በምርመራው ምክንያት, ይህ ሁኔታ እውነት ሆኖ ተገኝቷል. ስለዚህ, የ loop አካል ገብቷል.
  3. በኦፕሬተር እርዳታ ሙከራ ሕብረቁምፊን ወደ ቁጥር ለመቀየር እየሞከርን ነው። ይህ ከተደረገ, ከዚያ ምንም ስህተት አይከሰትም. በዚህ መሠረት, እሱን ማካሄድ አያስፈልግም. ስለዚህ, አስተርጓሚው ወደ ቀለበቱ መጀመሪያ ይመለሳል, እና በቼክ ውጤቶች መሰረት, ኢንቲጀር ሆኗል. ስለዚህ ወደ ደረጃ 7 እንሂድ
  4. ልወጣው ካልተሳካ፣ የValueError ተጥሏል። በዚህ አጋጣሚ የፕሮግራሙ ፍሰት ወደ ተቆጣጣሪው በስተቀር ይላካል.
  5. ተጠቃሚው ለተለዋዋጭ n የተመደበው አዲስ እሴት ያስገባል።
  6. አስተርጓሚው ወደ ደረጃ 2 ይመለሳል እና እንደገና ያጣራል። የኢንቲጀር ዋጋ ከሆነ ወደ ደረጃ 7 ይሂዱ። ካልሆነ ግን ልወጣው በደረጃ 3 እንደገና ይሞከራል።
  7. በኦፕሬተር እርዳታ if ቁጥርን በ 2 ካካፈለ በኋላ ቀሪ መኖሩን ይወስናል። 
  8. ካልሆነ, "እንኳን" የሚለው ጽሑፍ ተመልሷል.
  9. ካልሆነ፣ “ያልተለመደ” የሚለው ጽሑፍ ተመልሷል።

አሁን እንዲህ ዓይነቱን ምሳሌ ተመልከት. ይህ ዑደት ምን ያህል ጊዜ እንደሚያልፍ ለማወቅ ይሞክሩ?

ጠቅላላ = 100 

i = 0

እኔ <5:

    n = int (ግቤት ())

    ጠቅላላ = ጠቅላላ - n

    እኔ = እኔ + 1 

ማተም ("ቀሪ", ጠቅላላ)

ትክክለኛው መልስ 5. መጀመሪያ ላይ, የተለዋዋጭ ዋጋ i - ዜሮ. አስተርጓሚው ተለዋዋጭ እኩል መሆኑን ይፈትሻል i 4 ወይም ከዚያ በታች። አዎ ከሆነ እሴቱ ተመልሷል። እውነተኛ, እና ዑደቱ በዚሁ መሰረት ይከናወናል. ዋጋው በአንድ ይጨምራል.

ከመጀመሪያው ድግግሞሽ በኋላ, የተለዋዋጭው ዋጋ 1 ይሆናል. ቼክ ይከናወናል, እና ፕሮግራሙ ይህ ቁጥር ከ 5 ያነሰ መሆኑን ይገነዘባል. በዚህ መሠረት, የ loop አካል ለሁለተኛ ጊዜ ይከናወናል. ደረጃዎቹ ተመሳሳይ ስለሆኑ እሴቱ እንዲሁ በአንድ ይጨምራል ፣ እና ተለዋዋጭው አሁን ከ 2 ጋር እኩል ነው።

ይህ ዋጋም ከአምስት ያነሰ ነው. ከዚያም ምልክቱ ለሶስተኛ ጊዜ ይከናወናል, ወደ ተለዋዋጭ ተጨምሯል i 1 እና እሴቱ ተሰጥቷል 3. ይህ እንደገና ከአምስት ያነሰ ነው. እና ስለዚህ ወደ ሉፕ ስድስተኛው ድግግሞሽ ይመጣል ፣ በዚህ ጊዜ የተለዋዋጭ እሴት i እኩል 5 (ከሁሉም በኋላ, በመጀመሪያ ዜሮ ነበር, እስከምናስታውሰው ድረስ). በዚህ መሠረት, ይህ ሁኔታ ፈተናውን አያልፍም, እና ዑደቱ በራስ-ሰር ይቋረጣል እና ወደ ቀጣዩ ደረጃ ሽግግር, ከእሱ ውጭ (ወይም የፕሮግራም መቋረጥ, የሚከተሉት እርምጃዎች ካልተሰጡ) ይከናወናል.

ዑደቱም በተቃራኒ አቅጣጫ ሊከሰት ይችላል. በእያንዳንዱ ቀጣይ ድግግሞሽ አንዱ ከተለዋዋጭ የአሁኑ ዋጋ የሚቀነስበት የኮድ ምሳሌ እዚህ አለ። 

ጠቅላላ = 100 

በአጠቃላይ > 0:

    n = int (ግቤት ())

    ጠቅላላ = ጠቅላላ - n 

ማተም ("ሀብት ተሟጧል")

ይህ ፕሮግራም ምን እንደሚሰራ ለመገመት ይሞክሩ! በተለዋዋጭ ውስጥ አስቡት ጠቅላላ ስለ ፕሮግራሙ ምንጭ መረጃ ተከማችቷል. በእያንዳንዱ ጊዜ አስተርጓሚው ሀብቱ መኖሩን ያረጋግጣል። ካልሆነ "ሀብቱ ተሟጥጧል" የሚለው ጽሑፍ ይታያል እና ፕሮግራሙ ይዘጋል. እና በእያንዳንዱ የ loop ድግግሞሽ ፣ ሀብቱ ተጠቃሚው በገለፀው ቁጥር ይቀንሳል።

እና አሁን የቤት ስራ. ተለዋዋጭው በአካል አሉታዊ መሆን እንዳይችል ከላይ ያለውን ኮድ ለመቀየር ይሞክሩ። 

4 አስተያየቶች

መልስ ይስጡ