პითონის გაკვეთილი (3)

python

პროგრამის ასაშენებელი ბლოკები შემდგეგ თავებში ჩვენ ვისწავლით უფრო მეტს პითონის ლექსიკონის, წინადადების სტრუქტურის, პარაგრაფის სტრუქტურის და ისტორიის სტრუქტურის შესახებ. ვისწავლით პითონის მძლავრი შესაძლებლობების შესახებ და თუ როგორ დავალაგოთ ეს შესაძლებლობები ისე, რომ გავაკეთოთ სასარგებლო პროგრამა. არის რამდენიმე არც ისე მაღალი დონის აბსტაქტული ნიმუში, რომელსაც გამოვიყენებთ პროგრამის შესადგენად. ეს კონსტრუქციები გამოიყენება არა მარტო პითონში, არამედ მანქანის ენიდან დაწყებული ყველა პროგრამირების ენაში. შეყვანა (ინფორმაციის) input : მონაცემების მიღება “გარედან”. ეს შეიძლება იყოს მონაცემების წაკითხვა ფაილიდან ან რაიმე სენსორული მოწყობილობიდან, როგორიცაა მიკროფონი ან ჯი-პი-ესი. შენს საწყის პროგრამებში ინფორმაციის შეყვანა გამოიხატება მომხმარებლის მიერ კლავიატურაზე აკრეფილი მონაცემებით. გამოტანა (ინფორმაციის) output: პროგრამის შედეგის ეკრანზე გამოტანა ან ფაილში შენახვა ან ჩაწერა მოწყობილობისთვის, მაგ: დინამიკისთვის რომ გააჟღეროს მუსიკა ან ლაპარაკი. თანმიმდევრული განხორციელება sequential execution : ბრძანებების რიგ-რიგობით შესრულება – ისე როგორც მითითებულია სკრიპტში. პირობითი განხორციელება conditional execution : შეამოწმოს პირობები და შეასრულოს ან გამოტოვოს ბრძანებები. განმეორებადი განხორციელება repeated execution : ბრძანებ(ებ)ის შეასრულება არაერთხელ – როგორც წესი რამდენიმე ვარიაცია. განმეორებითი გამოყენება reuse : დაწერე ინსტრუქცია ერთხელ, დაარქვი სახელი და შენს პროგრამაში გამოიყენე როცა დაგჭირდება. სიმართლე გითხრა , ეს ყველაფერი ძალიან მარტივი ჩანს, მაგრამ ეს არასდროსაა ესეთი მარტივი. ესაა როგორც თქვა, რომ სეირნობაა ერთი ფეხის გადაბიჯება მეორეს წინ. პროგრამირების ხელოვნება იმაში მდგომარეობს, რომ ეს მთავარი ელემენტები დააწყო ისე, რომ მომხმარებლისთვის გააკეთოს რაიმე სასარგებლო. ზემოთ მოყვანილი სიტყვების დასათვლელი პროგრამა იყენებს ყველა ნიმუშს ერთის გარდა.

