තාර්කික (බූලියන්) මෙහෙයුම් සිදු කිරීමට පයිතන් තාර්කික ක්රියාකරුවන් සපයයි.(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
හෝ අගයන් දෙකෙහි තාර්කික OR ආපසු ලබා දෙයි.
print(True or True)
# True
print(True or False)
# True
print(False or True)
# True
print(False or False)
# False
ප්රතික්ෂේප කිරීම:not
not” අගය නිෂේධනය කරයි; සත්ය සහ අසත්යය ආපසු හරවනු ලැබේ.
print(not True)
# False
print(not False)
# True
and,or,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)
අනෙකුත් සියලුම අගයන් සත්ය ලෙස සැලකේ.
වස්තුවක boolean අගය ලබා ගැනීමට 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’ හෝ ‘false’ වැරදි ලෙස හැසිරවීමට, 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 ආපසු ලබා නොදෙන අතර, එය සත්ය හෝ අසත්ය ද යන්න මත වමේ හෝ දකුණේ අගය ලබා දෙන්න. උදාහරණය සංඛ්යාත්මක වේ, නමුත් තන්තු සහ ලැයිස්තු වැනි වෙනත් වර්ග සඳහාද එය අදාළ වේ. අහඹු ලෙස, 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 ප්රකාශනයක, ආදියෙහි කොන්දේසි සහිත ප්රකාශනයක් ලෙස භාවිතා කරන්නේ නම්, ප්රතිඵලය boolean අගයක් ලෙස විනිශ්චය කර සකසනු ලැබේ, එබැවින් ඔබ ඒ ගැන කරදර විය යුතු නැත, නමුත් ඔබ වැඩිදුර සැකසීම සඳහා ප්රතිලාභ අගය භාවිතා කරන්නේ නම්, ඔබ පරිස්සම් විය යුතුය.
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 සහ y හි x අසත්ය නම්, හෝ x හෝ y හි x සත්ය නම්, y හි අගය කුමක් වුවත් ප්රතිලාභ අගය 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