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

හෝ අගයන් දෙකෙහි තාර්කික 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ක්රියාකරුගේ ප්රමුඛත්වය

මෙම තාර්කික ක්‍රියාකරුවන්ගේ ප්‍රමුඛතා අනුපිළිවෙල පහත පරිදි වේ: ඉහළම නොවේ.

  1. not
  2. and
  3. 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)

ප්‍රතිලාභ අගයන් සහ සහ හෝ පහත වගුවේ සාරාංශ කර ඇත.

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

කෙටි පරිපථය (කෙටි පරිපථ ඇගයීම)

ඉහත වගුවෙන් ඔබට පෙනෙන පරිදි, 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