ሁኔታዊ መግለጫ ከሆነ Python ውስጥ. አገባብ፣ ሌላ/ኤሊፍ ብሎኮች፣ ምሳሌዎች

በፕሮግራም ለመማር ሂደት ብዙውን ጊዜ በእውነተኛ ህይወት ውስጥ ለመተግበር ቀላል ያልሆኑ ፕሮግራሞችን መፍጠር አስፈላጊ ነው. ከሁሉም በላይ, ከጊዜ ወደ ጊዜ መመሪያዎችን መከተል ያለብዎት በተወሰኑ ሁኔታዎች ውስጥ ብቻ ነው. ይህንን በፕሮግራሙ ውስጥ ተግባራዊ ለማድረግ ሁሉም ቋንቋዎች የቁጥጥር መግለጫዎች አሏቸው። በእነሱ እርዳታ የኮድ አፈፃፀምን ፍሰት መቆጣጠር ፣ loops መፍጠር ወይም የተወሰኑ እርምጃዎችን ማከናወን አንድ የተወሰነ ሁኔታ እውነት በሚሆንበት ጊዜ ብቻ ነው ።

ዛሬ ስለ መግለጫው እንነጋገራለን, ለተወሰነ ሁኔታ ወቅታዊውን ሁኔታ የሚፈትሽ እና በዚህ መረጃ ላይ በመመርኮዝ ስለ ተጨማሪ እርምጃዎች ውሳኔ ይሰጣል.

የቁጥጥር መግለጫ ዓይነቶች

በአጠቃላይ የፕሮግራሙን ፍሰት የሚቆጣጠረው መግለጫ ብቻ ካልሆነ። እንዲሁም እሱ ራሱ የአንድ ትልቅ የኦፕሬተሮች ሰንሰለት አካል ሊሆን ይችላል.

የአፈፃፀሙን ሂደት የሚቆጣጠሩ ቀለበቶች እና መግለጫዎችም አሉ. ዛሬ ስለ ሁኔታዊ ኦፕሬተር እና ሊሳተፍባቸው ስለሚችሉት ሰንሰለቶች ብቻ እንነጋገራለን.

በፕሮግራም አወጣጥ ውስጥ, እንደ ቅርንጫፍ (ቅርንጫፍ) አይነት ነገር አለ. በትክክል ይህ ማለት አንድ የተወሰነ ሁኔታ እውነት ከሆነ ብቻ የሚፈጸመው የትዕዛዝ ቅደም ተከተል ነው. መመዘኛዎቹ እራሳቸው የተለየ ሊሆኑ ይችላሉ-

  1. የአንድ የተወሰነ እሴት እኩልነት።
  2. አንድ የተወሰነ ተግባር በማከናወን ላይ።
  3. የመተግበሪያ ሁኔታ (ተበላሽቷል ወይም አይደለም).

ስፔክትረም በጣም ትልቅ ሊሆን ይችላል. ሁኔታዊ መግለጫዎች በተለያዩ ዓይነቶች ይመጣሉ።

  1. ከአንድ ቅርንጫፍ ጋር። ያም ማለት አንድ ነጠላ ቼክ ይከናወናል, በዚህም ምክንያት የተወሰኑ ድርጊቶች ይከናወናሉ.
  2. በሁለት ወይም ከዚያ በላይ ቅርንጫፎች. መስፈርት 1 እውነት ከሆነ፣ መስፈርቱን 2 ያረጋግጡ። እውነት ከሆነ፣ ከዚያ 3 ያረጋግጡ። እና ስለዚህ፣ የሚፈለገውን ያህል ቼኮች ያድርጉ።
  3. ከበርካታ ሁኔታዎች ጋር. እዚህ ሁሉም ነገር ቀላል ነው. አስተርጓሚው ብዙ ሁኔታዎችን ወይም አንዱን ይፈትሻል።

መግለጫ ከሆነ

የአረፍተ ነገር አወቃቀሩ በሁሉም ቋንቋዎች ተመሳሳይ ነው። ሆኖም፣ በፓይዘን፣ አገባቡ ከሌሎቹ በተወሰነ መልኩ የተለየ ነው፡-

ሁኔታ ከሆነ:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

