Thursday, June 11, 2015

თავი 3 (3,1 - 3,2)



                                 თავი 3

             Conditional execution


3.1    ლოგიკური გამოსახულება


ლოგიკური გამოსახულება არის გამოსახულება რომელიცაა მართალი ან მცდარი. შემდეგ გამოსახულებაში გამოყენებულია ოპერატორი == რაც ადარებს ორ ოპერანდს და თუ ერთმანეთის ტოლია შესაბამისად ამბობს, რომ მართალია ( True ) და თუ არა - მცდარი (False):

>>> 5 == 5
True
>>> 5 == 6
False

True (მართალი) და False (მცდარი) არის სპეციალური მნიშვნელობები, რომელიც ეკუთვნის bool ტიპს; ეს არაა სტრინგი:

>>> type(True)
<type 'bool'>
>>> type(False)
<type 'bool'>

ოპერატორი == ერთ-ერთი შედარების ოპერატორებიდან.

x != y  # x არაა y - ს ტოლი
x > y    # x არის y - ზე დიდი
x < y    # x არის y - ზე ნაკლები
x >= y  # x არის y - ზე მეტი ან ტოლი
x <= y  # x არის y - ზე  ნაკლები ან ტოლი
x is y # x არის იგიევე რაც y
x is not y # x არ არის იგივე რაც y

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

3.2 ლოგიკური ოპერატორები


არის სამი ლოგიკური ოპერატორი and, or და not ("და", "ან" და "არა" ). ამ ოპერატორების სემანტიკა (მნიშვნელობა) არის იგივე რაც ინგლისურად/ქართულად. მაგალითად:

x > 0 and x < 10

არის მართალი მხოლოდ მაშინ, როცა x მეტია ვიდრე 0 და ნაკლები ვიდრე 10.

n % 2 == 0 or n % 3 == 0

არის მართალი მაშინ, როცა პირობის ერთი ნაწილი მაინც მართალია ანუ  n უნაშთოდ იყოფა 2 -ზე ან 3 - ზე.

ბოლო ოპერატორი უარყოფს ლოგიკურ გამოსახულებას. not (x > y) არის მართალი როცა x > y არის მცდარი, რაც ნიშნავს, რომ მაშინ x ნაკლებია ან ტოლი y - ზე.

მკაცრად რომ ვთქვათ ლოგიკური ოპერატორების ოპერანდები უნდა იყოს ლოგიკური გამოსახულებები, მაგრამ პითონი არ არის ძალიან მკაცრი და ნულის გარდა ნებისმიერი რიცხვი ითარგმნება როგორც მართალი (“true”).

>>> 17 and True
True


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