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

წარმოგიდგენთ Hogwarts – ის სტუდენტების სიას, CSV ფორმატში, 2 სვეტით – სახელი და შესაბამისი სახლი/house. 

name,house
"Abbott, Hannah",Hufflepuff
"Bell, Katie",Gryffindor
"Bones, Susan",Hufflepuff
"Boot, Terry",Ravenclaw
"Brown, Lavender",Gryffindor
"Bulstrode, Millicent",Slytherin

სტუდენტების სიის სრულ ვერსიას გადმოწერ აქედან before.csv 

საგულისხმოა რომ მართალია ამ ფაილში 2 სვეტია მაგრამ პირველ name სვეტში სახელი და გვარი ერთადაა შეყვანილი. ამისათვის ორმაგი ბრჭყალებია გამყენებული. და შემდეგ მოდის house სვეტის შესაბამისი მნიშვნელობა. 

თუმცა ეს საკმაოდ მოუხერხებელია რადგან როცა მხოლოდ სახელი ან მხოლოდ გვარი გინდა გამოიყენო, ამ სახის ინფორმაციას აუცილებლად დასჭირდება ერთგვარი “გასუფთავება” და სახელისა და გვარის ველის გახლეჩვა. სწორედ ეს იქნება ჩვენი დავალებაც.

დავალება

შექმენი პროგრამა სახელად scourgify.py რომელსაც გადასცემ 2 command-line არგუმენტს:

  • საწყისი ფაილი, before.csv რომელშიც მონაცემები მოცემული იქნება ზემოთ ნაჩვენებ ფორმატში. 
  • შედეგად მისაღები ფაილის სახელი after.csv რომელშიც უკვე 3 სვეტი იქნება, სახელი და გვარი კი შესაბამის first და last სვეტებში იქნება ჩაწერილი, მესამე სვეტი კი ისევ house იქნება უცვლელად.

საბოლოოდ კი შენმა პროგრამამ უნდა იმუშაოს ასე python before.py after.py – და მიღებული before.csv ფაილი დაამუშაოს, გახლიჩოს სახელისა და გვარის სვეტი split ფუნქციით და დააორგანიზოს ახალი after.csv ფაილის შექმნა შესაბამისი 3 ველით (first, last, house).

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

  • გაიხსენე რომ csv – მოდულს ბევრი სასარგებლო მეთოდი აქვს აქვს, მათ შორის DictReader და DictWriter
  • გაითვალისწინე რომ შეგიძლია უთხრა DictWriter – ს რომ ფაილში ჩაწეროს მისი ველების შესაბამისი სვეტების დასახელებები writeheader მეთოდით, არგუმენტების გარეშე – დოკუმენტაცია: https://docs.python.org/3/library/csv.html#csv.DictWriter.writeheader

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

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

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

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

გატესტე ხელით
  • გაუშვი პროგრამა ბრძანებით python scourgify.py. პროგრამამ უნდა დაასრულოს მუშაობა მაშინვე sys.exit – ით და დაგიწეროს:
    Too few command-line arguments
  • შექმენი ცარიელი ფაილები 1.csv, 2.csv და 3.csv. გაუშვი შენი პროგრამა და გადაეცი პარამეტრად ორივეს დასახელება python scourgify.py 1.csv 2.csv 3.csv – შედეგად შენი პროგრამა უნდა დასრულდეს sys.exit – ით და შესაბამისი მესიჯით: 
    Too many command-line arguments
  • გაუშვი შენი პროგრამა ბრძანებით python scourgify.py invalid_file.csv output.csv – ვგულისხმობთ რომ invalid_file.csv არ არსებობს. შედეგად პროგრამამ უნდა დაასრულოს მუშაობა sys.exit – ით და შესაბამისი მესიჯით:
    Could not read invalid_file.csv
  • გაუშვი შენი პროგრამა ბრძანებით python scourgify.py before.csv after.csv (ვგულისხმობთ რომ before.csv გადმოწერილი გაქვს). შედეგად უნდა შეიქმნას ახალი ფაილი after.csv 3 სვეტით first,last,house.
Demo

 

ავტომატური გატესტვა – check50

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

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

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

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

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

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

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

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

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