முன்பு ஒரு காலத்தில் காட்டில் சிங்கம் ஒன்று வாழ்ந்து வந்தது. அந்தச் சிங்கத்திற்குச் செயற்கூறு(Function) என்று பெயர். அந்தச் சிங்கத்தைப் பற்றி இதற்கு முன்பே நாம் படித்திருக்கிறோம். நினைவிருக்கிறதா? அந்தச் சிங்கத்தைக் கொண்டு தான் கால்குலேட்டர் உருவாக்கப் போகிறோம். சிங்கத்தைக் கொண்டு கால்குலேட்டரா – எப்படி என்கிறீர்களா? முன்பு அந்தச் சிங்கத்தைச்(செயற்கூற்றைப்) பயன்படுத்தத் தெரிந்து கொண்டிருந்தோம். இப்போது நாமே உருவாக்கப் போகிறோம். உருவாக்குவோமா?
செயற்கூறு(Function) என்றால் என்ன:
இந்தத் தலைப்பை எல்லாம் முன்னரே படித்து விட்டோம். பத்து வேலைகளை ஒன்றாகத் தொகுத்து அதற்கு ஒரு பெயர் வைத்துக் கொள்வது – அவ்வளவு தான்! இதைத் தான் இப்போது செய்யப் போகிறோம். Calculator(கணிப்பான்)இல் என்னென்ன வேலைகள் செய்ய முடியும்? கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் ஆகியவற்றைச் செய்ய முடியும். பைத்தானைக் கூப்பிட்டு, ‘எனக்குக் கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் ஆகியவற்றைச் செய்து தா’ என்று கேட்கப் போகிறோம். இனி நமக்கும் பைத்தானுக்கும் இடையிலான உரையாடல்: [நம் சார்பாக நந்தன், பைத்தானுடன் உரையாடுகிறார்.]
நந்தன்: வாங்க பைத்தான்! நல்லா இருக்கீங்களா?
பைத்தான்: ம் ம்.. நல்லா இருக்கேன். நீங்க எப்படி இருக்கீங்க?
நந்தன்: ஓ! நல்லா இருக்கேன். நீங்க ஓர் உதவி செய்யணும்.
பைத்தான்: தெரியும், தெரியும். தேவைனா தானே என்னைத் தேடி வருவீங்க
நந்தன்: அடடா! அப்படியெல்லாம் சொல்லாதீங்க! போன வாரம் கூட, உங்களைப் பற்றிக் கணியத்தில் பெருமையாக எழுதியிருக்கிறேன்.
பைத்தான்: சரி, சரி, என்ன உதவி செய்யணும் சொல்லுங்க!
நந்தன்: எனக்கு ஒரு கணிப்பான்(Calculator) செய்யணும். அதற்கான வழிகளை நீங்கள் சொன்னீங்கனா, நான் செய்திடுவேன்.
பைத்தாண்: அவ்வளவு தானா? சொல்லவா?
நந்தன்: மொத்தமாச் சொல்லிடாதீங்க! ஒவ்வொரு வரியாச் சொன்னா, கொஞ்சம் கொஞ்சமாப் புரிஞ்சு செய்வேன்.
பைத்தான்: சரி, அப்படியே சொல்றேன். முதலில் Calculator.py னு ஒரு கோப்பு(File) உருவாக்கிக் கோங்க.
நந்தன்: Calculator.pyனு ஒரு கோப்பு(File) உருவாக்கிட்டேன். அப்புறம்?
பைத்தான்: Calculator(கணிப்பான்)னா கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் னு நாலு வேலை செய்வீங்க, அப்படித்தானே!
நந்தன்: ஆமா, ஆமா!
பைத்தாண்: இந்த ஒவ்வொரு வேலைக்கும் எத்தனை எண்கள் கொடுப்பீங்க? அதாவது எத்தனை எண்களைக் கூட்டனும்னு தெரிஞ்சுக்கலாமா?
நந்தன்: இரண்டு எண்கள்
பைத்தான்: ம் ம். சேர்த்திடலாம். இந்த ஒவ்வொரு வேலையையும் நாங்க பைத்தானில் செயற்கூறு(Function)ன்னு சொல்லுவோம்.
நந்தன்: தெரியும். அதைத்தான் ஏற்கெனவே சொல்லியிருக்கீங்களே!
பைத்தான்: ஒவ்வொரு செயற்கூற்றையும்(Functionஐயும்) வரையறுத்துச் சொல்லனும். அப்படித்தானே!
நந்தன்: புரியலையே!
பைத்தான்: நந்தன் ஐயா! நீங்க மனுசங்க! கூட்டல், கழித்தல், பெருக்கல், வகுத்தல் னு சொன்னாலே உங்களுக்குத் தெரியும். நாங்க மனுசங்க கிடையாது. எங்க கிட்ட வந்து கூட்டல், கழித்தல்னு சொன்னா என்னன்னு தான் கேட்போம். நீங்க தான், கூட்டலுக்கு என்ன செய்யணும்? கழித்தல்னா என்ன செய்யணும்னு எங்களுக்குச் சொல்லிக் கொடுக்கணும். புரியுதா?
நந்தன்: இப்போ நல்லாப் புரியுது.
பைத்தான்: இப்படி ஒவ்வொரு செயற்கூற்றையும் விளக்கிச் சொல்றதைத் தான், ‘வரையறுத்துச் சொல்லுங்க’ன்னு சொன்னேன்.
நந்தன்: சரி சரி, அறுக்கிறேன்.
பைத்தான்: என்னது?
நந்தன்: அதாவது, வரையறுக்கிறேன்.
பைத்தான்: அப்போ, உங்களுக்கு வரையறுக்கத் தெரியுமா?
நந்தன்: ஹி ஹி.. நீங்க தான் பெரிய மனசு பண்ணிச் சொல்லிக் கொடுக்கணும்.
பைத்தான்: வரையறை என்பதை ஆங்கிலத்தில் Definition என்று சொல்வார்கள். அதை நாங்கள் பைத்தானில் சுருக்கமாக def என்று சொல்வோம். இப்போ, நீங்க கூட்டலை வரையறுத்துச் சொல்ல நினைத்தால்,
def கூட்டல்():
pass
என்று எங்களிடம் சொல்ல வேண்டும்.
நந்தன்: def புரிந்தது. கூட்டல்னு எழுதினதும் புரிந்தது. ஆனால், அதற்குப் பக்கத்திலேயே, () . pass என நிறைய கொடுத்திருக்கீங்க. அதெல்லாம் புரியலயே!
பைத்தான்: நல்லாக் கவனிச்சு கேட்கிறீங்களே! வாழ்த்துகள்!
நந்தன்: நன்றி, அதையும் கொஞ்சம் விளக்கிச் சொல்லுங்களேன்.
பைத்தான்:
def கூட்டல்():
pass
னு எழுதியிருக்கிறதுல,
1) கூட்டல் அப்படிங்கிறது, நாம செய்யப் போற வேலையோட பெயர். அதாவது செயற்கற்றோட(Function) பெயர்.
2) () கொடுத்திருக்கிறோம். இந்த அடைப்புக்குறிக்குள் தான் இந்த வேலைக்குரிய உள்ளீடுகளைக் கொடுக்கனும். நீங்கள் இரண்டு எண்களைக் கூட்டனும்னா,
def கூட்டல்(எண்1, எண்2) னு கொடுக்கணும். புரியுதா?
நந்தன்: நல்லாப் புரிஞ்சது. ஆனால், அந்த Passனு இருக்கிறது என்னன்னு நீங்க சொல்லவே இல்லையே!
பைத்தான்: (பெரியாருக்குப் பேரனா இருப்பான் போலயே! கேள்வியாக் கேட்கிறான்..)
நந்தன்: நீங்க மைண்ட் வாய்ஸ்னு நினைச்சு சத்தமாப் பேசிட்டீங்க பைத்தான்!
பைத்தான்: ஓ கேட்டிருச்சா?
நந்தன்: பரவாயில்ல. (சிரித்துக் கொண்டே) என்னைப் பாராட்டித் தான் பேசினீங்க.
பைத்தாண்: சரி, இப்போ passக்கு வருவோம். கூட்டல்னா என்னன்னு உங்களுக்குத் தெரியும். எங்களுக்குச்(பைத்தானுக்கு) சொல்லிக் கொடுத்தீங்களா?
நந்தன்: இல்லையே!
பைத்தான்: அதனால் தான் அங்கே pass கொடுத்திருக்கிறோம்.
நந்தன்: அப்போ வரையறை(Definition) கொடுக்கலேனா pass கொடுக்கணும். அப்படித்தானே!
பைத்தான்: க. க. க. போ.
நந்தன்: அப்படின்னா?
பைத்தான்: நீங்க 2K கிட்டா?
நந்தன்: ஆமா! நீங்களும் 2K கிட் தானே!
பைத்தான்: ஆமா! ஆனால் க. க. க. போ னா எனக்குத் தெரியும். உங்களுக்குத் தெரியனும்னா புலிகேசி பாருங்க. புரியும்.
நந்தன்: ஓ! காமெடியா?
பைத்தான்: ஆமா!
நந்தன்: ஹி ஹி.. சிரிச்சிட்டேன்.
பைத்தான்: சரி சரி, மேலே சொல்றேன். உங்களுக்குக் கூட்டல் பற்றிய வரையறை தெரியும்னா passஐ எடுத்து விட்டு, அந்த வரையறையை(Definition) அங்கே எழுதிடலாம்.
நந்தன்: ஓ! print(எண்1+எண்2) – இப்படி எழுதிடலாமா?
பைத்தான்: (திரும்பவும்) க.க.க. போ.
நந்தன்: (மனசுக்குள்) மொதல்ல நாம போய் மொதல்ல புலிகேசி படம் பார்க்கணும்!
பைத்தான்: என்ன சொன்னீங்க?
நந்தன்: நல்லாப் புரிஞ்சுடுச்சுன்னு சொன்னேன்.
பைத்தான்: அப்போ மொத்தமா எழுதிக் காட்டுங்க பார்க்கலாம்.
நந்தன்: சரி,
def கூட்டல்(எண்1, எண்2):
print(எண்1 + எண்2)
பைத்தான்: சரியா எழுதியிருக்கீங்க! வாழ்த்துகள்.
நந்தன்: நன்றி பைத்தான்!
பைத்தான்: சரி, கூட்டலின் வரையறையை எனக்குச் சொல்லிக் கொடுத்துட்டீங்க. இனிமேல் நீங்க எப்போ கூட்டச் சொல்றீங்களோ அப்போ கூட்டிச் சொல்றேன்.
நந்தன்: அதை எப்படி நான் உங்களுக்குச் சொல்லணும்?
பைத்தான்: முதலில்
def கூட்டல்(எண்1, எண்2):
print(எண்1 + எண்2)
இதை எனக்குச் சொல்லிடுங்க. பிறகு எப்போ இரண்டு எண்களைக் கூட்டனுமோ அப்போ, கூட்டல்(10,20) அப்படின்னு கூப்பிடுங்க. உடனே கூட்டிச் சொல்லிடுவேன்.
நந்தன்: ஓ! அருமை!
பைத்தான்: இதே போலக் கழித்தல், பெருக்கல், வகுத்தல் இந்தச் செயற்கூறுகளையும்(Functions) நீங்கள் செய்து தந்தால், நான் ஒரு கணிப்பான்(Calculator)ஆக மாறி, உங்களுக்கு உதவுவேன்.
நந்தன்: (தழுதழுத்த குரலில்) மிக்க நன்றி பைத்தான்.
பைத்தான்: நன்றி எல்லாம் இருக்கட்டும். இப்படி இரண்டு எண்களை வாங்கி எனக்குக் கொடுக்க வேண்டும் என்றால் எப்படிக் கொடுக்க வேண்டும் என்று தெரியுமா?
நந்தன்: தெரியும். நினைவு இருக்கிறது. input() என்றொரு செயற்கூறு(Function) இருக்கிறது. int() என்றொரு செயற்கூறு(Function) இருக்கிறது. இரண்டையும் சேர்த்துப் பயன்படுத்த வேண்டும். சரி தானே!
பைத்தான்: புயல் வேகத்தில் பைத்தான் படிக்கிறீர்கள் போல் இருக்கிறது!
நந்தன்: ஹி ஹி, கொஞ்சம் அப்படித் தான்! சரி சரி, கீமே நான் எழுதியிருக்கும் நிரல் சரியாக எழுதியிருக்கிறேனா எனப் பார்த்துச் சொல்லுங்களேன் பைத்தான்.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def கூட்டல்(எண்1, எண்2): | |
print(எண்1 + எண்2) | |
def கழித்தல்(எண்1, எண்2): | |
print(எண்1 – எண்2) | |
def பெருக்கல்(எண்1, எண்2): | |
print(எண்1 * எண்2) | |
def வகுத்தல்(எண்1, எண்2): | |
print(எண்1 / எண்2) | |
எண்_1 = int(input("முதல் எண்: ")) | |
எண்_2 = int(input("இரண்டாவது எண்: ")) | |
கூட்டல்(எண்_1, எண்_2) |
பைத்தான்: சிறப்பு! நன்றாக எழுதியிருக்கிறீர்கள்.
நந்தன்: நன்றிகள் பல!
கி. முத்துராமலிங்கம், பயிலகம்