რა შეიძლება გაკეთდეს არასწორად?
პითონთან წინა ლაპარაკის დროს როგორც ვნახეთ , ძალიან ზუსტად უნდა დავწეროთ პითონის კოდი. მცირე გადახრა ან შეცდომაც კი პითონს დააბნევს. დამწყები პროგრამისტები ხშირად ფიქრობენ, რომ რადგან პითონი შედომისთვის ადგილს არ ტოვებს, აშკარაა რომ ის უნამუსო ,საძულველი და სასტიკია. რომ პითონს აქვს მათდამი პირადი შუღლი და ამ შუღლის გამო, მათ მიერ შესანიშნავად დაწერილ პროგრამას ასაღებს როგორც ნაგავს მხოლოდ იმიტომ, რომ ისინი დატანჯოს! >>> primt ‘Hello world!’ File “”, line 1 primt ‘Hello world!’ ˆ SyntaxError: invalid syntax >>> primt ‘Hello world’ File “”, line 1 primt ‘Hello world’ ˆ SyntaxError: invalid syntax >>> I hate you Python! File “”, line 1 I hate you Python! ˆ SyntaxError: invalid syntax >>> if you come out of there, I would teach you a lesson File “”, line 1 if you come out of there, I would teach you a lesson ˆ SyntaxError: invalid syntax >>> პითონთან კამათი უსარგებლოა. ის უბრალოდ უემოციო ხელსაწყოა, რომელიც ყოველთვის მზადაა გემსახუროს. შეცდომის მესიჯები არასასიამოვნოდ კი გამოიყურება, მაგრამ ეს მესიჯები ნიშნავს რომ პითონს დახმარება სჭირდება, რომ ვერ გაიგო შენი ნაწერი და გთხოვს უკეთ დაწერო. პითონი ძაღლს ჰგავს. უყვარხარ უპირობოდ, იცის რამდენიმე სიტყვა, გიყურებს სასიამოვნო გამომეტყველებით (>>>) და გელოდება უთხრა ისეთი რამე, რასაც გაიგებს. როცა პითონი ამბობს “SyntaxError:invalid syntax” , ეს უბრალოდ კუდს აქიცინებს და გეუბნება, რომ “რაღაცას ამბობდი, მაგრამ ვერ გავიგე რას გულისხმობდი. ამის მიუხედავად გთხოვ გააგრძელე ჩემთან ლაპარაკი (>>>) . “ რაც უფრო გაიზდება შენი გამოცდილება პროგრამირებაში, შეხვდები 3 ძირითად შეცდომას: სინტაქსის შეცდომას Syntax errors : ესაა პირველი შეცდომები, რომელსაც დაუშვებ ; სხვათაშორის ყველაზე ადვილად გამოსწორებადი შეცდომა. Syntax errors ნიშნავს რომ დაარღვიე პითონის “გრამატიკის წესები“. პითონი მიგანიშნებს სტრიქონს და ასოს, სადაც შეცდომაა დაშვებული. სინტაქსის შეცდომაში ცოტათი რთული მხოლოდ ისაა, რომ ხანდახან შეცდომა რომელსაც გამოსწორება სჭირდება დაშვებული იქნა პროგრამის წინა სტრიქონებში და არა მხოლოდ იქ სადაც პითონმა მიგანიშნა. ასე რომ სტრიქონი და ასო რომელზეც პითონი სინტაქსის შეცდომას მიანიშნებს, შეიძლება იყოს საწყისი წერტილი შენი გამოძიების. ლოგიკის შეცდომა Logic errors :ლოგიკის შეცდომაა, როცა სინტაქსი გამართულია, მაგრამ შეცდომაა წესებთან დაკავშირებით ან წესების ურთიერთშეთანხმებასთან დაკავშირებით. ლოგიკის შეცდომის კარგი მაგალითია “დალიე წყალი შენი ბოთლიდან, ჩადე ზურგჩანთაში, გაისეირნე ბიბლიოთეკაში და შემდეგ წყალი უკან ბოთლში დააბრუნე.” სემანტიკური შეცდომა Semantic errors: სემანტიკური შეცდომაა როცა ზომების მიღების აღწერა სინტაქსურად სწორია, მაგრამ პროგრამაში დაშვებულია მარტივი შეცდომა. პროგრამა სწორადაა დაწერილი მაგრამ არ აკეთებს იმას რისთვისაც იყო განზრახული. მარტივი მაგალითია ; დავუშვათ მეგობარს ასწავლით გზას “… როცა გზაჯვარედინთან მიხვალ, ბენზინგასამართ სადგურთან მოუხვიე მარცხნივ, გაიარე 1 მილი და წითელ რესტორანს დაინახავ შენგან მარცხნივ.” მოგვიანებით მეგობარი გირეკავს და გეუბნება, რომ ისაა ფერმაში და მის უკან ბეღელია და არანაირი ნიშანი არაა, რომ აქ სადმე რესტორანია. შემდეგ შენ ეკითხები “ბენზინგასამართ სადგურთან მარჯვნივ მიუხვიე თუ მარცხნივ?” და ის გპასუხობს, რომ როგორც ასწავლე ისე წავიდა და შენ ამბობ ” ძალიან ვწუხვარ, იმიტომ რომ ჩემი ინსტრუქცია სინტაქსურად სწორი იყო, მაგრამ დავუშვი პატარა სემანტიკური შეცდომა.” ყველა ტიპის შეცდომის მიუხედავად პითონი ყველანაირად ეცდება გააკეთოს რაც სთხოვეთ.

 პროგრამის ასაშენებელი ბლოკები

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

          შეყვანა (ინფორმაციის) input : მონაცემების მიღება “გარედან”. ეს შეიძლება იყოს მონაცემების წაკითხვა ფაილიდან ან რაიმე სენსორული მოწყობილობიდან, როგორიცაა მიკროფონი ან ჯი-პი-ესი. შენს საწყის პროგრამებში ინფორმაციის შეყვანა გამოიხატება მომხმარებლის მიერ კლავიატურაზე  აკრეფილი მონაცემებით.
