User defined function: defining, parameters, default values, return value

Functions પુનઃઉપયોગી mini-machines છે જે input parameters લે છે, values ગાયબ હોય તો default settings લાગુ કરે છે, અને એક સાફ return result આપે છે.

11 min read · 12 cards · 3 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

પુનરાવર્તિત Code નું દુઃસ્વપ્ન

તમારા Semester 1 BCA104 C labs માં, જો તમને એક percentage calculate કરવું કે એક currency symbol format કરવું પાંચ અલગ વાર જોઈએ, તમારે બિલકુલ એ જ math lines ફરી લખવી કે copy paste કરવી પડત. જો તમે એક નાની formula ભૂલ કરો, તમારે પાંચેય જગ્યાઓ ઠીક કરવા તમારા પૂરા main block માં શોધવું પડત. આપણે આપણી calculation ને એક વાર એક custom, named package માં package કરીને અને નવા numbers સાથે જ્યારે માંગીએ call કેમ ન કરી શકીએ?

Theory

Juicer Machine

એક function ને તમારા kitchen માં એક electronic juicer machine ની જેમ વિચારો. machine પોતે એના design (code block) થી વ્યાખ્યાયિત છે. જે fruits તમે ઉપરના slot માં નાખો છો એ input parameters છે. speed knob setting જે medium પર default થાય છે જ્યાં સુધી તમે એને હાથે ન ફેરવો એક default parameter value ની જેમ કામ કરે છે. છેલ્લે, spout થી તમારા glass માં પડતો તાજો juice returned value છે.

Theory

એક Function ની સંરચના

એક user defined function statements નો એક named, પુનઃઉપયોગી block છે જે એક ખાસ computation કરે છે. તમે એને def keyword વાપરીને વ્યાખ્યાયિત કરો છો, એની પછી function નામ અને optional parameters રાખતા parentheses. C થી ઊલટું, Python inputs માટે dynamic typing વાપરે છે, એટલે તમે ક્યારેય argument data types declare કરતા નથી. code block માત્ર ત્યારે ચાલે છે જ્યારે call કરાય. એ return statement વાપરીને main program ને એક અંતિમ value પાછી return કરી શકે છે.

At a glance

Table 1: C અને Python function mechanics વચ્ચેના સંરચનાત્મક તફાવત.

Component SyntaxBCA104 C Lang નિયમBCA204 Python નિયમ
Declaration Keywordint કે float જેવો સ્પષ્ટ data type જોઈએ.બધા functions માટે generic def keyword વાપરે છે.
Parameter Typesarguments ની અંદર દરેક type સ્પષ્ટ રીતે declare કરવો પડે.કોઈ datatype prefixes વગર માત્ર names યાદી કરે છે.
Default ValuesStandard ANSI C default parameters ની પરવાનગી આપતું નથી.brackets ની અંદર param = value જેવા assignments ની પરવાનગી આપે છે.
Return Statementમાત્ર declared header type સાથે મેળ ખાતી values return કરી શકે.return keyword દ્વારા કોઈ પણ data object ને dynamically return કરી શકે.

Theory

એક Worked Example: Automated Balance Deductions

ચાલો જોઈએ કે આપણું PocketMoney application automated calculations કેવી રીતે સંભાળે છે. આપણે એવું એક function માંગીએ છીએ જે આપણા balance થી એક expense બાદ કરે. આપણે એને miscellaneous નામની એક default category સાથે configure કરીશું જેથી program સરળતાથી ચાલે ભલે user એક expense description type કરવાનું ભૂલી જાય.

Practical

PocketMoney Function Ledger Engine

def calculate_remainder(balance, spend, category="Misc"):
    print("Category processed: " + category)
    remaining = balance - spend
    return remaining

# Call 1: Providing all parameters manually
wallet1 = calculate_remainder(500, 45, "Food")
print(wallet1)

# Call 2: Skipping the optional category parameter
wallet2 = calculate_remainder(100, 20)
print(wallet2)

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Think first

Twin Function Calls ને ટ્રેસ કરો

ઉપરના Python script નું મનમાં વિશ્લેષણ કરો. screen પર ક્રમિક રીતે કઈ બિલકુલ textual lines અને numeric balances દેખાશે? tap કરતાં પહેલાં તમારી આગાહીનો નકશો બનાવો.

