Python логикалық (логикалық) операцияларды орындау үшін логикалық операторларды қамтамасыз етеді.(and
,or
,not
)
Ол if операторындағы бірнеше шарттар арасындағы байланысты сипаттау үшін қолданылады.
Бұл бөлім келесіні сипаттайды.
- қиылысу:
and
- логикалық қосу:
or
- бас тарту:
not
and
,or
,not
Оператордың басымдылығы
Сонымен қатар, келесі тармақтар сақтық ретінде түсіндіріледі.
- bool түрінен басқа нысандарға арналған логикалық операторлар
and
,or
Бұл қайтарылатын мәндер міндетті түрде bool түріне жатпайды.- Қысқа тұйықталу (қысқа тұйықталуды бағалау)
қиылысу:and
және екі мәннің логикалық туындысын қайтарады.
print(True and True)
# True
print(True and False)
# False
print(False and True)
# False
print(False and False)
# False
Шындығында, ол көбінесе ақиқат немесе жалған үшін емес, салыстыру операторлары арқылы шартты өрнектер үшін қолданылады. Ақпарат үшін салыстыру операторлары төмендегідей.
<
>
a = 10
print(0 < a)
# True
print(a < 100)
# True
print(0 < a and a < 100)
# True
және келесідей біріктіруге болады.
print(0 < a < 100)
# True
логикалық қосу:or
немесе екі мәннің логикалық НЕМЕСЕ қайтарады.
print(True or True)
# True
print(True or False)
# True
print(False or True)
# True
print(False or False)
# False
бас тарту:not
not» мәннің терістеуін қайтарады; true және false кері.
print(not True)
# False
print(not False)
# True
and,or,notОператордың басымдылығы
Бұл логикалық операторлардың басымдылық реті келесідей: not ең жоғары болып табылады.
not
and
or
Келесі үлгі кодында жоғарыдағы өрнек төмендегідей түсіндіріледі. Қосымша жақшалармен проблема болмағандықтан, осы мысал сияқты жағдайларда оларды анық сипаттау оңайырақ болуы мүмкін.
print(True or True and False)
# True
print(True or (True and False))
# True
Егер сіз жұмыс істегіңіз келсе немесе одан бұрын және, жақшаларды() пайдаланыңыз.
print((True or True) and False)
# False
<
,>
Бұл салыстыру операторларының артықшылығы жоққа қарағанда жоғары. Сондықтан, жоғарыдағы мысалдағыдай әрбір салыстыру операциясы үшін жақша қажет емес.
print(0 < a and a < 100)
# True
Python тіліндегі оператор басымдылығының қысқаша мазмұны үшін төмендегі ресми құжаттаманы қараңыз.
bool түрінен басқа нысандарға арналған логикалық операторлар
With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.
Келесі нысандар Python логикалық операцияларында жалған болып саналады.
- Жалған деп анықталған тұрақтылар:
None
,false
- Сандық түрлерде нөл:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Бос тізбек немесе жинақ:
'
,()
,[]
,{}
,set()
,range(0)
Барлық басқа мәндер ақиқат болып саналады.
bool() функциясын объектінің логикалық мәнін алу үшін пайдалануға болады. ‘0’ немесе ‘False’ жолы ақиқат деп есептелетінін ескеріңіз.
print(bool(10))
# True
print(bool(0))
# False
print(bool(''))
# False
print(bool('0'))
# True
print(bool('False'))
# True
print(bool([]))
# False
print(bool([False]))
# True
Жолдағы «0» немесе «жалған» мәндерін жалған ретінде өңдеу үшін distutils.util.strtobool() пайдаланыңыз.
and,orБұл қайтарылатын мәндер міндетті түрде bool түріне жатпайды.
Мұнда сандық мәндегі әрбір оператордың нәтижесін көрсететін bool түрінен басқа нысанның мысалы берілген.
x = 10 # True
y = 0 # False
print(x and y)
# 0
print(x or y)
# 10
print(not x)
# False
Жоғарыдағы мысалдан көріп отырғаныңыздай, және және немесе Python-да bool түріндегі true немесе false мәнін қайтармайды, бірақ оның шын немесе жалған болуына байланысты мәнді сол немесе оң жақта қайтарады. Мысал сандық, бірақ жолдар мен тізімдер сияқты басқа түрлерге де бірдей қолданылады. Айтпақшы, not bool түріндегі ақиқат немесе жалған мәнін қайтарады.
және және немесе қайтаратын мәндерінің анықтамалары төмендегідей.
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.
The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.
6.11. Boolean operations — Expressions — Python 3.10.1 Documentation
Сол және оң өрнектердің мәндері бөлек ақиқат және жалған болғанда, қайтарылатын мәндерді түсіну оңай. Екінші жағынан, егер екеуі де ақиқат болса немесе екеуі де жалған болса, қайтару мәні ретке байланысты әртүрлі болады.
Егер сіз оны if операторында және т.б. шартты өрнек ретінде пайдалансаңыз, нәтиже логикалық мән ретінде бағаланады және өңделеді, сондықтан бұл туралы алаңдамаудың қажеті жоқ, бірақ одан әрі өңдеу үшін қайтару мәнін пайдалансаңыз, сіз сақ болу керек.
x = 10 # True
y = 100 # True
print(x and y)
# 100
print(y and x)
# 10
print(x or y)
# 10
print(y or x)
# 100
x = 0 # False
y = 0.0 # False
print(x and y)
# 0
print(y and x)
# 0.0
print(x or y)
# 0.0
print(y or x)
# 0
print(bool(x and y))
# False
Егер сіз оны шын немесе жалған деп есептегіңіз келсе, соңғы мысалдағыдай әрекет ете аласыз.bool(x and y)
және және немесе қайтаратын мәндері төмендегі кестеде жинақталған.
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
Қысқа тұйықталу (қысқа тұйықталуды бағалау)
Жоғарыдағы кестеден көріп отырғаныңыздай, x пен у-де x жалған болса немесе x немесе у-де x ақиқат болса, у мәніне қарамастан қайтарылатын мән x болады.
Мұндай жағдайда y бағаланбайды.
and
,or
Кейбір өңдеуді орындау үшін осы процестердің оң жағындағы функцияны немесе әдісті шақырсаңыз, сол жақтағы нәтижеге байланысты процесс орындалмауы мүмкін екенін ескеріңіз.
def test():
print('function is called')
return True
print(True and test())
# function is called
# True
print(False and test())
# False
print(True or test())
# True
print(False or test())
# function is called
# True