კურსის შიგთავსი
შესავალი და კურსის შესახებ
ინფორმაცია კურსის შესახებ. გამოყენებული ხელსაწყოები. სერტიფიკატები.
0/4
კომენტარები და ფსევდო კოდი
0/2
და თუ დაემთხვევა? | Match
0/1
დავალებები 7
0/1
დავალებები 8
0/1
ფინალური პროექტი
0/1
Python პროგრამირების საფუძვლები

წარმოიდგინე რომ ცხოვრობ ქვეყანაში სადაც საუზმეს 7:00 – დან 8:00 – მდე შუალედში მიირთმევენ. ლანჩი 12:00 – დან 13:00 – მდეა. სადილი 18:00 – დან 19:00 – მდე. კარგი იქნებოდა გვქონოდა პროგრამა რომელიც გვეტყოდა არის თუ არა რომელიმე კვების დრო.

დავალება

ფაილში სახელად meal.py შექმენი პროგრამა რომელიც მომხმარებელს ჰკითხავს შეიყვანოს მიმდინარე დრო და ეტყვის – breakfast time, lunch time ან dinner time. თუ დრო არცერთ კვებას არ ემთხვევა, არ დაუბრუნო არაფერი. 

გაითვალისწინე რომ მომხმარებლის მიერ შეყვანილი ინფორმაცია იქნება 24 საათიანი ფორმატირებით, ასე #:## ან ასე ##:##. ასევე გაითვალისწინე რომ თითოეული კვების დროების დიაპაზონები “ინკლუზიურია”. ანუ არ აქვს მნიშვნელობა 7:00 , 7:01, 7:59 თუ 8:00 – ყველა ამ შემთხვევაში საუზმის დროა. 

შენი პროგრამის სტრუქტურა უნდა იყოს ზუსტად ისეთი როგორც ქვემოთ მოცემული კოდია. უნდა გქონდეს convert ფუნქცია რომელიც გამოყენებული იქნება main ფუნქციაში. convert ფუნქციის დანიშნულება იქნება გადაიყვანოს ტექსტის სახით მოცემული დრო წილად რიცხვით მნიშვნელობაში (float).

ასე მაგალითად: თუ convert ფუნქციას გადავცემთ დროს ამ სახით “7:30” მან უნდა დაგვიბრუნოს 7.5. (აქვე გაიხსენე რომ საათში 60 წუთია 🙂 )

def main():
    ...


def convert(time):
    ...


if __name__ == "__main__":
    main()

არ დაგაბნიოს კოდის ბოლოს დამატებულმა if ბლოკმა: 

if __name__ == "__main__":
    main()

ახლა შეიძლება ჯერ ვერ ხვდები რა დანიშნულება აქვს ამ ბლოკს, მაგრამ უბრალოდ დააკოპირე შენს კოდში ამჯერად. ის საჭიროა იმისთვის რომ ავტომატურმა ტესტირების სიტემამ შეძლოს convert ფუნქციის სწორად გატესტვა და მის გარეშე ავტომატურ ტესტებს ვერ გაივლი. არ იდარდო, მომდევნო თავებში დეტალურად აგიხსნი რა საჭიორა ეს ბლოკი და მალე ყველგან გამოვიყენებთ ხოლმე.

 

მინიშნებები:

    • გაიხსენე რომ str – ს საკმაოდ ბევრი სასარგებლო მეთოდი აქვს: https://docs.python.org/3/library/stdtypes.html#string-methods მათ შორის split() – იც, რომელსაც  შეუძლია სტრიქონის გახლეჩვა კონკრეტული გამყოფის მიხედვით. ამ შემთხვევაში შეგვიძლია გავხლიჩოთ ორწერტილზე (:) მიღებული ნახლეჩების თანმიმდევრობის მნიშვნელობები კი შეგიძლია სათითაოდ შეინახო ცვლადებში. მაგალითად თუ მომხმარებელი შეიყვანს 7:30 – ს, მაშინ ეს კოდი მოგცემს მნიშვნელობებს hours და minutes ცვლადებში:
      hours, minutes = time.split(":")

