பைத்தானின் மும்மை ஆபரேட்டருடன் (நிபந்தனை ஆபரேட்டர்) ஒரு வரியில் அறிக்கைகள் இருந்தால் எழுதுதல்

வணிக

பைத்தானுக்கு மும்மை ஆபரேட்டர்கள் (நிபந்தனை ஆபரேட்டர்கள்) எனப்படும் எழுத்து நடை உள்ளது, இது if அறிக்கை போன்ற ஒரு செயல்முறையை ஒற்றை வரியில் விவரிக்க முடியும்.

மாதிரிக் குறியீட்டுடன் பின்வருபவை இங்கே விளக்கப்பட்டுள்ளன.

  • மும்முனை ஆபரேட்டர்களின் அடிப்படை எழுத்து
  • if ... elif ... else ...இதை ஒரு வரியில் விவரிக்கவும்
  • பட்டியல் விரிவான குறிப்பு மற்றும் மும்முனை ஆபரேட்டர்களை இணைத்தல்
  • அநாமதேய செயல்பாடுகள் (லாம்ப்டா வெளிப்பாடுகள்) மற்றும் மும்மை ஆபரேட்டர்களின் சேர்க்கை

இயல்பான if அறிக்கை பற்றிய கூடுதல் தகவலுக்கு பின்வரும் கட்டுரையைப் பார்க்கவும்.

மும்முனை ஆபரேட்டர்களின் அடிப்படை எழுத்து

பைத்தானில், மும்மை ஆபரேட்டரை பின்வருமாறு எழுதலாம்

Expression evaluated when the conditional expression is true if conditional expression else Expression evaluated when the conditional expression is false

நீங்கள் நிபந்தனைகளுக்கு ஏற்ப மதிப்புகளை மாற்ற விரும்பினால், ஒவ்வொரு மதிப்பையும் அப்படியே எழுதுங்கள்.

Value to return if conditional expression is true if conditional expression else Value to return if conditional expression is false
a = 1
result = 'even' if a % 2 == 0 else 'odd'
print(result)
# odd

a = 2
result = 'even' if a % 2 == 0 else 'odd'
print(result)
# even

நிபந்தனைகளுக்கு ஏற்ப செயலாக்கத்தை மாற்ற விரும்பினால், ஒவ்வொரு வெளிப்பாட்டையும் விவரிக்கவும்.

a = 1
result = a * 2 if a % 2 == 0 else a * 3
print(result)
# 3

a = 2
result = a * 2 if a % 2 == 0 else a * 3
print(result)
# 4

மதிப்பை வழங்காத வெளிப்பாடுகள் (எதுவும் இல்லை என்பதைத் தரும் வெளிப்பாடுகள்) ஏற்கத்தக்கவை. நிபந்தனையைப் பொறுத்து, வெளிப்பாடுகளில் ஒன்று மதிப்பீடு செய்யப்பட்டு செயல்முறை செயல்படுத்தப்படுகிறது.

a = 1
print('even') if a % 2 == 0 else print('odd')
# odd

சாதாரண if அறிக்கையுடன் எழுதப்பட்ட பின்வரும் குறியீட்டிற்குச் சமமானது.

a = 1

if a % 2 == 0:
    print('even')
else:
    print('odd')
# odd

லாஜிக்கல் ஆபரேட்டர்களைப் பயன்படுத்தி (மற்றும், அல்லது, முதலியன) பல நிபந்தனை வெளிப்பாடுகள் இணைக்கப்படலாம்.

a = -2
result = 'negative and even' if a < 0 and a % 2 == 0 else 'positive or odd'
print(result)
# negative and even

a = -1
result = 'negative and even' if a < 0 and a % 2 == 0 else 'positive or odd'
print(result)
# positive or odd

if ... elif ... else ...ஒரு வரி விளக்கம்

if ... elif ... else ...இதை ஒற்றை வரியில் எழுத சிறப்பு வழி இல்லை. இருப்பினும், மும்மை ஆபரேட்டரின் நிபந்தனை வெளிப்பாடு தவறானதாக இருக்கும்போது மதிப்பிடப்படும் வெளிப்பாட்டில் மற்றொரு மும்முனை ஆபரேட்டரைப் பயன்படுத்துவதன் மூலம் அதை உணர முடியும். கூடு கட்டும் மும்மை ஆபரேட்டர்களின் படம்.