በመጀመሪያ, ኦፕሬተሩ ራሱ ይገለጻል, ከዚያ በኋላ ሥራ የሚጀምርበት ሁኔታ ይጻፋል. ሁኔታው እውነት ወይም ሐሰት ሊሆን ይችላል.

ይህ ከትእዛዞች ጋር እገዳ ይከተላል. ወዲያውኑ መሟላት ያለበትን መስፈርት ከተከተለ፣ ተጓዳኝ የትዕዛዝ ቅደም ተከተል አግድ ተብሎ ይጠራል። በእሱ ውስጥ ማንኛውንም የትዕዛዝ ብዛት መጠቀም ይችላሉ።

ትኩረት! የማገጃ ትዕዛዞች ከሆነ በሁሉም ውስጥ ያለው ገብ መጠን ተመሳሳይ መሆን አለበት። የማገጃው ድንበሮች በመግቢያዎቹ ይወሰናሉ. 

በቋንቋ ሰነዱ መሰረት, ውስጠቱ 4 ቦታዎች ነው. 

ይህ ኦፕሬተር እንዴት ነው የሚሰራው? አስተርጓሚው ቃሉን ሲመለከት ወዲያውኑ አገላለጹን በተጠቃሚው ከተገለጹት መስፈርቶች ጋር ይፈትሻል። ጉዳዩ ይህ ከሆነ መመሪያዎችን መፈለግ እና እነሱን መከተል ይጀምራል. ያለበለዚያ ፣ ከዚህ ብሎክ የሚመጡ ሁሉም ትዕዛዞች ተዘለዋል ።

ከበሽታው በኋላ ያለው መግለጫ ካልተሰበረ እንደ እገዳ አይቆጠርም. በእኛ ሁኔታ, ይህ መስመር ነው . ስለዚህ, የቼኩ ውጤት ምንም ይሁን ምን, ይህ መስመር ይከናወናል.

ይህ ኦፕሬተር እንዴት እንደሚሰራ ምሳሌ የሚሆን የኮድ ቅንጣቢ እዚህ አለ።

ቁጥር = int (ግቤት ("ቁጥር አስገባ: "))

ቁጥር > 10 ከሆነ:

    ማተም ("ቁጥሩ ከ 10 በላይ ነው")

ይህ ፕሮግራም ለተጠቃሚው ቁጥር ይጠይቀዋል እና ከ 10 በላይ ከሆነ ያጣራል. ከሆነ, ተገቢውን መረጃ ይመልሳል. ለምሳሌ, ተጠቃሚው ቁጥር 5 ን ከገባ, ፕሮግራሙ በቀላሉ ያበቃል, እና ያ ነው.

ነገር ግን 100 ቁጥርን ከገለጹ, አስተርጓሚው ከአስር በላይ እንደሆነ ተረድቶ ሪፖርት አድርግ.

ትኩረት! በእኛ ሁኔታ, ሁኔታው ​​​​ሐሰት ከሆነ, ፕሮግራሙ ይቆማል, ምክንያቱም ከመመሪያው በኋላ ምንም ትዕዛዞች አልተሰጡም.

ከላይ ባለው ኮድ ውስጥ አንድ ትዕዛዝ ብቻ አለ. ግን ብዙ ተጨማሪዎች አሉ. መስፈርቱ መግባት ብቻ ነው።

አሁን ይህንን የትዕዛዝ ቅደም ተከተል እንመርምር።

ቁጥር = int (ግቤት (“ቁጥር ጻፍ:”))

ቁጥር > 10 ከሆነ:

    ማተም ("የመጀመሪያው መስመር")

    ማተም ("ሁለተኛ መስመር")

    ማተም ("ሦስተኛ መስመር")

ማተም ("የተሰራው መስመር ፣ የገባው ቁጥር ምንም ይሁን ምን")

ማተም ("መተግበሪያን ጨርስ")

እሴቶቹን 2, 5, 10, 15, 50 ካስገቡ ውጤቱ ምን እንደሚሆን ለመገመት ይሞክሩ.

