You are on page 1of 9

Python Essentials 1:

მოდული 1

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

ამ მოდულში თქვენ გაეცნობით:

კომპიუტერული პროგრამირების საფუძვლები, ანუ როგორ მუშაობს კომპიუტერი , როგორ


სრულდება პროგრამა, როგორ არის განსაზღვრული და აგებული პროგრამირების ენა ;

განსხვავება კომპილაციასა და ინტერპრეტაციას შორის

რა არის პითონი, როგორ არის ის პოზიციონირებული სხვა პროგრამირების ენებს შორის და


რა განასხვავებს პითონის სხვადასხვა ვერსიებს.

როგორ მუშაობს კომპიუტერული პროგრამა?

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

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


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

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

კომპიუტერებს ძალზე რთული ამოცანების შესრულება შეუძლიათ, მაგრამ ეს უნარი არ არის


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

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


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

თანამედროვე კომპიუტერებს შეუძლიათ შეაფასონ მხოლოდ ფუნდამენტური ოპერაციების


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

ბუნებრივია, კომპიუტერი შეძლებს ამის გამოთვლას, მაგრამ კომპიუტერმა არ იცის ისეთი


რამ, როგორიცაა მანძილი, სიჩქარე ან დრო. ამიტომ, აუცილებელია კომპიუტერს
დავავალოთ:

მიიღოს რიცხვი, რომელიც წარმოადგენს მანძილს;

მიიღეთ ნომერი, რომელიც წარმოადგენს მოგზაურობის დროს;

გაყავით პირველი მნიშვნელობა მეორეზე და შეინახეთ შედეგი მეხსიერებაში ;

შედეგის ჩვენება (საშუალო სიჩქარის გამოხატვა) წასაკითხ ფორმატში .

ეს ოთხი მარტივი მოქმედება ქმნის პროგრამას. რა თქმა უნდა , ეს მაგალითები არ არის


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

ენა საკვანძო სიტყვაა.

ბუნებრივი ენები პროგრამირების ენების წინააღმდეგ

ენა არის საშუალება (და ინსტრუმენტი) აზრების გამოხატვისა და ჩაწერისთვის . ჩვენს


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

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

კომპიუტერი, თუნდაც ტექნიკურად ყველაზე დახვეწილი, მოკლებულია ინტელექტის კვალსაც


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

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


IL. სხვადასხვა ტიპის კომპიუტერები შეიძლება განსხვავდებოდეს მათი IL-ის ზომის მიხედვით
და ინსტრუქციები შეიძლება სრულიად განსხვავებული იყოს სხვადასხვა მოდელში .

შენიშვნა: მანქანების ენები შექმნილია ადამიანების მიერ.

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

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

შეიძლება ითქვას, რომ თითოეული ენა (მანქანა თუ ბუნებრივი, არ აქვს მნიშვნელობა )


შედგება შემდეგი ელემენტებისაგან:

ანბანი: სიმბოლოების ნაკრები, რომელიც გამოიყენება გარკვეული ენის სიტყვების


შესაქმნელად (მაგ. ლათინური ანბანი ინგლისურისთვის, კირილიცა რუსულისთვის , კანჯი
იაპონურისთვის და ა.შ.)

ლექსიკა: (ანუ ლექსიკონი) სიტყვების ნაკრები, რომელსაც ენა სთავაზობს მომხმარებლებს


(მაგ., სიტყვა "კომპიუტერი" მომდინარეობს ინგლისური ენის ლექსიკონიდან, ხოლო
"cmoptrue" არა; სიტყვა "chat" წარმოდგენილია ორივე ინგლისურში. და ფრანგული
ლექსიკონები, მაგრამ მათი მნიშვნელობა განსხვავებულია)