இருப்பினும், அதை விரிவாகப் பயன்படுத்தாமல் இருப்பது நல்லது, ஏனெனில் இது வாசிப்புத்திறனைக் குறைக்கிறது.

a = 2
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# positive

a = 0
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# zero

a = -2
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# negative

பின்வரும் நிபந்தனை வெளிப்பாடு பின்வரும் இரண்டு வழிகளில் விளக்கப்படலாம், ஆனால் முந்தையது (1) எனக் கருதப்படுகிறது.

A if condition 1 else B if condition 2 else C
1. A if condition 1 else ( B if condition 2 else C )
2. ( A if condition 1 else B ) if condition 2 else C 

ஒரு உறுதியான உதாரணம் பின்வருமாறு. முதல் வெளிப்பாடு அது இரண்டாவது போல் கருதப்படுகிறது.

a = -2
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# negative

result = 'negative' if a < 0 else ('positive' if a > 0 else 'zero')
print(result)
# negative

result = ('negative' if a < 0 else 'positive') if a > 0 else 'zero'
print(result)
# zero

பட்டியல் விரிவான குறிப்பு மற்றும் மும்முனை ஆபரேட்டர்களை இணைத்தல்

ட்ரினரி ஆபரேட்டரின் பயனுள்ள பயன்பாடானது பட்டியல் புரிதல் குறியீட்டில் பட்டியல்களை செயலாக்கும் போது ஆகும்.

மும்முனை ஆபரேட்டர் மற்றும் பட்டியல் புரிதல் குறியீட்டை இணைப்பதன் மூலம், பட்டியலின் கூறுகளை மாற்றுவது அல்லது நிபந்தனைகளைப் பொறுத்து வேறு சில செயலாக்கங்களைச் செய்வது சாத்தியமாகும்.

l = ['even' if i % 2 == 0 else i for i in range(10)]
print(l)
# ['even', 1, 'even', 3, 'even', 5, 'even', 7, 'even', 9]
l = [i * 10 if i % 2 == 0 else i for i in range(10)]
print(l)
# [0, 1, 20, 3, 40, 5, 60, 7, 80, 9]

பட்டியல் புரிதல் குறிப்பீடு பற்றிய கூடுதல் தகவலுக்கு, பின்வரும் கட்டுரையைப் பார்க்கவும்.

அநாமதேய செயல்பாடுகள் (லாம்ப்டா வெளிப்பாடுகள்) மற்றும் மும்மை ஆபரேட்டர்களின் சேர்க்கை

ஒரு அநாமதேய செயல்பாட்டில் (லாம்ப்டா வெளிப்பாடு) கூட சுருக்கமாக விவரிக்கக்கூடிய மும்மை ஆபரேட்டர் பயனுள்ளதாக இருக்கும்.

get_odd_even = lambda x: 'even' if x % 2 == 0 else 'odd'

print(get_odd_even(1))
# odd

print(get_odd_even(2))
# even

மும்முனை ஆபரேட்டருடன் தொடர்பில்லாதது என்றாலும், மேலே உள்ள எடுத்துக்காட்டு லாம்ப்டா வெளிப்பாட்டிற்கு ஒரு பெயரை ஒதுக்குகிறது என்பதை நினைவில் கொள்க. எனவே, பைத்தானின் குறியீட்டு முறை PEP8 போன்ற தானியங்கி சோதனைக் கருவிகள் ஒரு எச்சரிக்கையை உருவாக்கலாம்.

ஏனெனில் செயல்பாடுகளுக்கு பெயர்களை ஒதுக்கும் போது def ஐப் பயன்படுத்த PEP8 பரிந்துரைக்கிறது.

PEP8 இன் கருத்து பின்வருமாறு

  • லாம்ப்டா வெளிப்பாடுகள் அழைக்கக்கூடிய பொருள்களை வாதங்களாக அனுப்பப் பயன்படுகின்றன, எடுத்துக்காட்டாக, பெயரிடாமல்
  • லாம்ப்டா வெளிப்பாடுகளில், பெயரால் வரையறுக்க def ஐப் பயன்படுத்தவும்
Copied title and URL