გამარჯობა თანაფორუმელებო. რიგი მიზეზების გამო ვერ ვახერხებ ტუტოიალის გადაღებას ამიტო დავწერ ამ თემაზე. და გეტყვით რომ ამ პოსტის მერე უკვე უშიალოდ დემოებს განახებთ. ანუ მაგალითად ადმინ ფეიჯ ფინდერს დავწერთ და რაც არ იცით(ნუ რაც არ მითქვამს) იმას აგიხსნით. უფრო ნაყოფიერი იქნება ასეთი სახით სწავლა. მოკლედ დავუწყოთ პირობებით. მაგრამ ჯერ უნდა გავიგოთ შედარების ოპერატორები. ამის გასაგებად კონსოლიც საკმარისია. ამ ეტაპზე ლინუქსით ვარ ამიტომ ვხსნი ტერმინალს და ვწერთ python3. თუ წარმატებით გაეშვა ვაგრძელებთ, ხოლო თუ ასე არ მოხდა დაწერთ sudo apt-get install python3. ამ კომანდით დააყენებთ პითონ სამს. დებიანის დისტრიბუციების უმეტესობას მოყვება პითონის მესამე ვერსია. გავაგრძელოთ. პირველი შედარების ოპერატორია == რაც ამოწმებს მითითებული სტრინგები თუ სხვა ტიპის მონაცემები უდრის თუ არა ერთმანეთს. თუ ერთმანეთის ტოლია დააბრუნებს True-ს ხოლო თუ არ უდრის False-ს
როგორც ხედავთ დააბრუნა True. ანალოგიურად მუშაობს ფლოატის და სტრინგის ტიპის მონაცემებზეც.
თუმცა სქრინს თუ დააკვირდებით ნახავთ რომ 12=="12" დაგვიბრუნა False. ვინაიდნა ერთი მონაცემი იყო ინტეჯერის ტიპის ხოლო მეორე კიდევ სტრინგის. ვინაიდან სტრნგი და ინტეგერი სხვადასხვა ადგილს იკავებს და "რიცხვითი ფასიც" სხვადასხვა აქვს დააბრუნა False. 12.0==12 დააბრუნებს თრუს. ვინაიდან მართლა ტოლია 12.0==12 -ის
ალბათ იტყვით ისაც ტოლი იყო მაგრამ ინტეგერი და ფლოატის წონა ძალიან განსხვავებულია. ამაზე საუბარი ძალიან შორს წაგვიყვანს ამიტომ მოდი უბრალოდ გავაფრძელოთ და გადავიდეთ შემდეგ ოპერატორებზე
!= არ უდრის- აბრუნებს True-ს თუ არ უდრის ორი მმითითებული მონაცემი ერთმანეთს,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
> მეტია- აბრუნებს True-ს პირველი მონაცემი მეტია მეორეზე,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
< ნაკლებია- აბრუნებს True-ს პირველი ნაკლებია მეორეზე,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
>= მეტია ანდა ტოლი - აბრუნებს True-ს პირველი მონაცემი მეტია მეორეზე ანდა ტოლია,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
<= ნაკლებია ანდა ტოლია- აბრუნებს True-ს პირველი ნაკლლებია ანდა ტოლია მეორის(ანუ არ აღებატება მეორეს),წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
ახლა გადავიდეთ პითონის სინტაქსზე რომელიც გამოიყენება პირობებში. გავხსნათ idle ან რაიმე სხვა ედიტორი და დავწეროთ if 1==1: და დავაწვეთ ენთერს. როგროც ხედავთ კურსორი ოდნავ შეწწეულია ახლა. ედიტორმა ავტომატურად შეწია. ვინაიდან მიხვდა რომ ეს პირობის ბლოკისთვისაა განკუთვნილი. შეწეულში დავწეროთ print("I'm Groot") და გავუშვათ. შეასრულებს ჩვენს ფუნქციას. დავამატოთ კიდევ ორი ხაზი და მერე აგიხსნით რა ხდება და როგორ
თუ დავიშვებთ აუთფუთი იგივე იქნება. ახლა გეტყვით რატომ ხდება ასე. მოკლედ if-ის მერე იწერება პირობა. თუ პირობა აბრუნებს True-ს მაშინ სრულდება ბლოკი. სხვა ენებში ეს ბლოკები გამოიყოფა ხოლმე { } ასე. ანუ სად იწყება და სად იხურება. თუმცა პითონში არაა ასე. შეწეული დაგამოწეული ადგილებით ხდება სად იწყება ბლოკი და სად მთავრდება. ჩვნენს შემთხვევაში პირველ პრინტთან დაიწყო პირობის ბლოკი ხოლო ელსთან მორჩა. ვინაიდან გამოწეულია. ხოლო ელსის ბლოკი დაიწყო II პრინტთან. რატომ არ დაბეჭდა I'm Not Groot? დავამატოთ ცოტა კოდი და მივხვდებით.
მოცეულ კოდს თუ გავუშვებთ ისევ დაწერს I'm Groot-ს. არადა 2==2 იც ხომ დადებით პასუხს აბრუნებს? მართალია თუმცა IF ის პირობა თუ ჭეშმარიტია შეასრულებს თავის ბლოკს და დანარჩენ ელიფებს და ელს-ს გადაახტება. ეს ელიფი რაღაა? if-სწორედ ასეთი პრინციპით მუშაობის გამო გამოიყენება. ანუ მანდაც if რომ დაგვეწერა სხვა შემთხვევაში პროცეს გაანელებდა. ანუ თუ პირველი IF ჭეშმარიტი იქნებოდა მეორესაც შეამოწმებდა და იმენს შეამოწმებდა რამდენიც ეწერებოდა. ხოლოდ რამდენი ელიფიც გინდა ეწეროს თუ ერთი სწორია დანარჩენს გადაახტება. ხოლო თუ არც IF და არც elIF -მა დააბრუნა დადებითი პასუხი შეასრულებს პროგრამა else-ბლოკის კოდს აქვე გავითვალისწინოთ რომ else-ს პირობა არ უნდა. else/if-ს ალტერნატივა პითონში გვაქვს switch case თუმცა ამაზე საუბარს ჯერ არ ვაპირებ. დღეისთვის სულ ეს იყო. დაგიბრუნდებით მალე
როგორც ხედავთ დააბრუნა True. ანალოგიურად მუშაობს ფლოატის და სტრინგის ტიპის მონაცემებზეც.
თუმცა სქრინს თუ დააკვირდებით ნახავთ რომ 12=="12" დაგვიბრუნა False. ვინაიდნა ერთი მონაცემი იყო ინტეჯერის ტიპის ხოლო მეორე კიდევ სტრინგის. ვინაიდან სტრნგი და ინტეგერი სხვადასხვა ადგილს იკავებს და "რიცხვითი ფასიც" სხვადასხვა აქვს დააბრუნა False. 12.0==12 დააბრუნებს თრუს. ვინაიდან მართლა ტოლია 12.0==12 -ის
!= არ უდრის- აბრუნებს True-ს თუ არ უდრის ორი მმითითებული მონაცემი ერთმანეთს,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
> მეტია- აბრუნებს True-ს პირველი მონაცემი მეტია მეორეზე,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
< ნაკლებია- აბრუნებს True-ს პირველი ნაკლებია მეორეზე,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
>= მეტია ანდა ტოლი - აბრუნებს True-ს პირველი მონაცემი მეტია მეორეზე ანდა ტოლია,წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
<= ნაკლებია ანდა ტოლია- აბრუნებს True-ს პირველი ნაკლლებია ანდა ტოლია მეორის(ანუ არ აღებატება მეორეს),წინააღმდეგ შემთხვევაში დააბრუნებს False-ს.
ახლა გადავიდეთ პითონის სინტაქსზე რომელიც გამოიყენება პირობებში. გავხსნათ idle ან რაიმე სხვა ედიტორი და დავწეროთ if 1==1: და დავაწვეთ ენთერს. როგროც ხედავთ კურსორი ოდნავ შეწწეულია ახლა. ედიტორმა ავტომატურად შეწია. ვინაიდან მიხვდა რომ ეს პირობის ბლოკისთვისაა განკუთვნილი. შეწეულში დავწეროთ print("I'm Groot") და გავუშვათ. შეასრულებს ჩვენს ფუნქციას. დავამატოთ კიდევ ორი ხაზი და მერე აგიხსნით რა ხდება და როგორ
თუ დავიშვებთ აუთფუთი იგივე იქნება. ახლა გეტყვით რატომ ხდება ასე. მოკლედ if-ის მერე იწერება პირობა. თუ პირობა აბრუნებს True-ს მაშინ სრულდება ბლოკი. სხვა ენებში ეს ბლოკები გამოიყოფა ხოლმე { } ასე. ანუ სად იწყება და სად იხურება. თუმცა პითონში არაა ასე. შეწეული დაგამოწეული ადგილებით ხდება სად იწყება ბლოკი და სად მთავრდება. ჩვნენს შემთხვევაში პირველ პრინტთან დაიწყო პირობის ბლოკი ხოლო ელსთან მორჩა. ვინაიდან გამოწეულია. ხოლო ელსის ბლოკი დაიწყო II პრინტთან. რატომ არ დაბეჭდა I'm Not Groot? დავამატოთ ცოტა კოდი და მივხვდებით.
მოცეულ კოდს თუ გავუშვებთ ისევ დაწერს I'm Groot-ს. არადა 2==2 იც ხომ დადებით პასუხს აბრუნებს? მართალია თუმცა IF ის პირობა თუ ჭეშმარიტია შეასრულებს თავის ბლოკს და დანარჩენ ელიფებს და ელს-ს გადაახტება. ეს ელიფი რაღაა? if-სწორედ ასეთი პრინციპით მუშაობის გამო გამოიყენება. ანუ მანდაც if რომ დაგვეწერა სხვა შემთხვევაში პროცეს გაანელებდა. ანუ თუ პირველი IF ჭეშმარიტი იქნებოდა მეორესაც შეამოწმებდა და იმენს შეამოწმებდა რამდენიც ეწერებოდა. ხოლოდ რამდენი ელიფიც გინდა ეწეროს თუ ერთი სწორია დანარჩენს გადაახტება. ხოლო თუ არც IF და არც elIF -მა დააბრუნა დადებითი პასუხი შეასრულებს პროგრამა else-ბლოკის კოდს აქვე გავითვალისწინოთ რომ else-ს პირობა არ უნდა. else/if-ს ალტერნატივა პითონში გვაქვს switch case თუმცა ამაზე საუბარს ჯერ არ ვაპირებ. დღეისთვის სულ ეს იყო. დაგიბრუნდებით მალე