გამოტანა (ინფორმაციის) output:  პროგრამის შედეგის ეკრანზე  გამოტანა ან ფაილში შენახვა ან ჩაწერა მოწყობილობისთვის, მაგ: დინამიკისთვის რომ გააჟღეროს მუსიკა ან ლაპარაკი.
თანმიმდევრული განხორციელება sequential execution : ბრძანებების რიგ-რიგობით შესრულება – ისე როგორც მითითებულია სკრიპტში.
პირობითი განხორციელება conditional execution :  შეამოწმოს პირობები და შეასრულოს ან გამოტოვოს ბრძანებები.
განმეორებადი განხორციელება repeated execution : ბრძანებ(ებ)ის შეასრულება არაერთხელ – როგორც წესი რამდენიმე ვარიაცია.
განმეორებითი გამოყენება reuse : დაწერე ინსტრუქცია ერთხელ, დაარქვი სახელი და შენს პროგრამაში გამოიყენე როცა დაგჭირდება.

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

რა შეიძლება გაკეთდეს არასწორად?

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

>>> primt ‘Hello world!’
File “<stdin>”, line 1
primt ‘Hello world!’
ˆ
SyntaxError: invalid syntax
>>> primt ‘Hello world’
File “<stdin>”, line 1
primt ‘Hello world’
ˆ
SyntaxError: invalid syntax
>>> I hate you Python!
File “<stdin>”, line 1
I hate you Python!
ˆ
SyntaxError: invalid syntax
>>> if you come out of there, I would teach you a lesson
File “<stdin>”, line 1
if you come out of there, I would teach you a lesson
ˆ
SyntaxError: invalid syntax
>>>

            პითონთან კამათი უსარგებლოა. ის უბრალოდ უემოციო ხელსაწყოა, რომელიც ყოველთვის მზადაა გემსახუროს.  შეცდომის მესიჯები არასასიამოვნოდ კი გამოიყურება, მაგრამ ეს მესიჯები ნიშნავს რომ პითონს დახმარება სჭირდება, რომ ვერ გაიგო შენი ნაწერი და გთხოვს უკეთ დაწერო.
პითონი ძაღლს ჰგავს. უყვარხარ უპირობოდ, იცის რამდენიმე სიტყვა, გიყურებს სასიამოვნო გამომეტყველებით (>>>) და გელოდება უთხრა ისეთი რამე, რასაც გაიგებს. როცა პითონი ამბობს “SyntaxError:invalid syntax” ,  ეს უბრალოდ კუდს აქიცინებს და გეუბნება, რომ  “რაღაცას ამბობდი, მაგრამ ვერ გავიგე რას გულისხმობდი. ამის მიუხედავად გთხოვ გააგრძელე ჩემთან ლაპარაკი (>>>) . ”
რაც უფრო გაიზდება შენი გამოცდილება პროგრამირებაში, შეხვდები 3 ძირითად შეცდომას:
  სინტაქსის შეცდომას Syntax errors :  ესაა პირველი შეცდომები, რომელსაც დაუშვებ ; სხვათაშორის ყველაზე ადვილად  გამოსწორებადი შეცდომა. Syntax errors ნიშნავს რომ დაარღვიე პითონის “გრამატიკის წესები“. პითონი მიგანიშნებს სტრიქონს  და ასოს, სადაც შეცდომაა დაშვებული. სინტაქსის შეცდომაში ცოტათი რთული მხოლოდ ისაა, რომ ხანდახან შეცდომა რომელსაც გამოსწორება სჭირდება დაშვებული იქნა პროგრამის წინა სტრიქონებში და არა მხოლოდ იქ სადაც  პითონმა მიგანიშნა. ასე რომ სტრიქონი და ასო რომელზეც პითონი სინტაქსის შეცდომას მიანიშნებს, შეიძლება იყოს საწყისი წერტილი შენი გამოძიების.
  ლოგიკის შეცდომა Logic errors :ლოგიკის შეცდომაა, როცა სინტაქსი გამართულია, მაგრამ შეცდომაა წესებთან დაკავშირებით ან წესების ურთიერთშეთანხმებასთან დაკავშირებით. ლოგიკის შეცდომის კარგი მაგალითია “დალიე წყალი შენი ბოთლიდან, ჩადე ზურგჩანთაში, გაისეირნე ბიბლიოთეკაში და შემდეგ წყალი უკან ბოთლში დააბრუნე.”
    სემანტიკური შეცდომა Semantic errors: სემანტიკური შეცდომაა როცა ზომების მიღების აღწერა სინტაქსურად სწორია, მაგრამ პროგრამაში დაშვებულია მარტივი შეცდომა. პროგრამა სწორადაა დაწერილი მაგრამ არ აკეთებს იმას რისთვისაც იყო განზრახული.  მარტივი მაგალითია ; დავუშვათ მეგობარს  ასწავლით გზას “… როცა გზაჯვარედინთან მიხვალ, ბენზინგასამართ სადგურთან მოუხვიე მარცხნივ, გაიარე 1 მილი და წითელ რესტორანს დაინახავ შენგან მარცხნივ.” მოგვიანებით მეგობარი გირეკავს და გეუბნება, რომ ისაა ფერმაში და მის უკან ბეღელია და არანაირი ნიშანი არაა, რომ აქ სადმე რესტორანია. შემდეგ შენ ეკითხები “ბენზინგასამართ სადგურთან მარჯვნივ მიუხვიე თუ მარცხნივ?” და ის გპასუხობს, რომ როგორც ასწავლე ისე წავიდა და შენ ამბობ ” ძალიან ვწუხვარ, იმიტომ რომ ჩემი ინსტრუქცია სინტაქსურად სწორი იყო, მაგრამ დავუშვი პატარა სემანტიკური შეცდომა.”