სინტაქსი: წესების ერთობლიობა (ფორმალური ან არაფორმალური, დაწერილი ან


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

IL, ფაქტობრივად, მანქანური ენის ანბანია. ეს არის სიმბოლოების უმარტივესი და ძირითადი


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

სამწუხაროდ, ეს მშობლიური ენა შორს არის ადამიანის დედაენისგან . ჩვენ ორივეს


(კომპიუტერებს და ადამიანებს) გვჭირდება რაღაც სხვა, საერთო ენა კომპიუტერებისა და
ადამიანებისთვის, ან ხიდი ორ განსხვავებულ სამყაროს შორის.

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


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

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


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

მაღალი დონის პროგრამირების ენაზე დაწერილ პროგრამას წყაროს კოდი ეწოდება


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

შედგენა ინტერპრეტაციის წინააღმდეგ

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


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

რა თქმა უნდა, ასეთი კომპოზიცია უნდა იყოს სწორი მრავალი თვალსაზრისით :


ანბანურად - პროგრამა უნდა დაიწეროს ცნობადი დამწერლობით, როგორიცაა რომაული ,
კირილიცა და ა.შ.

ლექსიკურად - პროგრამირების თითოეულ ენას აქვს თავისი ლექსიკონი და თქვენ უნდა


დაეუფლოთ მას; საბედნიეროდ, ის ბევრად უფრო მარტივი და პატარაა, ვიდრე ნებისმიერი
ბუნებრივი ენის ლექსიკონი;

სინტაქსურად - თითოეულ ენას აქვს თავისი წესები და ისინი უნდა დაიცვან ;

სემანტიკურად - პროგრამას უნდა ჰქონდეს აზრი.

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


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

დავუშვათ, რომ თქვენ წარმატებით დაწერეთ პროგრამა. როგორ დავარწმუნოთ კომპიუტერი


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

პროგრამის მაღალი დონის პროგრამირების ენიდან მანქანურ ენად გადაქცევის ორი


განსხვავებული გზა არსებობს:

შედგენა - წყაროს პროგრამა ითარგმნება ერთხელ (თუმცა, ეს მოქმედება უნდა განმეორდეს


ყოველ ჯერზე, როდესაც თქვენ შეცვლით საწყის კოდს) ფაილის მიღებით (მაგ., .exe ფაილი,
თუ კოდი განკუთვნილია გასაშვებად MS Windows-ში), რომელიც შეიცავს მანქანას. კოდი;
ახლა თქვენ შეგიძლიათ გაავრცელოთ ფაილი მთელ მსოფლიოში; პროგრამას, რომელიც
ასრულებს ამ თარგმანს, ეწოდება შემდგენელი ან მთარგმნელი;

ინტერპრეტაცია - თქვენ (ან კოდის ნებისმიერ მომხმარებელს) შეგიძლიათ თარგმნოთ


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

რამდენიმე ძალიან ფუნდამენტური მიზეზის გამო, კონკრეტული მაღალი დონის


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

რას აკეთებს სინამდვილეში თარჯიმანი?

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

შენიშვნა: ეს უნდა იყოს სუფთა ტექსტი, ყოველგვარი დეკორაციის გარეშე , როგორიცაა


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

თარჯიმანი კითხულობს წყაროს კოდს ისე, როგორც დასავლურ კულტურაშია


გავრცელებული: ზემოდან ქვემოდან და მარცხნიდან მარჯვნივ . არის გამონაკლისები - ისინი
მოგვიანებით განიხილება კურსის განმავლობაში.

უპირველეს ყოვლისა, თარჯიმანი ამოწმებს, არის თუ არა ყველა შემდეგი სტრიქონი სწორი
(ადრე განხილული ოთხი ასპექტის გამოყენებით).

თუ თარჯიმანი აღმოაჩენს შეცდომას, ის დაუყოვნებლივ ამთავრებს თავის მუშაობას .


ერთადერთი შედეგი ამ შემთხვევაში არის შეცდომის შეტყობინება .

თარჯიმანი შეგატყობინებთ სად მდებარეობს შეცდომა და რამ გამოიწვია იგი . თუმცა , ეს


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

მაგალითად, თუ თქვენ ცდილობთ გამოიყენოთ უცნობი სახელის ერთეული, ეს გამოიწვევს


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

კომპილაციის კონცეფციის სურათი

თუ ხაზი კარგად გამოიყურება, თარჯიმანი ცდილობს მის შესრულებას (შენიშვნა : თითოეული


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

ასევე შესაძლებელია, რომ კოდის მნიშვნელოვანი ნაწილი წარმატებით შესრულდეს მანამ ,


სანამ თარჯიმანი შეცდომას აღმოაჩენს. ეს არის ნორმალური ქცევა ამ შესრულების
მოდელში.

ახლა შეიძლება იკითხოთ: რომელია უკეთესი? „შემდგენი“ მოდელი თუ „ინტერპრეტაციის “


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

კომპილაცია

ინტერპრეტაცია

უპირატესობები

თარგმნილი კოდის შესრულება ჩვეულებრივ უფრო სწრაფია;

მხოლოდ მომხმარებელს უნდა ჰქონდეს შემდგენელი - საბოლოო მომხმარებელს შეუძლია


გამოიყენოს კოდი მის გარეშე;

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

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

ნაკლოვანებები

თავად კომპილაცია შეიძლება იყოს ძალიან შრომატევადი პროცესი - თქვენ ვერ შეძლებთ
თქვენი კოდის გაშვებას დაუყოვნებლივ რაიმე შესწორების შემდეგ;

თქვენ უნდა გქონდეთ იმდენი შემდგენელი, რამდენიც ტექნიკის პლატფორმაზე გსურთ


თქვენი კოდის გაშვება.

არ მოელოდეთ, რომ ინტერპრეტაცია თქვენს კოდს მაღალ სიჩქარეზე გაზრდის - თქვენი


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

თქვენ და საბოლოო მომხმარებელს უნდა გქონდეთ თარჯიმანი თქვენი კოდის გასაშვებად .

რას ნიშნავს ეს ყველაფერი შენთვის?

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


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

თუ გსურთ დაპროგრამება Python-ში, დაგჭირდებათ Python თარჯიმანი. თქვენ ვერ შეძლებთ


თქვენი კოდის გაშვებას მის გარეშე. საბედნიეროდ, პითონი უფასოა. ეს არის მისი ერთ -ერთი
ყველაზე მნიშვნელოვანი უპირატესობა.

ისტორიული მიზეზების გამო, ინტერპრეტაციაში გამოსაყენებლად შემუშავებულ ენებს


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

https://edube.org/uploads/media/default/0001/01/4ee5f443f5b9290c0dc5ca8a57f1e2392e4be01b.png

დაიწყეთ თქვენი მუშაობა პითონთან


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

ეს ძალიან მარტივი პროცედურა იქნება, მაგრამ საკმარისი უნდა დაგარწმუნოთ , რომ


პითონის გარემო სრული და ფუნქციონალურია.

პითონის გამოყენების მრავალი გზა არსებობს, განსაკუთრებით თუ აპირებთ გახდეთ


პითონის დეველოპერი.

სამუშაოს დასაწყებად, დაგჭირდებათ შემდეგი ინსტრუმენტები:

რედაქტორი, რომელიც დაგეხმარებათ კოდის დაწერაში (მას უნდა ჰქონდეს სპეციალური


ფუნქციები, რომლებიც არ არის ხელმისაწვდომი მარტივი ინსტრუმენტებით ); ეს
გამოყოფილი რედაქტორი მოგცემთ უფრო მეტს, ვიდრე სტანდარტული OS აღჭურვილობა ;

კონსოლი, რომელშიც შეგიძლიათ გაუშვათ თქვენი ახლად დაწერილი კოდი და შეაჩეროთ


იგი იძულებით, როდესაც ის კონტროლიდან გამოვა;

ინსტრუმენტი სახელად debugger, რომელსაც შეუძლია თქვენი კოდის ეტაპობრივად გაშვება


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

მრავალი სასარგებლო კომპონენტის გარდა, Python 3 სტანდარტული ინსტალაცია შეიცავს


ძალიან მარტივ, მაგრამ ძალიან სასარგებლო აპლიკაციას სახელად IDLE.

IDLE არის აბრევიატურა: ინტეგრირებული განვითარებისა და სასწავლო გარემო.

You might also like