Логикалық операторлар
Өз тілімізбен айтқанда біз салыстыруды "тең", "үлкен", "кіші"сөздерімен белгілейміз. Бағдарламалау тілдерінде математикада қолданылатын сияқты арнайы белгілер қолданылады: > (үлкен), < (кіші), > = (үлкен немесе тең), < = (кіші немесе тең), = = (тең), != (тең емес).
Python тілінде қойылатын айнымалыға мәнді тағайындау операциясы мен (екі "тең"белгісі) жалғыз "тең" белгісімен, және салыстыру операциясын шатастырмаңыз. Тағайындау және салыстыру – бұл әртүрлі операциялар.
>>> a = 10
>>> b = 5
>>> a + b > 14
True
>>> a < 14 - b
False
>>> a <= b + 5
True
>>> a != b
True
>>> a == b
False
>>> c = a == b
>>> a, b, c
(10, 5, False)
Бұл мысалда c = a == b өрнегі екі астыңғы мәннен тұрады. Алдымен a және b айнымалылары салыстырылады (==). Осыдан кейін логикалық операцияның нәтижесі c айнымалысына тағайындалады. a, b, c өрнегі айнымалы мәндерді экранға шығарады.
Күрделі логикалық өрнектер
KByte >= 1023 типіндегі логикалық өрнектер қарапайым, өйткені оларда тек бір логикалық операция жасалады. Алайда, көбінесе іс жүзінде күрделі өрнектерге қажеттілік туындайды. Екі қарапайым өрнектің нәтижесіне байланысты "Иә" немесе "Жоқ" жауабын алу қажет болуы мүмкін. Мысалы, "сыртта қар жауып тұрма немесе жаңбыр ма", "news айнымалынының мәні 12-ден үлкен және 20-дан аз".
Мұндай жағдайларда екі немесе одан да көп қарапайым логикалық өрнектерді біріктіретін арнайы операторлар қолданылады. Кеңінен қолданылатын екі оператор бар – бұлар логикалық ЖӘНЕ (and), тағы НЕМЕСЕ (or).
and операторын қолданған кезде True алу үшін берілген операторды байланыстыратын екі қарапайым өрнектің нәтижелері шынайы болуы керек. Егер кем дегенде бір жағдайда нәтиже False болса, онда барлық күрделі өрнек жалған болады.
or операторын пайдалану кезінде True алу үшін күрделі өрнектің құрамына кіретін кем дегенде бір қарапайым өрнектің нәтижесі шынайы болуы керек. or операторы жағдайында күрделі өрнек оның қарапайым өрнектерінің екеуі де жалған болған кезде ғана жалған болады.
Мысалы, х айнымалысына 8 ( x = 8), ал y айнымалысына 13 ( y = 13) берілді делік. Y < 15 and x > 8 логикалық өрнегі келесідей орындалады. Алдымен y < 15 өрнегі орындалады. Оның нәтижесі True болады. Содан кейін X > 8 өрнегі орындалады. Оның нәтижесі False болады. Бұдан кейін, өрнек True and False теңдестіреді, бұл жағдайда False қайтарады.
>>> x = 8
>>> y = 13
>>> y < 15 and x > 8
False
Егер біз өрнекті осылай жазсақ: x > 8 and y < 15, онда ол да False болады. Алайда y < 15 салыстыруды интерпретатормен орындалмас еді, өйткені оны орындаудың қажеті жоқ. Өйткені, алғашқы қарапайым логикалық өрнек (x > 8) жалғанды қайтарып алды, ол and операторы жағдайында барлық өрнекті жалғанға айналдырады.
Or операторы жағдайында екінші қарапайым өрнек, егер біріншісі жалғанды қайтарса, тексеріледі, ал егер біріншісі шындықты қайтарса, тексерілмейді. Мұнда or қай жағында да болсада шындық үшін бүкіл өрнектің жалғыз True жеткілікті.
>>> y < 15 or x > 8
True
Python тілінде тағыда унарлық not логикалық операторы бар, яғни, теріске шығару. Ол шындықты өтірікке, ал өтірікті шындыққа айналдырады. Ол унарлы, өйткені ол өзінен кейін тұрған бір өрнекке қолданылады, оң немесе сол жақтарында тура беретіндей бинарлық and және or жағдайдағыдай емес.
>>> not y < 15
False
Мұнда у < 15 True қайтарады. Жоққа шығару арқылы, біз False аламыз.
>>> a = 5
>>> b = 0
>>> not a
False
>>> not b
True
5 саны ақиқат ретінде түсіндіріледі, ақиқатты теріскешығару жалғанды береді. Нөль False-ке тең. False-ні теріске шығару True береді.
Python тілінде операторлардың орындалу приоритеті бар, яғни бірінші кезекте орындалатыны көбейту және бөлу операторлары орындалады. Ал қосу мен азайту амалдарының приоритеті томен. Егер операцияның проритеті бірдей болса, онда солдан оңға қарай кезекпен орындалады. Операторлардың орындалу кезегін өзгерту үшін жақшалар қолданылады - бұл ең алдымен орындалатын оператор, ол операндамен бірге жазылады. (3 + 7) * (6 + 4) Бүл өрнектің мәні 20 болатынын айтқан едік. Егер жақшаны алатын болсақ, нәтиже өзгереді: 3 + 7 * 6 + 4 Python алдымен 7-ні 6-ға көбейтеді, көбейтіндіге 3 пен 4-ті қосады. Нәтиже басқаша болып шығады - 49. Операторларды орындау реті және олардың приоритеті (бірінші кезекте орындалатыны) Бірінші өрнек мысалында біз + смиволын пайдаландық және осы символдың жанында қатар тұрған екі санды қосу операциясын орындауға нұсқау бердік. Бұл жағдайда + оператор, бір немесе екі операнда мәніне қарапайым амал орындайтын команда. Бағдарламадағы көптеген сөйлемдер (логикалық жолдар) өрнектен құралған. Өрнекке қарапайым мысал: 2 + 3. Өрнекті оператор мен операндыларға бөлуімізге болады. Оператор деп амалдарды, ал операнд деп сандарды айтуға болады. Өрнектегі операндылар 2 жэне 3. Мына мысалдарды теріп жазыңыз: » > 2 + 3 5 » > 3 * 5 15 Жауабы бірден есептеліп отыр. 2+2 деген бұйрыкты өрнек деп атадық. Бағдарламалау тіліндегі өрнек термині - аяқталған іс-әрекетті орындайтын бұйрық. Қандай да бір мэнді есептеу, деректердің андай да бір құрылымын құру, программалық кодты орындау басқару, функцияны немесе әдісті шақыру командасы іс-әрекет деп аталынады. Python тіліндегі кез келген өрнек каретаны кері қайтару жэне жолды ауыстыру символымен аяқталуы керек. Олар программалық кодқа батырмасын басу аркылы қойылады. Тағы да бірнеше өрнек қарастырайық. С] 3*4+8 3-ті 4-ке көбейтеміз, пайда болған көбейтіндіге 8-ді қосамыз жэне 20-ны аламыз. Көбейту амалы қосу амалынан бұрын орындалады. С] 5/6 5-ті 6-ға бөлеміз және - 0,8333333333333334 мэнін аламыз.
Битгік ЖОҚ X саны үшін биттік ЖОҚ операциясы - (х+1)-ге тең. < Кіші Х-тің у-тен кіші екендігін анықтайды. Салыстыру операторларының барлыгы да True немесе False қайтарады. Бұл сөздер бас әріппен жазылғанына назар аудару керек.
> Үлкен Х-тің у-тен үлкен екендігін анықгайды. <= Кіші немесе тең Х-тің у-тен кіші немесе тең екендігін анықтайды. >= Үлкен немесе тең Х-тің у-тен үлкен немесе тең екендігін анықтайды. — = Тең Нысандардың тең екенін анықгайды. 1= Тең емес Нысандардың тең емес екенін анықгайды. not Логикалық ЖОҚ Егер х саны True болса, онда False қайтарады. Егер х саны False болса, онда True деп жазады. and Логикалық ЖӘНЕ Егер х саны False болса, х жэне у False деп есептейді. Kepi жағдайда у мэнін жазады. or Логикалық НЕМЕСЕ Егер х саны True болса, онда True деп жазады. Кері жағдайда у мәнін жазады.
Математикалық операцияларды жэне меншіктеуді қысқаша жазуға болады. а = 2;а = а*3 өрнегін a = 2; a *= 3 түрінде жазуға болады. «айнымалы=өрнектің айнымалы мэні» түріндегі өрнектерді «айнымалы операция=өрнек түрінде жазуға болады. Есептеу тэртібі өзгешерек. Мысалы + 3 * 4 түрінде өрнек берілсе, көбейту амалының бірінші орындалатыны мектеп курсынан белгілі. Көбейту амальгаың приоритеті қосу амалынан басым. Келесі кестеде Python операторларыньщ приоритет! көрсетілген. Кестенің төменгі жағында орналасқан операторлар ең алдымен есептеледі де, кестенің жоғарғы бөлігіндегілер соңында есептеледі.
Операторлар приоритеті
оператор сипаттамасы lambda лямбда-өрнек or Логикалық «немесе» and Логикалық «жэне» not X Логикалық «емес» in, not in Тәуелділігін тексеру is, is not Теңцігін тексеру <, <=, >, >=, !=, == салыстыру J____________________________ Биттік «немесе» A Битгік «тек қана немесе» & Биттік «жэне» « , » Орын алмастыру +> Қосу жэне азайту Көбейту, бөлу, бүтінсанды болу жэне
бөлудің қалдығы +Х, -X Теріс сан, оң сан ~х Биттік «емес» ** Дәрежеге шығару x.attribute Атрибутқа сілтеме xf индекс) Индекс бойьшша іздеу х [индекс 1 :индекс21 Қырқып алу Г(аргументтер ...) Функцияны шақыру (өрнектер,...) Байланыс немесе кортеж [өрнектер, ...1 Тізім {кілт:деректер,...} Сөздік
Өрнекті есептеу ретін жеңілдету үшін жақшаны қолдануға болады. Мысалы, 2+(3*4) дегенді 2+3*4 деген өрнекті ұғыну оңай. Мысалды expression.py ретінде сакдаңыз. length = 5 breadth = 2 area = length * breadth print(‘Ауданы тең болады’, area) ргЫ('Периметрі тең болады', 2 * (length + breadth)) Қорытындысы: $ python expression.py Ауданы тең болады 10 Периметрі тең болады 14 Бұл бағдарлама қалай жұмыс істейді? Тіктөртбұрьпптың ұзындығы мен ені length және breadth айнымалыларында сақгалады. Оларды периметр мен ауданды есептеу үшін қолданамыз. Есептеу нәтижесі area айнымалысында сақталады жэне print функциясы арқылы экранға шығарылады. Екіншісінде 2 * (length + breadth) өрнегінің мәнін print функциясына бірден қоямыз.
Кейде бір уақытта бір емес, бірнеше шарттарды тексеру керек болады. Мысалы, берілген санды (n % 2 == 0) (n ді 2ге бөлгенде қалдық 0 тең) шартының көмегімен жұп екендігін/еместігін тексеру керек, ал егер берілген екі n және m бүтін сандардың жұп екендігін тексеру қажет, екі шарттың да әділдігін тексеру керек: n % 2 == 0 және m % 2 == 0, оларды and (логикалық ЖӘНЕ) операторының көмегімен біріктіру керек: n % 2 == 0 and m % 2 == 0.
Питон тілінде стандартты логикалық операторлар бар:
логикалық ЖӘНЕ;
логикалық НЕМЕСЕ;
логикалық терістеу.
Логикалық ЖӘНЕ бинарлық операторлар (яғни сол және оң екі операнды бар оператор) болып табылады.
Достарыңызбен бөлісу: |