ყველა ტიპის შეცდომის მიუხედავად პითონი ყველანაირად ეცდება გააკეთოს რაც სთხოვეთ.

სწავლის მოგზაურობა

ისეთი შთაბეჭდილება თუ გექმნება რომ ისე ვერ პროგრესირებ როგორც წარმოგედგინა, არაუშავს. როცა ლაპარაკს სწავლობდი შენთვის პრობლება არ ყოფილა თავიდან რამდენიმე წლის მანძილზე  ლაპარაკის მაგივრად თუ სასაცილო ხმებს გამოსცემდი . ყველაფერი კარგად იყო, როცა 6 თვე დაგჭირდა მარტივი სიტყვებიდან მარტივ წინადადებებზე გადასასვლელად და 5-6 წელი წინადადებებიდან – აბზაცებზე და კიდე რამდენიმე წელი, რომ დაგეწერა საინტერეო, სრული ისტორია.
ჩვენ გვინდა რომ ვისწავლოთ პითონი ჩქარა, ასე რომ სწავლას დავუთმობთ იგივე დროს მომდევნო რამდენიმე თავი. მაგრამ რადგან ახალ ენას სწავლობ, მიაქვს ბევრი  დრო სანამ ბუნებრივად შეიგრძნობ .  ეს იწვევს ცოტა დაბნეულობას და კიდევ და კიდევ ვეძებთ პასუხებს თემებში, რომ შევადგინოთ მთლიანი სურათი პატარ-პატარა ფრაგმენტებით. როცა ეს წიგნი დაწერილია ხაზოვნად და თუ კურსს გადიხარ, პროგრესიც იქნება ხაზოვანი სახის . არ იყოყმანო რომ იყო არა-ხაზოვანი მიზნის მისაღწევად. გადახედე  წინა და მომდევნო თავებს.  იმ მასალის გადახედვა, რომელიც ჯერ არ გისწავლია უფრო მარტივს გახდის  პასუხს კითხვაზე “რატომ უნდა ვისწავლო პროგრამირება“. წინა მასალების გაცნობა, წინა სავარჯიშოების გაკეთება გაგაანალიზებინებს, რომ ნამდვილად გისწავლია რაღაც, გისწავლია ისაც კი, რაც ადრე გეჩვენებოდა რომ შეუძლებელია.
ჩვეულებრივ,  როცა შენ სწავლობ პირველ პროგრამირების ენას, აქაა რამდენიმე მშვენიერი შეძახილი “ჰუჰ”, როცა გეგონება რომ უზარმაზარი ლოდი დაამუშავე  უროთი და საჭრისით და დაინახე, რომ გაგიკეთებია ლამაზი ქადაკება.
რამე თუ ძალიან ძნელად გეჩვენება, არაა აუცილებელი ღამეები ათენო. შეისვენე, გამოიძენე, წაიხემსე, გაანალიზე რაშია პრობლემა და დასვენებული მიუბრუნდი სწავლას. გარწმუნებ, რომ როცა ისწავლი პროგრამირების ცნებებს და გადახედავ ამ წიგნის წინა თავებს, მიხვდები რომ ყველაფერი ძალიან მარტივი იყო.

