Wednesday, February 17, 2021

பைத்தானில் ஃபங்க்சன்கள்.

 



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

பைத்தானில் ஃபங்க்சன் ஆனது def என்ற கீவேர்டுடன் ஆரம்பிக்கின்றது. தொடர்ந்து அதன் பெயரை குறிப்பிடுகின்றோம்.தொடர்ந்து அந்த ஃபங்க்சனுக்கு ஏதாவது பாராமீட்டர் அனுப்பலாம். எனினும் இதுஆப்சனல் தான்.

 def greetings():

    print("hello world")

greetings()

greetings()def greetings():

    print("hello world")

 

 

greetings()

greetings()

வெளியீடு:

hello world

hello world

மேலே உள்ள நிரலில் gtreetings என்று ஒரு ஃபங்க்சன் எழுதியுள்ளோம். இதை இரண்டு தடவை அழைத்துள்ளோம்.

def add(x,y):

    c=x+y

    print(c)

 

add(2,5)

வெளியீடு:

7

சான்று நிரல்-3

def update(x):

    x=8

    print("x" , x)

 

a=10

update(a)

print("a", a)

வெளியீடு:

x 8

a 10

 

மேலே உள்ள நிரலில் a என்ற வேரியபிளில் உள்ள மதிப்பை (10) update என்ற ஃபங்க்சனுக்கு அனுப்பியுள்ளோம்.

அதை x என்ற வேரியபிளில் மதிப்பிருத்துகின்றோம்.

பிறகு x என்ற வேரியபிளின் மதிப்பை 8 என்று மாற்றுகின்றோம்.

இப்பொழுது ஃபங்க்சனில் xன் மதிப்பு 8 என்று வெளியிடப்படுகின்றது.

இப்பொழுது ஃபங்க்சன் இயக்கம் முடிந்த பிறகு aன் மதிப்பு 10 என உள்ளதை கவனிக்கவும்.

ஆனால் a-ந் முகவரியையும் xன் முகவரியையும்  வேரியபிளின் மதிப்பை  மாற்றுவதற்கு முன் ப்ரின்ட் செய்தால் ஒரே மதிப்பை தான் காட்டும்.

இப்பொழுது xன் மதிப்பை மாற்றிய பின் இரண்டு வேரியபிளின் மதிப்பையும்  ப்ரின்ட் செய்தால் வெவ்வேறு முகவரி காட்டும். ஏனெனில் இண்டிஜெர் மதிப்பும் பைத்தானில் இம்யூடபிள் . அந்த வேரியபிளின் மதிப்பை மாற்றும் பொழுது வேறொரு முகவரியில் சேமிக்கப்படுகின்றது.

சான்று நிரல்.

def update(x):

    print("x address ",id(x))

    x=8

    print (" x address ", id(x))

    print("x" , x)

 

a=10

update(a)

print (" a address ", id(a))

print("a", a)

வெளியீடு:

x address  505510888

 x address  505510856

x 8

 a address  505510888

a 10

xன் மதிப்பை மாற்றுவதற்கு முன் x,a என்ற இரு வேரியபிளின் முகவரியும் ஒன்றாய் உள்ளதை கவனிக்கவும்.

def person(name, age):

    print(name)

    print(age)

 

person ("karthi",40)

வெளியீடு:

கார்த்தி

40

இதில் நேம் என்ற வேரியபிளிற்கு  “karthi” என்ற மதிப்பையும் age என்ற வேரிபிளிற்கு 40 என்ற மதிப்பையும் அனுப்பியுள்ளோம் ஏனெனில் ஒவ்வொரு ஒவ்வொரு ஆர்க்கியுமெண்டின் பொசிசன் நமக்கு தெரியும்.ஆனால் ஒரு ஆர்க்யூமெண்டின் பொசிசன் நமக்கு தெரியாது எனில் நாம் பெயரை குறிப்பிட்டு பாஸ் செய்யலாம்.

சான்று நிரல்.

def person(name, age):

    print(name)

    print(age)

 

person (age=40, name="karthi")

வெளியீடு:

கார்த்தி

40

அடுத்த நிரல்.

def add(a,*b):

    c=a

    for i in b:

        c=c+i

    print(c)

 

add(2,4,5,7)

வெளியீடு:

18

மேலே உள்ள நிரலில் நான்கு வேரியபிளை add ஃபங்க்சனுக்கு அனுப்பியுள்ளோம். A க்கு 2ம் bக்கு 4,5,7ம் அனுப்பப்படுகின்றது.

b என்பது ஃபுங்க்சன் ஹெட்டெரில் *b என்று குறிப்பிடப்பட்டுள்ளதை கவனிக்கவும்.

ஆனால் ஒன்றுக்கு மேற்பட்ட மதிப்புகளை வேரியபிளின் பெயருடன் அனுப்புகையில் ஃபார்மல் பாராமீட்டரில் * கீயை இரண்டு தடவை குறிப்பிட வேண்டும்.

சான்று நிரல்.

def person(name,**b):

    print(name)

    for i,j in b.items():

        print(i,j)

   

 

person('karthi',age=40,contact=9629329142)

வெளியீடு:

Karthi

age 40

contact 9629329142

பின் குறிப்பு:

ஃபங்க்சன் அழைக்கப்படும் இடத்தில் உள்ள பாராமீட்டர்கள் actual parameter என்றும் ஃபங்க்சன் ஹெட்டரில் உள்ள பாராமீட்டரில் உள்ள பாராமீட்டர்கள் ஃபார்மல் பாராமீட்டர் என அழைக்கப்படுகின்றது.

நன்றி.

முத்து கார்த்திகேயன் ,மதுரை.

contact:91 9629329142.

 

 

 

 

 

 

 

ads Udanz

No comments:

Post a Comment