Checkpoint፦ መጀመር
የመጀመሪያውን ክፍል ጨርሳችኋል። ይህ ማጠቃለያ ሁሉንም ያገናኛል፦ ጥቂት ፈጣን ጥያቄዎች፣ የሚነበቡ ፕሮግራሞች፣ የሚጠገን ፕሮግራም፣ እና ከባዶ የሚጻፍ አንድ ፕሮግራም። እዚህ አዲስ ሐሳብ የለም፤ ልምምድ ብቻ ነው፤ ሁሉም በbrowser ውስጥ ይሰራል። አንድ ነገር ካልተረጋጋላችሁ የመጣበት ትምህርት በኮርሱ ካርታ ላይ ይገኛል፤ ወደኋላ መመለስ የመማር አካል ነው እንጂ ውድቀት አይደለም።
አሁን የምታውቁት
በአምስት ትምህርቶች «የፕሮግራሚንግ ቋንቋ ምንድን ነው» ከሚለው ጥያቄ ተነስታችሁ እውነተኛ ፕሮግራሞችን ወደ መጻፍ፣ ማስኬድና ማስተካከል ደርሳችኋል። አጭሩ ማጠቃለያ ይኸውና።
ፕሮግራም የትክክለኛ መመሪያዎች ዝርዝር ነው። Python
ቋንቋ ነው፦ ኮዳችሁን ከላይ ጀምሮ ያነባል፤ እያንዳንዱን መስመር በተራ ያስኬዳል። የምታስኬዱት ከሁለት መንገዶች በአንዱ ነው፦ በአንድ ጊዜ አንድ መስመር በሚመልሰው interactive shell፣ ወይም ከላይ እስከ ታች በሚሰራው .py ፋይል፣ ማለትም script።
print እሴቶችን በስክሪኑ ላይ ያሳያል። ጽሑፍ በትምህርተ ጥቅስ ውስጥ ይገባል፤ ቁጥሮች አይገቡም፤ Python በእነሱ ሒሳብ መስራት ይችላል። ኮማዎች ለprint በክፍት ቦታ የሚለያዩ ብዙ እሴቶችን ይሰጣሉ፤ sep በመካከላቸው የሚገባውን፣ end ደግሞ በኋላ የሚመጣውን ይቀይራል።
ኮሜንቶች በ# ይጀምራሉ፤ Python ችላ ይላቸዋል። በመስመር መጀመሪያ ያሉ ክፍት ቦታዎች ዋጋ አላቸው። አንድ ነገር ሲበላሽ ደግሞ የስህተቱ የመጨረሻ መስመር ችግሩ ምን ዓይነት እንደሆነ ይነግራችኋል።
ከዚህ ውስጥ የማይታወቅ የሚመስል ነገር ካለ፣ እያንዳንዱ ሐሳብ የሚገኝበት ቦታ ይኸውና፦
- ፕሮግራሞች፣ የፕሮግራሚንግ ቋንቋዎች እና "interpreted"፦ ትምህርት 0.1፣ Python ምንድን ነው?
- Pythonን መጫንና ተርሚናሉ፦ ትምህርት 0.2።
print፣sep፣endእና የመጀመሪያ ስህተቶቻችሁ፦ ትምህርት 0.3፣ የመጀመሪያ ፕሮግራማችሁ።- shell እና scripts፦ ትምህርት 0.4፣ Pythonን የማስኬጃ ሁለት መንገዶች።
- ኮሜንቶች፣ ኢንደንቴሽን እና PEP 8፦ ትምህርት 0.5።
ወደ ላይ ሳትመለሱ እነዚህን መልሱ። እርግጠኛ ባትሆኑም መልስ ምረጡ፤ ማብራሪያው ለምን እንደሆነ ይነግራችኋል። እዚህ መሳሳት ምንም አያስከፍልም፤ የትኛው ትምህርት እንደገና መታየት እንዳለበትም በትክክል ይነግራችኋል።
ጥያቄ
print("Birr", 250, sep="") ምን ያሳያል?
ጥያቄ
በscript ውስጥ 10 * 3 ብቻ የያዘ መስመር ምን ያሳያል?
ጥያቄ
በPython shell ውስጥ python3 --version ጽፋችሁ NameError አገኛችሁ። ምን ተሳሳተ?
ጥያቄ
print("Hi) የትኛውን ስህተት ያስከትላል?
ጥያቄ
print("5 + 5") ምን ያሳያል?
ጥያቄ
የአንድ script ብቸኛ መስመር # print("Selam") ነው። ስታስኪዱት ምን ይሆናል?
ከማስኬዳችሁ በፊት አንብቡ
ኮድን በጥንቃቄ ማንበብና የሚያደርገውን መገመት የፕሮግራሚንግ አብዛኛው ክፍል ነው። ማንኛውንም ነገር ከማስኬዳችሁ በፊት ምን እንደሚያሳይ፣ ቢያንስ በግምት፣ መናገር መቻል አለባችሁ። እውነተኛው ውጤት ሲያስገርማችሁ ያ መገረም ቆም ብላችሁ ልታስቡበት የሚገባ ነው፦ Python እንዴት እንደሚሰራ ያላችሁ ምስል አንድ ትንሽ ማስተካከያ ያስፈልገዋል ማለት ነው።
ይህኛው የend ቅንብሮችን ያቀላቅላል። ከእያንዳንዱ print በኋላ ጠቋሚው (cursor) የት እንዳለ እየተከታተላችሁ መስመር በመስመር ስሩት።
ውጤቱን ገምቱ
Decide before you look. Guessing wrong is how this sticks.
print("Loading", end="")
print("...", end=" ")
print("done")Python prints
Loading... done
የመጀመሪያው print በምንም ያልቃል፤ ስለዚህ ... ወዲያውኑ ከLoading በኋላ ይከተላል። ሁለተኛው በአዲስ መስመር ፋንታ በክፍት ቦታ ያልቃል፤ ስለዚህ done ከዚያ ክፍት ቦታ በኋላ ይመጣል።
የሚቀጥሉት ሁለቱ በስህተት ይቆማሉ። ከስህተቱ በፊት ምን እንደሚታይና የትኛው ስህተት እንደሆነ ገምቱ። ስትገልጡት የእውነተኛውን ውጤት የመጨረሻ መስመር ተመልከቱ።
ውጤቱን ገምቱ
Decide before you look. Guessing wrong is how this sticks.
print("Start")
Print("Middle")
print("End")Python prints
Start
Traceback (most recent call last):
File "<your code>", line 2, in <module>
Print("Middle")
^^^^^
NameError: name 'Print' is not defined. Did you mean: 'print'?መስመር 1 ይሰራል፤ Startንም ያሳያል። መስመር 2 በትልቅ P የተጻፈውን Printን ይጠቀማል፤ ይህ Python የማያውቀው ስም ነው፤ ስለዚህ እዚያ በNameError ይቆማል፤ printንም ይጠቁማል። መስመር 3 ፈጽሞ አይሰራም፤ ስለዚህ End ፈጽሞ አይታይም።
ውጤቱን ገምቱ
Decide before you look. Guessing wrong is how this sticks.
print("Start")
print("Middle)
print("End")Python prints
File "<your code>", line 2
print("Middle)
^
SyntaxError: unterminated string literal (detected at line 2)በዚህ ጊዜ Start እንኳ አይታይም። የጎደለ ትምህርተ ጥቅስ የPythonን ሰዋሰው ያበላሻል፤ Python ደግሞ ማንኛውንም መስመር ከማስኬዱ በፊት የሙሉውን ፋይል ሰዋሰው ይፈትሻል። ስህተቱ ስትሪንጉ የሚጀምርበትንና ፈጽሞ የማያልቅበትን መስመር 2ን ያመለክታል።
ፕሮግራሙን አስተካክሉ
ይህ ፕሮግራም ስለ አንድ ቡና ቤት ሦስት መስመሮችን ማሳየት ነበረበት፤ ግን ሦስት ስህተቶች አሉበት። አስኪዱት (run)፣ የስህተቱን የመጨረሻ መስመር አንብቡ፣ ያንን አንድ ነገር አስተካክሉ፣ እንደገና አስኪዱት። ይህን እስኪያሳይ ድረስ ድገሙ፦
Selam Coffee
Open every day
Bole Road, Addis Ababaprint("Selam Coffee)
prnt("Open every day")
print("Bole Road, Addis Ababa")In the editor, press Escape then Tab to move on.
Python ስህተቶቹን የዘገበበትን ቅደም ተከተል አስተውሉ። prnt በመስመር 2 ላይ ቢሆንም የጎደለው ትምህርተ ጥቅስና የባዘነው ኢንደንቴሽን ሁለቱም በስህተት ከተጻፈው prnt በፊት መጡ። Python መጀመሪያ ሙሉው ፋይል ሰዋሰዉን መከተሉን ይፈትሻል፤ ከዚያ ብቻ መስመሮችን ማስኬድ ይጀምራል። የሰዋሰው ስህተቶች (SyntaxError፣ IndentationError) ሁሉንም ነገር ያቆማሉ፤ NameError ግን የሚታየው Python ያ መስመር ላይ ሲደርስ ብቻ ነው።
ከተቸገራችሁ ሦስቱ ማስተካከያዎች እነዚህ ነበሩ፦ ከSelam Coffee በኋላ ትምህርተ ጥቅሱን መዝጋት፣ prntን ወደ print ማስተካከል፣ እና የመጨረሻው መስመር እንደሌሎቹ ከጠርዙ እንዲጀምር ከፊቱ ያሉትን ክፍት ቦታዎች ማጥፋት።
አሁን ከምንም ነገር አንድ ነገር ገንቡ። ማንኛውንም ፕሮግራም፣ ምንም ያህል ትንሽ ቢሆን፣ ለመጻፍ ጥሩው መንገድ በአንድ ጊዜ አንድ መስመር ነው፦ የመጀመሪያውን መስመር ጻፉ፣ አስኪዱት፣ ከምትፈልጉት ጋር አነጻጽሩት፣ ከዚያ ቀጣዩን ጨምሩ። ስህተቶችን ትንሽና በቀላሉ የሚገኙ ሳሉ ትይዟቸዋላችሁ።
መልመጃ
የካፌ ደረሰኝ አሳዩ
ይህን ደረሰኝ በትክክል የሚያሳይ ፕሮግራም ጻፉ። ቀኑን በsep አሳዩ፤ Date:ን ደግሞ endን ተጠቅማችሁ በዚያው መስመር ላይ አድርጉ። 95ን ራሳችሁ ከመጻፍ ይልቅ ድምሩን በ+ አስሉ፤ ፕሮግራሙ ለምን እንደሆነ የሚናገር ኮሜንትም ከላይ ጨምሩ። ውጤታችሁ ሲገጥም ከኮድ ሳጥኑ ስር ያለው ማስታወሻ ይነግራችኋል።
Selam Coffee
Date: 29/09/2026
------------
Macchiato 45 birr
Sambusa 30 birr
Water 20 birr
------------
Total: 95 birr
Thank you, come again!receipt.py
# በSelam Coffee ለአንድ ትዕዛዝ የሚሰጥ ደረሰኝIn the editor, press Escape then Tab to move on.
መፍትሄውን አሳይHide the solution
This is one way to solve it, not the only one. If yours prints the same thing, it works.
# በSelam Coffee ለአንድ ትዕዛዝ የሚሰጥ ደረሰኝ
print("Selam Coffee")
print("Date:", end=" ")
print("29", "09", "2026", sep="/")
print("------------")
print("Macchiato", 45, "birr")
print("Sambusa", 30, "birr")
print("Water", 20, "birr")
print("------------")
print("Total:", 45 + 30 + 20, "birr")
print("Thank you, come again!")ደረሰኛችሁ ሲገጥም የShallowsን የመጀመሪያ ክፍል ጨርሳችኋል። ቀጥሎ ክፍል 1 ይመጣል፤ እዚያ ለእሴቶች ስም ትሰጣላችሁ፤ ያኔ 45 macchiato_price ሊሆን፣ ደረሰኝም ራሱን ሊደምር ይችላል። በትምህርት 1.1፣ ስሞች (variables) ጀምሩ።
ዋና ዋና ነጥቦች
- Python መጀመሪያ የሙሉውን ፋይል ሰዋሰው ይፈትሻል፤
SyntaxErrorእናIndentationErrorማንኛውም መስመር ከመሰራቱ በፊት ያቆሙታል። NameErrorየሚታየው Python የማይታወቀው ስም ያለበት መስመር ላይ ሲደርስ ብቻ ነው።- በአንድ ጊዜ አንድ ስህተት አስተካክሉ፤ Python ከዘገበው ጀምራችሁ።
print፣sep፣end፣ ኮሜንቶችና ሒሳብ እውነተኛ፣ ጠቃሚ ውጤት ለመገንባት በቂ ናቸው።