እንደሚመለከቱት ፣ በተጠቃሚው የገባው ቁጥር ከአስር በላይ ከሆነ ፣ ከዚያ ሶስት መስመሮች ይወጣሉ + አንድ “ሁልጊዜ አሂድ…” እና አንድ “መጨረሻ” በሚለው ጽሑፍ ፣ እና ከአስር በታች ከሆነ ፣ ከዚያ አንድ ብቻ ፣ በ የተለየ ጽሑፍ. እውነት ከሆነ መስመር 3,4,5፣XNUMX፣XNUMX ብቻ ነው የሚፈጸመው። ይሁን እንጂ ተጠቃሚው የፈለገውን ቁጥር ቢገልጽ የመጨረሻዎቹ ሁለት መስመሮች ይጻፋሉ.

መግለጫዎቹን በቀጥታ በኮንሶል ውስጥ ከተጠቀሙ ውጤቱ የተለየ ይሆናል. የማረጋገጫ መስፈርትን ከገለጸ በኋላ አስገባን ከተጫኑ አስተርጓሚው ወዲያውኑ የባለብዙ መስመር ሁነታን ያበራል.

የሚከተለውን የትዕዛዝ ቅደም ተከተል ጽፈናል እንበል።

>>>

>>> n = 100

>>> ከሆነ n > 10:

...

ከዚያ በኋላ, >>> በ ellipsis ተተክቷል እናያለን. ይህ ማለት ባለብዙ መስመር ግቤት ሁነታ ነቅቷል ማለት ነው. በቀላል ቃላቶች አስገባን ከጫኑ, ወደ መመሪያው ሁለተኛ ደረጃ ግቤት ይዛወራሉ. 

እና ከዚህ እገዳ ለመውጣት አንድ ተጨማሪ ግንባታ ወደ እገዳው መጨመር ያስፈልግዎታል if.

>>>

>>> n = 100

>>> ከሆነ n > 10:

… ማተም («nv 10»)

...

ሁኔታው እውነት ካልሆነ, ፕሮግራሙ ያበቃል. ይህ ችግር ነው፣ ምክንያቱም ተጠቃሚው እንደዚህ አይነት ፕሮግራም በመጥፋቱ ምክንያት እንደተዘጋ ሊገነዘበው ይችላል። ስለዚህ, ለተጠቃሚው ግብረመልስ መስጠት አስፈላጊ ነው. ለዚህም, ማገናኛ ጥቅም ላይ ይውላል ከሆነ-.

መግለጫ ኦፕሬተር ከሆነ-

ይህ ኦፕሬተር አገናኝን እንዲተገብሩ ይፈቅድልዎታል-አገላለጹ ከተወሰነ ህግ ጋር የሚዛመድ ከሆነ እነዚህን ድርጊቶች ያከናውኑ, እና ካልሆነ, ከዚያ ሌሎች. ያም ማለት የፕሮግራሙን ፍሰት በሁለት መንገዶች ለመከፋፈል ያስችልዎታል. አገባቡ የሚታወቅ ነው፡-

ሁኔታ ከሆነ:

    # ከታገደ

    መግለጫ 1

    መግለጫ 2

    እናም ይቀጥላል

ሌላ

    # ሌላ አግድ

    መግለጫ 3

    መግለጫ 4

    እናም ይቀጥላል:

ይህ ኦፕሬተር እንዴት እንደሚሰራ እናብራራ። በመጀመሪያ ደረጃ, መደበኛ መግለጫው በክር ውስጥ ይከናወናል አዎ፣ የሚዛመድ መሆኑን በማጣራት ላይ ሁኔታ "እውነት ወይም ሐሰት". ተጨማሪ ድርጊቶች በቼክ ውጤቶች ላይ ይወሰናሉ. እውነት ከሆነ, ሁኔታውን ተከትሎ በመመሪያዎች ቅደም ተከተል ውስጥ ያለው መመሪያ በቀጥታ ይከናወናል. አዎ፣ ውሸት ከሆነ ታዲያ ያለዚያ

በዚህ መንገድ ስህተቶችን ማስተናገድ ይችላሉ. ለምሳሌ, ተጠቃሚው ራዲየስ ማስገባት አለበት. በግልጽ፣ የመደመር ምልክት ያለው ቁጥር ብቻ ሊሆን ይችላል፣ ወይም ባዶ እሴት ነው። ከ0 በታች ከሆነ ፖዘቲቭ ቁጥር እንዲያስገቡ የሚጠይቅ መልእክት መላክ ያስፈልግዎታል። 

