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

ამერიკაში ხშირად თარიღებს აფორმატირებენ თვე-დღე-წელი თანმიმდევრობით – (MM/DD/YYYY).  ეს ფორმატი ცნობილია middle-indian თანმიმდევრობის დასახელებით და შეიძლება ითქვას რომ ძალიან ცუდი დიზაინის მაგალითია. ამ ფორმატში ჩაწერილი თარიღების სორტირება არც ისე მარტივია რადგან წლების მაჩვენებელი ბოლოშია იმის მაგივრად რომ თავში იყოს. თუ გინდა სცად ამ თარიღების სორტირება რომელიმე პროგრამაში(მაგალითად excel) 2/2/1800, 3/3/1900, და 1/1/2000.

ამ ფორმატის თარიღები ასევე საკმაოდ დამაბნეველია. მაგალითად ჰარვარდი დაარსდა 1636 წლის 8 სექტემბერს. ამ ფორმატში რომ ჩავწეროთ მივიღებთ 9/8/1636 რაც ასევე შეცდომით შეიძლება წავიკითხოთ როგორც 1636 წლის 9 აგვისტო.

საბედნიეროდ კომპიუტერები უმეტესად იყენებენ ISO 8601 საერთაშორისო სტანდარტს რომლის მიხედვითაც თარიღები უნდა შევინახოთ შემდეგი ფორმატით: YYYY-MM-DD – რომელ ქვეყანაშიც არ უნდა ვიყოთ. აქ მნიშნველოვანია რომ წლები ინახება 4 ციფრით ხოლო თვეები და დღეები 2 ციფრით და საჭიროების შემთხვევაში 0 – ებით უნდა დაიფაროს ცარიელი ადგილები. მაგალითად 2024 წლის 7 სექტემბერი 2024-09-07. 

დავალება

ფაილში სახელად outdated.py შექმენი პროგრამა რომელიც მომხმარებელს ჰკითხავს თარიღს თვე-დღე-წელი ფორმატით – 9/8/1636 ან ასეთი სახით September 8, 1636. მეორე შემთხვევაში თვე შეიძლება იყოს ნებისმიერი ამ ჩამონათვალიდან: 

[
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December"
]

შემდეგ გამოიტანე იგივე თარიღი YYYY-MM-DD ფორმატით.

თუ მომხმარებლის მიერ შეყვანილი ინფუთი არ არის ვალიდური თარიღი, ჰკითხე ახლიდან.

ჩათვალე რომ ყველა თვეს აქვს მაქსიმუმ 31 დღე. მაგრამ სიმარტივისთვის არ არის საჭირო იმის განსხვავება თუ რომელ თვეს აქვს 28, 29, 30, ან 31 დღე.

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

      • გაითვალისწინე რომ str – საც აქვს საკმაოდ ბევრი მეთოდი  https://docs.python.org/3/library/stdtypes.html#string-methods მათ შორის split. 
      • ასევე გაითვალისწინე რომ list – საც აქვს საინტერესო მეთოდები docs.python.org/3/tutorial/datastructures.html#more-on-lists მათ შორის index. 
      • გაითვალისწინე რომ შეგიძლია დააფორმატირო int – ი, წინ 0 – ების ჩამატებით აი ასე: 
        print(f"{n:02}")

        სადდაც თუ n ერთნიშნა ციფრია, მის წინ 0 ჩაემატება დოკუმენტაციის მიხედვით: https://docs.python.org/3/library/string.html#format-string-syntax

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

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

 

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

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

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

გატესტე ხელით
  • გაუშვი შენი პროგრამა python outdated.py, აკრიფე 9/8/1636 და დააჭირე Enter ღილაკს. პროგრამამ უნდა გამოიტანოს: 1636-09-08.
  • გაუშვი შენი პროგრამა python outdated.py, აკრიფე September 8, 1636 და დააჭირე Enter ღილაკს. პროგრამამ უნდა გამოიტანოს: 1636-09-08.
  • გაუშვი შენი პროგრამა python outdated.py, აკრიფე December 80, 1980 და დააჭირე Enter ღილაკს. პროგრამამ უნდა დააიგნოროს ეს ინფუთი როგორც არავალიდური თარიღი და ახლიდან სთხოვოს მომხმარებელს ინფუთის შეყვანა.
ავტომატური გატესტვა – check50

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

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

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

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

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

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

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

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

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