სანამ დაიწყებ

  1. Terminal – ში გაუშვი ბრძანება cd – ამ ბრძანების გაშვებით თავს დაიზღვევ რომ ნამდვილად შენს მთავარ ფოლდერში ხარ. 
  2. შემდეგ ისევ Terminal – ში გაუშვი ბრძანება mkdir meal – ამ ბრძანებით შექმნი ახალ ფოლდერს სახელად meal შენი დავალებისთვის.
  3. შემდეგ გაუშვი cd meal - ამ ბრძანებით შეხვალ შენს მიერ შექმნილ meal ფოლდერში. 
  4. ახლა ამ ფოლდერში შექმენი ფაილი სახელად meal.py – ამ ბრძანების გამოყენებით code meal.py
  5. დაიწყე დავალების შესრულება meal.py ფაილში.

 

Demo – როგორ უნდა მუშაობდეს შენი პროგრამა?

როგორ უნდა გატესტო შენი პროგრამა?

როდესაც ჩათვლი რომ შედეგს მიაღწიე და გინდა დარწმუნდე რომ შენი პროგრამა სწორად მუშაობს, შეგიძლია გატესტო რამდენიმე გზით. 

გატესტე ხელით
  • გაუშვი შენი პროგრამა python meal.py, აკრიფე 7:00 და დააჭირე Enter ღილაკს. შენმა პროგრამამ უნდა დაგიბრუნოს breakfast time.
  • გაუშვი შენი პროგრამა python meal.py, აკრიფე 7:30 და დააჭირე Enter ღილაკს. შენმა პროგრამამ უნდა დაგიბრუნოს breakfast time.
  • გაუშვი შენი პროგრამა python meal.py, აკრიფე 12:42 და დააჭირე Enter ღილაკს. შენმა პროგრამამ უნდა დაგიბრუნოს lunch time.
  • გაუშვი შენი პროგრამა python meal.py, აკრიფე 18:32 და დააჭირე Enter ღილაკს. შენმა პროგრამამ უნდა დაგიბრუნოს dinner time.
  • გაუშვი შენი პროგრამა python meal.py, აკრიფე 11:11 და დააჭირე Enter ღილაკს. შენმა პროგრამამ არაფერი არ უნდა დაგიბრუნოს.
ავტომატური გატესტვა – check50

მას შემდეგ რაც ხელით გატესტავ და ჩათვლი რომ შენი პროგრამა სავარაუდოდ სწორად მუშაობს, შეგიძლია ავტომატური ტესტირების სისტემაც გამოიყენო. 

ამისათვის Terminal – ში გაუშვი ასეთი ბრძანება check50 cs50/problems/2022/python/meal

მწვანე სმაილები ნიშნავს რომ შენმა პროგრამამ გაიარა ტესტი. 

წითელი მოწყენილი სახეები ნიშნავს რომ შენმა პროგრამამ კონკრეტულ შემთხვევებში არასწორად იმუშავა და იმ შემთხვევების შესაბამისად უნდა გამოასწორო მანამ სანამ მწვანე სმაილს არ მიიღებ.

check50 ასევე დაგიბრუნებს მისამართს რომელსაც შეგიძლია ეწვიო და ნახო ზუსტად რა მნიშვნელობებზე გაიტესტა შენი პროგრამა.

როგორ გავაგზავნოთ ნამუშევარი Harvard – ის სისტემაში?

მას შემდეგ რაც ხელით და ავტომატური გატესტვავ და დარწმუნდები რომ ყველაფერი რიგზეა, submit50 – ბრძანების გამოყენებით შეგიძლია გააგზავნო შენი ნამუშევარი Harvard – ის სისტემაში.

ზუსტი ბრძანება ასე გამოიყურება: submit50 cs50/problems/2022/python/meal

BONUS გამოწვევა!

ამ გამოწვევის შესრულება სავალდებულო არ არის მაგრამ თუ მზად ხარ კიდევ უფრო გააუმჯობესო შენი პროგრამა, დაამატე მას 12 საათიანი ფორმატის მხარდაჭერაც. ასე მაგალითად:

  • #:## a.m. და ##:## a.m.
  • #:## p.m. და ##:## p.m.

სწავლა და ბრძოლა