ይህንን ተግባር የሚተገበረው ኮድ ይኸውና. ግን እዚህ አንድ ስህተት አለ. የትኛው እንደሆነ ለመገመት ይሞክሩ. 

ራዲየስ = int (ግቤት ("ራዲየስ አስገባ: "))

ራዲየስ >= 0 ከሆነ:

    ማተም ("ክበብ = ", 2 * 3.14 * ራዲየስ)

    ማተም ("አካባቢ = ", 3.14 * ራዲየስ ** 2)

    ሌላ

        ማተም ("እባክዎ አዎንታዊ ቁጥር ያስገቡ")

የመግቢያ አለመዛመድ ስህተት። ከሆነ እና ሌላ ያለ እነርሱ ወይም ተመሳሳይ ቁጥር ያላቸው መሆን አለባቸው (እንደ ጎጆው ወይም እንዳልተቀመጡ ይወሰናል).

ሌላ የአጠቃቀም ጉዳይ እንስጥ (ሁሉም ነገር ከኦፕሬተር አሰላለፍ ጋር ትክክል ይሆናል) - የይለፍ ቃል የሚፈትሽ የመተግበሪያ አካል።

የይለፍ ቃል = ግቤት ("የይለፍ ቃል አስገባ:")

የይለፍ ቃል ከሆነ == «sshh»:

    ማተም ("እንኳን ደህና መጣህ")

ሌላ

    ማተም ("መዳረሻ ተከልክሏል")

የይለፍ ቃሉ shsh ከሆነ ይህ መመሪያ ሰውየውን የበለጠ ይዘላል። ሌላ የፊደል እና የቁጥሮች ጥምረት ካለ “መዳረሻ ተከልክሏል” የሚለውን መልእክት ያሳያል።

መግለጫ-አገላለጽ-ኤሊፍ-ሌላ

ብዙ ሁኔታዎች እውነት ካልሆኑ ብቻ በእገዳው ውስጥ ያለው መግለጫ ይፈጸማል. ያለዚያ. ይህ አገላለጽ እንደዚህ ይሰራል.

ሁኔታ_1 ከሆነ፡

    # ከታገደ

    ሐሳብ

    ሐሳብ

    ተጨማሪ መግለጫ

ኤሊፍ ሁኔታ_2:

    # የመጀመሪያ ኤሊፍ ብሎክ

    ሐሳብ

    ሐሳብ

    ተጨማሪ መግለጫ

ኤሊፍ ሁኔታ_3:

    # ሁለተኛ ኤሊፍ ብሎክ

    ሐሳብ

    ሐሳብ

    ተጨማሪ መግለጫ

...

ያለዚያ

    ሐሳብ

    ሐሳብ

    ተጨማሪ መግለጫ

ማንኛውንም ተጨማሪ ሁኔታዎችን መግለጽ ይችላሉ.

የጎጆ መግለጫዎች

ብዙ ሁኔታዎችን ተግባራዊ ለማድረግ ሌላኛው መንገድ በብሎክ ውስጥ ተጨማሪ የሁኔታ ፍተሻዎችን ማስገባት ነው።

ስልከኛ if በሌላ ሁኔታ እገዳ ውስጥ

gre_score = int (ግቤት ("አሁን ያለውን የክሬዲት ገደብ አስገባ"))

per_grad = int (ግቤት (“የክሬዲት ደረጃዎን ያስገቡ፡”))

በአንድ_ግራድ > 70 ከሆነ፡

    # ውጫዊ ከታገደ

        gre_score > 150 ከሆነ፡

            # ከውስጥ ከታገደ

    ህትመት ("እንኳን ደስ አለዎት ብድር ተቀብለዋል")

ሌላ

    ማተም ("ይቅርታ፣ ብድር ለማግኘት ብቁ አይደለህም")