Show the answer

script output કરશે:

Category processed: Food

455

Category processed: Misc

80

કેમ? Call 1 માં, સ્પષ્ટ string "Food" default setting ને overwrite કરે છે. Call 2 માં, ત્રીજું argument છોડવું Python ને preset value "Misc" પર પાછું પડવાનું કારણ બને છે. બંને calculations પૂરી થાય છે અને પોતાના results ને wallet1 અને wallet2 update કરવા સાફસૂથરા return કરે છે.

Quiz

શું થશે જો તમે તમારી def line ની અંદર એક default value વાળા parameter ને default value વગરના એક mandatory parameter પહેલાં position કરો?

  1. script સામાન્ય રીતે ચાલે છે અને માને છે કે ગાયબ items જમણેથી ડાબે ભરાય છે.
  2. Python એક તરત SyntaxError ફેંકે છે: non-default argument follows default argument.
  3. function perfectly કામ કરે છે પણ આપોઆપ બધા parameters ને strings માં બદલે છે.
  4. program એક standard C application ની જેમ compile થાય છે પણ calculation પગલાં skip કરે છે.
Show the answer

Python એક તરત SyntaxError ફેંકે છે: non-default argument follows default argument.

Python ને જરૂરી છે કે બધા mandatory parameters (જેમાં default values નથી) પહેલાં મુકાય. default values વાળા કોઈ પણ optional parameters ને parentheses checklist ના બિલકુલ અંતે group કરવા જોઈએ. આ ક્રમ ગૂંચવવો એક તરત syntax crash પેદા કરે છે.

Quiz

આ નાની function structure નો અભ્યાસ કરો: def add_bonus(balance): total = balance + 50 print(add_bonus(500)) screen પર શું print થશે?

  1. 550
  2. SyntaxError: missing return declaration
  3. None
  4. 500
Show the answer

None

Python માં, જો એક function એક સ્પષ્ટ return keyword સાથે અથડાયા વગર પોતાની statements execute કરવાનું પૂરું કરે, એ આપોઆપ None નામનો એક ખાસ built-in object પાછો મોકલે છે. આ એક signature university viva પ્રશ્ન છે!

Watch out

Classic ફાંદો: Vanishing Variable

university laboratory exams માં એક classic marks-ગુમાવતી ભૂલ એક definition block ની અંદર remaining = balance - spend જેવું એક function variable લખવું, અને પછી તમારા main script body માં બહાર remaining print કે inspect કરવાનો પ્રયાસ કરવો છે. Python એક NameError: name remaining is not defined ફેંકશે કારણ કે એક function scope ની અંદર બનાવેલું કોઈ પણ variable એ ખાસ functional boundary ની અંદર સંપૂર્ણપણે જીવે અને મરે છે.

Theory

Functions ને Semester 3 Database Modules સાથે જોડવા

dynamic parameters પર નિપુણતા back-end development ને ખૂબ modular બનાવે છે. Semester 3 (BCA303) માં, જ્યારે તમે Python scripts ને એક SQLite database સાથે connect કરો છો, તમે SQL execution lines ને def query_db(sql_string, limits = 10): જેવા single functions ની અંદર encapsulate કરશો. આ તમને સરળ single line triggers વાપરીને તમારા system માં ગમે ત્યાં records તરત fetch કરવા દે છે.

Summary

Key takeaways

  • Functions custom naming identifiers પછી def keyword વાપરીને declare કરાય છે.
  • Python સ્પષ્ટ parameters અને return type declaration labels સંપૂર્ણપણે છોડી દે છે.
  • Default values ને સખ્તાઈથી argument lists ના જમણા છેડે મુકાવા જોઈએ.
  • એક સ્પષ્ટ return statement છોડવું એક function ને આપોઆપ None ની એક value આપવા મજબૂર કરે છે.
  • એક function body ની અંદર declare કરેલા variables એ ખાસ block scope ના local રહે છે.
  • Memory Hook: Packages procedures રાખે છે, values સુરક્ષિત રીતે return કરતાં!

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Python Fundamentals

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

User defined function: defining, parameters, default values, return value · Programming Skills · Gri-Learn