Home | 12 ஆம் வகுப்பு | 12வது கணினி அறிவியல் | பைத்தான் - தற்சுழற்சி செயற்கூறுகள்

பைத்தான் - பைத்தான் - தற்சுழற்சி செயற்கூறுகள் | 12th Computer Science : Chapter 7 : Core Python : Python Functions

12 வது கணினி அறிவியல் : அலகு 7 : Core பைத்தான் : பைத்தான் செயற்கூறுகள்

பைத்தான் - தற்சுழற்சி செயற்கூறுகள்

மடக்கினை போன்ற தற்சுழற்சியும் செயல்படும் ஆனால் சில சமயங்களில் மடக்கினை பயன்படுத்துவதற்கு பதில் தற்சுழற்சியை பயன்படுத்தலாம்.

பைத்தான் - தற்சுழற்சி செயற்கூறுகள்

மடக்கினை போன்ற தற்சுழற்சியும் செயல்படும் ஆனால் சில சமயங்களில் மடக்கினை பயன்படுத்துவதற்கு பதில் தற்சுழற்சியை பயன்படுத்தலாம். எந்தவொரு மடக்கினையும் தற்சுழற்சியாக மாற்றமுடியும்.

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

தற்சுழற்சி செயற்கூறு எவ்வாறு செயல்படும்

1. தற்சுழற்சி செயற்கூறு வெளிபுர குறிமுறையிலிருந்து அழைக்கப்படும்.

2. அடிப்படை நிபந்தனை நிறைவேற்றப்பட்டால் நிரலானது ஏற்ற வெளியீடு கொடுத்து வெளியேறும்.

3. இல்லையெனில், செயற்கூறானது தேவையான செயற்பாட்டை இயக்கும் மேலும் தற்சுழற்சி முறையில் தன்னைத் தானே அழைத்துக் கொள்ளும்.

தற்சுழற்சி பயன்படுத்தி காரணிபடுத்துதலுக்கு எடுத்துக்காட்டு.

எடுத்துக்காட்டு:

def fact(n):

if n == 0:

return 1

else:

return n* fact (n-1)

print (fact (0))

print (fact (5))

வெளியீடு

1

120


உங்களுக்குத் தெரியுமா?

print (fact (2000)) கூற்று Runtime பிழைச் செய்தியைக் கொடுக்கும். அதிகபட்ச மறு நிகழ்வின் சுழற்சியை ஒப்பிடுகையில் இது அதிகம். இது எதனால் எனில், தானமைவாக 1000 அழைப்புகளுக்குப் பிறகு பைத்தான் தன்னைத்தானே அழைப்பதை நிறுத்திவிடும். வரம்புகளை (limit) sys.setrecursionlimit (limit_value) பயன்படுத்தி மாற்றியமைக்க அனுமதிக்கிறது.

எடுத்துக்காட்டு

import sys

sys.setrecursionlimit(3000)

def fact(n):

if n == 0:

return 1

else:

return n* fact(n-1)

print(fact (2000))

12 வது கணினி அறிவியல் : அலகு 7 : Core பைத்தான் : பைத்தான் செயற்கூறுகள்