ይህ ፕሮግራም የክሬዲት ደረጃ ማረጋገጫን ያከናውናል. ከ 70 በታች ከሆነ, ፕሮግራሙ ተጠቃሚው ለክሬዲት ብቁ እንዳልሆነ ሪፖርት ያደርጋል. የበለጠ ከሆነ, አሁን ያለው የብድር ገደብ ከ 150 በላይ መሆኑን ለማረጋገጥ ሁለተኛ ቼክ ይደረጋል. አዎ ከሆነ, ከዚያም ብድር እንደተሰጠው መልእክት ይታያል.

ሁለቱም እሴቶች ውሸት ከሆኑ ተጠቃሚው ብድር የማግኘት እድል እንደሌለው የሚገልጽ መልእክት ይታያል። 

አሁን ያንን ፕሮግራም ትንሽ እንደገና እንስራው።

gre_score = int (ግቤት ("የአሁኑን ገደብ አስገባ: "))

per_grad = int (ግቤት ("የክሬዲት ነጥብ አስገባ: "))

በአንድ_ግራድ > 70 ከሆነ፡

    gre_score > 150 ከሆነ፡

        ህትመት ("እንኳን ደስ አለዎት ብድር ተቀብለዋል")

    ሌላ

        ማተም ("የእርስዎ የብድር ገደብ ዝቅተኛ ነው")

ሌላ

    ማተም ("ይቅርታ፣ ለክሬዲት ብቁ አይደለህም")

ኮዱ ራሱ በጣም ተመሳሳይ ነው, ግን ጎጆ ነው if ሁኔታው ሐሰት ሆኖ ከተገኘ ስልተ ቀመርም ይሰጣል። ያም ማለት በካርዱ ላይ ያለው ገደብ በቂ አይደለም, ነገር ግን የብድር ታሪክ ጥሩ ነው, "ዝቅተኛ የብድር ደረጃ አለዎት" የሚለው መልእክት ይታያል.

ካልሆነ በሁኔታ ውስጥ መግለጫ ያለዚያ

በፈተና ውጤቶች መሰረት የተማሪን ውጤት የሚወስን ሌላ ፕሮግራም እንስራ።

score = int (ግቤት ("ውጤትዎን ያስገቡ: "))

ነጥብ ከሆነ >= 90:

    ህትመት ("በጣም ጥሩ! ክፍልዎ A ነው")

ሌላ

    ነጥብ ከሆነ >= 80:

ህትመት ("በጣም ጥሩ! ክፍልህ B ነው")

    ሌላ

ነጥብ ከሆነ >= 70:

    ማተም ("ጥሩ! ክፍልህ ሐ ነው")

ሌላ

    ነጥብ ከሆነ >= 60:

ማተም ("የእርስዎ ክፍል D ነው. ቁሱን መድገም ጠቃሚ ነው.")

    ሌላ

ማተም ("ፈተናውን ወድቀዋል")

አፕሊኬሽኑ መጀመሪያ ውጤቱ ከ90 በላይ ወይም እኩል መሆኑን ያረጋግጣል። አዎ ከሆነ፣ ከዚያ A ግሬድ ይመልሳል። ይህ ሁኔታ ሐሰት ከሆነ, ከዚያም ተከታይ ቼኮች ይከናወናሉ. በመጀመሪያ እይታ ስልተ ቀመር ከሞላ ጎደል ተመሳሳይ መሆኑን እናያለን። ስለዚህ ወደ ውስጥ ከመፈተሽ ይልቅ ያለዚያ ጥምረት መጠቀም የተሻለ ነው ከሆነ-ኤሊፍ-ሌላ.

ስለዚህ ኦፕሬተሩ if በጣም አስፈላጊ የሆነ ተግባር ያከናውናል - አስፈላጊ ከሆነ የተወሰኑ የኮድ ቁርጥራጮች መፈጸሙን ያረጋግጣል. ያለ እሱ ፕሮግራሚንግ ማሰብ አይቻልም ፣ ምክንያቱም በጣም ቀላል የሆኑት ስልተ ቀመሮች እንኳን “ወደ ግራ ከሄዱ ያገኙታል ፣ እና ወደ ቀኝ ከሄዱ ታዲያ ይህንን እና ያንን ማድረግ ያስፈልግዎታል” እንደ ሹካዎች ይፈልጋሉ ።

መልስ ይስጡ