სპეციალური ტერმინოლოგიის ლექსიკონი

bug:    შეცდომა პროგრამაში
CPU:   ცენტრალური პროცესორი (ცპ)
compile:  მაღალი დონის პროგრამული ენიდან დაბალი დონის პროგრამულ ენაზე თარგმნა .
high-level language: მაღალი დონის ენა, როგორიცაა პითონი – რომელიც შექმნილია იმისთვის, რომ ადამიანმა ადვილად წეროს და იკითხოს.
interactive mode: პითონის მთარგმნელის გამოყენება აქტიურ, დიალოგურ რეჟიმში – ბრძანებების წერა ბრძანებათ ველში (პრომპტ -ში ).
interpret: პროგრამის ერთ-ერთ ხაზად განხორციელება
low-level language პროგრამირების ენა, რომელიც გაკეთებულია იმისთვის რომ კომპიუტერისთვის იყოს ადვილი განხორციელება. ასევე ეძახიან მანქანის კოდს ან assembly language
machine code: დაბალი დონის ენა  პროგრამისთვის რომელიც პირდაპირ ხორციელდება ცენტრალური პროცესორის მიერ.
main memory: ინახავას პროგრამებს და მონაცმებს სანამ ენერგია მიეწოდება.
parse: პროგრამის განხილვა და სინტაქსური სტრუქტურის შემოწმება.
portability: პროგრამის შესაძლებლობა რომ იმუშავოს ერთზე მეტ კომპპიუტერზე.
print statement: ინსტრუქცია რის გამოც პითონის მთარგმნელს მნიშვნელობა გამოაქვს ეკრანზე.
problem solving: პრობლემის ფორმულირების პროცესი, გამოსავლის გამოხატვა და პოვნა.
prompt: როცა პროგრამას ეკრანზე გამოაქვს მესიჯი და პაუზდება, რათა მომხმარებელს მიეცეს დაწერის საშუალება.
secondary memory: ინახავს პროგრამებს და მონაცემებს მაშინც კი, როცა ენერგია არ მიეწოდება. უფრო ნელი, ვიდრე ძირითადი მეხსიერება. დამატებითი მეხსიერების მაგალითებია USB, მყარი დისკი და.ა.შ.
semantics: პროგრამის მნიშვნელობა
semantic error: შეცდომა პროგრამაში, რომელიც პროგრამას აკეთებინებს ისეთ რამეს რისთვისაც არაა შექმნილი.
source code: პროგრამა მაღალი დონი ენაზე.

1.13 სავარჯიშოები

სავარჯიშო 1. 1 რა არის დამატებითი მეხსიერების ფუნქცია კომპიუტერში?

ა) ყველა პროგრამის და დათვლების განხორციელება
ბ) ინტერნეტში ვებ-გვერდების პოვნა
გ) ინფორმაციის ხანგრძლივი შენახვა
დ)Take input from the user

სავარჯიშო 1.2 რა არის პროგრამა?

სავარჯიშო 1.3 რა არის განსხვავება კომპილატორსა და მთარგმნელს შორის?

სავარჯიშო 1.4 აქედან  რომელი შეიცავს  “მანქანის ენას”

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

სავარჯიშო 1.5 ამ კოდში რა არის არასწორად?

Quote

>>> primt ‘Hello world!’
File “<stdin>”, line 1
primt ‘Hello world!’
ˆ
SyntaxError: invalid syntax
>>>

სავარჯიშო 1.6  პითონის ხაზის დამთავრების მერე,  კომპიუტერში სად ინახება  ისეთი ცვლადი როგორიც “X” არის?

x = 123

ა) ცპ – ში
ბ) ძირითად მეხსიერებაში
გ) დამატებითი მეხსიერებაში
დ) შიდა მოწყობილებებში
ე) გარე მოწყობილებებში

სავარჯიშო 1.7 რას ამობეჭდავს პროგრამა?

x = 43
x = x + 1
print x

ა) 43
ბ) 44
გ) x + 1
დ) x = x + 1 მათემატიკური  შეცდომაა

სავარჯიშო 1.8 შეადარე თითოეული ნაწილი ადამიანს. (1) Central processing unit, (2) Main Memory, (3) Secondary Memory, (4)  Input Device, and (5) Output Device.
მაგალითად : ადამიანში რას შეადარებდი   ცპ-ს ?

სავარჯიშო 1.9 როგორ გავასწოროთ “სინტაქსური შეცდომა”?

python is the future, keep up the good work – m.core

წყარო:http://pythongeo.blogspot.com/

Facebook (0)