Friday, June 5, 2015

თავი 2 (2,7 - 2,10)



2.7 ოპერაციების თანმიმდევრობა

როცა გამოსახულებაში ერთზე მეტი ოპერატორია, შესრულების თანმიმდევრობა დამოკიდებულია თანრიგის წესზე (rules of precedence). მათემატიკური ოპერატორებისთვის პითონი იცავს მათემატიკის  წესებს.

1. ფრჩხილებს აქვს უმაღლესი რანგი და შეიძლება გამოიყენო, რომ აიძულო გამოსახულება  პირველი გამოითვალოს რაც შენ გინდა. 2 * (3 - 1) არის 4 და (1 + 1) ** (5 - 2) არის 8. ფრჩხილების გამოყენება ასევე შეგიძლია რომ გამოსახულება უფრო მარტივი წასაკითხი გახადო. როგორცაა(minute * 100) / 60 თუნდაც მნიშვნელობას არ ცვლიდეს.
2. შემდეგ მოდის ხარისხში აყვანა. ასე რომ 2 ** 1 + 1 არის 3 და არა 4,  3 * 1 ** 3 ის 3 და არა  27.
3. გამრავლებას და გაყოფას აქვს თანაბარი თანრიგი, თუმცა უფრო მაღალი თანრიგი ვიდრე მიმატება და გამოკლებაა, რომელთაც ასევე აქვთ თანაბარი თანრიგი. 2 * 3 - 1 არის 5 და არა 4, 6 +4 / 2 არის 8 და არა 5.
4. თანაბარი რანგის ოპერატორები გამოითვლება მარცხნიდან მარჯვნივ რიგის მიხედვით. გამოსახულებაში 5 -3 -1 პასუხია 1 და არა 3, იმიტომ რომ 5 - 3 გამოითვლება პირველად და 2 - 1 ხდება შემდეგ.

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


2.8 ოპერატორი მოდული

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

>>> quotient = 7 / 3
>>> print quotient
2
>>> remainder = 7 % 3
>>> print remainder
1

ასე რომ 7 გაყოფილი 2-ზე არის 3 და ნაშთი 1.

მოდულის ოპერატორი აღმოჩნდება გასაკვირად სასარგებლო. შეგიძლია შეამოწმო ერთი რიცხვი თუ იყოფა სხვაზე - თუ x % y არის ნული,  მაშინ x იყოფა y - ზე.
Also, you can extract the right-most digit or digits from a number. For example,
x % 10 yields the right-most digit of x (in base 10). Similarly x % 100 yields the
last two digits.
როგორც მივხვდი ლაპარაკია იმაზე რო გაიგო იყოფა თუ არა რიცხვი ათზე და ასზე , მაგრამ ზუსტად ვერ ვთარგმნე.



2.9 სტრინგი

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

>>> first = 10
>>> second = 15
>>> print first+second
25
>>> first = '100'
>>> second = '150'
>>> print first + second
100150

2.10 მომხმარებლისთვის ინფორმაციის შეყვანის მოთხოვნა

ზოგჯერ გვჭირდება რომ ცვლადის მნიშვნელობა მივიღოთ მომხმარებლისგან - დაწერონ კლავიატურაზე. პითონი უზრუნველყოფს ჩაშენებულ ფუნქციას (built-in function ) სახელად  raw_input რომლითაც შედის ინფორმაცია  კლავიატურიდან. როცა ეს ფუნქციაა გამოძახებული, პროგრამა ჩერდება და ელოდება მომხმარებელს, რომ რამე დაწეროს. როცა მომხმარებელი აჭერს Return - ს  ან  Enter - ს, პროგრამა აგრძელებს მუშაობას და raw_input აბრუნებს რაც მომხმარებელმა დაწერა როგორც სტრინგი.

>>> input = raw_input()
Some silly stuff
>>> print input
Some silly stuff

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

>>> name = raw_input('What is your name?\n')
What is your name?
Chuck
>>> print name
Chuck

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

>>> prompt = 'What...is the airspeed velocity of an unladen swallow?\n'
>>> speed = raw_input(prompt)
What...is the airspeed velocity of an unladen swallow?
17
>>> int(speed)
17
>>> int(speed) + 5
22

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

>>> speed = raw_input(prompt)
What...is the airspeed velocity of an unladen swallow?
What do you mean, an African or a European swallow?
>>> int(speed)
ValueError: invalid literal for int()

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