مشق فنکشن پر مشق

محمداحمد

لائبریرین
فنکشن کی مشق سے پیشتر اگر Function Design Recipeبھی پڑھ لی جائے تو سودمند رہے گا۔

1.1 ۔ درج ذیل فنکشنز کو بغور دیکھیے اور بتائیے کہ ان میں کیا غلطی ہے۔ چاہیں تو شیل بھی استعمال کر سکتے ہیں۔
کوڈ:
# FUNCTION 1
def sumup (x,y)
    return x + y
 
 
# FUNCTION 2
def calc (x,y,z):
    a = x
    b = z
    c = y
    return (a * b) + d
 
# FUNCTION 3
def myname (name):
    name = input ("What is your name?")
    print ("your name is {}".format("name"))

1.2 ۔ درج ذیل فنکشن کو دیکھیے اور بتائیے کہ یہ کیا کام کرتا ہے۔ درجہ بہ درجہ وضاحت کیجے۔ (شیل پر چیک کر سکتے ہیں۔)
کوڈ:
def percent (total_marks,marks_obtained):
    '''
    (number , number) -> str
    >>> percent (100,55)
    '55.0%'
    >>> percent (100,55)
    '25.13%'
    This function takes exactly two arguments 'total_marks' and 'marks_obtained'
    and returns marks's percentage with respect to total marks.
    '''
    result = round((marks_obtained*100)/total_marks,2)
    return str(result)+"%"

1.3۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز ( آرگیومینٹس) لے اور دونوں کا حاصل ضرب فراہم کرے۔
نوٹ: "پیرامیٹر" فنکشن کے نام کے بعد آنے والے بریکٹ میں دئے گئے ویری ایبلز کو کہتےہیں۔ اور فنکشن کال کرتے وقت ان پیرامیٹرز کی جگہ دی ہوئی ویلیوز کو آرگیومینٹس کہتے ہیں۔

1.4۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز لے اور پہلے نمبر کو دوسرے سے تقسیم کرکے حاصل ہونے والا جواب فراہم کرے۔

1.5۔ ایک ایسا فنکشن بنائیے جو 2 اسٹرنگ پیرامیٹرز لے اور دونوں کو جوڑ (Concatenation) کر ایک نیا اسٹرنگ فراہم کرے۔

1.6 ۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز لے اور دونوں کا اوسط فراہم کرے ۔

1.7۔ ایک ایسا فنکشن بنائیے جو 2 پیرامیٹرز (پہلا number اور دوسرا ndigits) لے اور number کو دیے گئے ndgits کے مطابق راؤنڈ کرے

1.8 ۔ ایک فنکشن اپنی مرضی سے بنائیے۔ اور سمجھائیے کہ وہ کیا کام کرتا ہے اور کیسے کرتا ہے۔ آپ کا فنکشن منفرد ہو تو اچھا رہے گا۔
 

عائشہ عزیز

لائبریرین
1.1 ۔ درج ذیل فنکشنز کو بغور دیکھیے اور بتائیے کہ ان میں کیا غلطی ہے۔ چاہیں تو شیل بھی استعمال کر سکتے ہیں۔
کوڈ:
# FUNCTION 1
def sumup (x,y)
    return x + y
 
 
# FUNCTION 2
def calc (x,y,z):
    a = x
    b = z
    c = y
    return (a * b) + d
 
# FUNCTION 3
def myname (name):
    name = input ("What is your name?")
    print ("your name is {}".format("name"))

پہلے فنکشن sumup میں ہم نے کولن نہیں لگایا آخر میں۔

دوسرے فنکشن calc میں ویری ایبل d کو ڈیفائن نہیں کیا گیا۔ صرف a , b , c کو کیا گیا ہے۔

تیسرے فنکشن میں پرنٹ والی جو لائن ہے ناں وہاں پر format کے ساتھ name کو ویری ایبل کے طور پر پرنٹ کرانا ہے اور اس کو کاماز میں لکھا ہے یعنی اسٹرنگ کے طور پر ایسے ہی پرنٹ ہوگا۔ فنکشن کام تو کرے گا لیکن جب ہم اس کو رن کریں گے تو کچھ ایسا رزلٹ آئے گا۔
PHP:
>>> def myname(name):
    name = input ("what is your name?")
    print ("your name is {}".format ("name"))
 
   
>>> print (myname(name))
what is your name? ayesha
your name is name
None
یہاں نیم ایسے پرنٹ ہوگیا ہے جبکہ اگر ہم یہاں نیم کو ویری ایبل کے طور پر پرنٹ کروائیں تو اس جگہ ان پٹ کی گئی ویلیو پرنٹ ہوگی۔
PHP:
>>> def myname(name):
    name = input ("what is your name?")
    print ("your name is {}".format (name))
 
   
>>> print (myname(name))
what is your name?ayesha
your name is ayesha
None

البتہ None کا سمجھ نہیں آ رہا :(
 

عائشہ عزیز

لائبریرین
1.3۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز ( آرگیومینٹس) لے اور دونوں کا حاصل ضرب فراہم کرے۔

PHP:
>>> def multiply(x,y):
    return x*y
 
>>> print(multiply(13,3))
39

1.2 ۔ درج ذیل فنکشن کو دیکھیے اور بتائیے کہ یہ کیا کام کرتا ہے۔ درجہ بہ درجہ وضاحت کیجے۔ (شیل پر چیک کر سکتے ہیں۔)
کوڈ:
def percent (total_marks,marks_obtained):
    '''
    (number , number) -> str
    >>> percent (100,55)
    '55.0%'
    >>> percent (100,55)
    '25.13%'
    This function takes exactly two arguments 'total_marks' and 'marks_obtained'
    and returns marks's percentage with respect to total marks.
    '''
    result = round((marks_obtained*100)/total_marks,2)
    return str(result)+"%"

یہ فنکش دو ویری ایبلز لیتا ہے۔ ٹوٹل نمبرز اور حاصل کردہ نمبرز اور پھر ان کی فیصد بتاتا ہے۔
فنکشن باڈی میں ہم نے ایک اور ویری ایبل رزلٹ میں فیصد معلوم کرنے کا فارمولا لکھا اور بلٹ ان فنکشن استعمال کرتے ہوئے جواب کو دو نمبرز تک راؤنڈ کیا۔ اس کے بعد رزلٹ کو بطور اسٹرنگ رٹرن کیا کیونکہ ہمیں ساتھ میں فیصد کا نشان بھی دینا تھا ا س لیے ہم نے دونوں کو اسٹرنگ کے طور پر رٹرن کیا۔
 

عائشہ عزیز

لائبریرین
1.4۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز لے اور پہلے نمبر کو دوسرے سے تقسیم کرکے حاصل ہونے والا جواب فراہم کرے۔

PHP:
 >>> def devide(x,y):
    return x//y
 
>>> print (devide(56,7))
8

PHP:
>>> def devide(x,y):
    return x/y
 
>>> print (devide(56,7))
8.0
 

عائشہ عزیز

لائبریرین
1.6 ۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز لے اور دونوں کا اوسط فراہم کرے ۔

PHP:
>>> def average(a,b):
    return (a+b)/2
 
>>> print(average(25,30))
27.5
 

عائشہ عزیز

لائبریرین
1.7۔ ایک ایسا فنکشن بنائیے جو 2 پیرامیٹرز (پہلا number اور دوسرا ndigits) لے اور number کو دیے گئے ndgits کے مطابق راؤنڈ کرے۔

PHP:
>>> def roundnum (x,r):
 
    ''' The variable x takes the number which we want to round off and r is ndigit.'''
 
    result = round(x,r)
 
    return(result)
 
>>> print(roundnum(4.5233,2))
 
4.52
 
>>> print(roundnum(5.7333,3))
 
5.733
 

عائشہ عزیز

لائبریرین
1.8 ۔ ایک فنکشن اپنی مرضی سے بنائیے۔ اور سمجھائیے کہ وہ کیا کام کرتا ہے اور کیسے کرتا ہے۔ آپ کا فنکشن منفرد ہو تو اچھا رہے گا۔


PHP:
>>> def random(s):
    '''This function takes a string value, calculate its length, convert it into upper and lower case and finally reverse the characters.
'''
    length = len(s)
    upcase = s.upper()
    downcase = s.lower()
    reverse = s[::-1]
    print ('''Length of string = ''', length, '''\n''', '''Stirng in upper case: ''', upcase,'''\n''', '''String in down case: ''', downcase,'''\n''', '''Reverseing the string:''', reverse)
 
   
>>> random("The best I can do for my friend is to be her friend.")
Length of string =  52
Stirng in upper case:  THE BEST I CAN DO FOR MY FRIEND IS TO BE HER FRIEND.
String in down case:  the best i can do for my friend is to be her friend.
Reverseing the string: .dneirf reh eb ot si dneirf ym rof od nac I tseb ehT
 

موجو

لائبریرین
پہلے فنکشن میں: کولن : نہیں لگایا
دوسرے فنکشن میں: d کی وضاحت فنکشن میں موجود نہیں ہے۔ بلکہ شائد c کو غلطی سے d لکھا گیا ہے۔
تیسرے فنکشن میں: format میں ڈبل کوٹس نہیں آئیں گے۔
print ("your name is {}".format(name))
 

موجو

لائبریرین
1.2
PHP:
def percent (total_marks, marks_obtained):
    '''
(number,number)-> str
>>> percent(100,55)
'55.0%'
>>> percent (100,55)
'25.13%'
This function takes exactly two arguments 'total_marks' and 'marks_obtained'
and returns marks's percentage with respect to total marks.
'''
    result = round((marks_obtained*100)/total_marks,2)
    return str(result)+"%"
پہلی لائن ہیڈر جہاں ہم فنکشن کا نام اور پیرا میٹرز دے رہے ہیں۔
اس کے بعد doc string ہے
جس میں فنکشن ٹائپ کونٹریکٹ ہے کیسی ویلیو فنکشن میں دی جائے گی اور کیسا رزلٹ آئے گا۔
اس کے بعد دو مثالیں دی گئی ہیں
مزید وضاحت اس فنکشن کے ذریعے کل نمبر میں سے حاصل کردہ نمبر کی فیصد معلوم کرنی ہے
فنکشن کی doc string کے بعد
فنکشن کا باڈی بلاک ہے
جس میں فیصد معلوم کرنے کے لئے فارمولا دیا گیا ہے۔ جس میں اعشاریہ کے بعد 2 عدد تک راؤنڈ کیا ہے۔
فنکشن ختم ہونے سے پہلے جواب اس طرح دے گا کہ رزلٹ کو سٹرنگ میں کنورٹ کردے گا اور آخر پر فیصدکی علامت کا اضافہ کردےگا۔
 

موجو

لائبریرین
1.3
PHP:
def multiplenumber(x,y):
    '''
This function takes two number and multiply them.
(number,number)->int
>>> multiplenumber(20,4)
80
>>> multiplenumber(5,60)
300
'''
    return (x*y)
 
>>> multiplenumber(20,4)
80
>>> multiplenumber(5,60)
300
 

موجو

لائبریرین
1.4
PHP:
def dividno(a,b):
    '''
This function takes two numbers and first number divided by second no
and return quotient
(number,number)->float
>>> dividno(125,5)
25.0
'''
    return(a/b)
 
>>> dividno(125,5)
25.0
>>>
 

موجو

لائبریرین
1.5
PHP:
>>> def txtconcate(txt1,txt2):
    '''
This function concate two strings.
(txt1,txt2)->str
>>>txtconcate("Muhammad","is the Last Prohpet")
Muhammad:is the Last Prophet.
'''
    print(txt1,txt2,sep=":")
 
   
>>> txtconcate("Muhammad","is the Last Prophet")
Muhammad:is the Last Prophet
>>>
 

موجو

لائبریرین
1.6
PHP:
 def average(num1,num2):
    '''
This function takes two numbers and return average.
(num1,num2)->float
>>>average(15,16)
15.5
'''
    return(num1+num2)/2
 
>>> average(15,16)
15.5
>>>
 

موجو

لائبریرین
1.6
PHP:
def roundnum(no,ndigit):
    '''
This function takes a number which we want to round.
(number,number)->float
roundnum(253.562,2)
253.56
'''
    rnd=round(no,ndigit)
    return(rnd)
 
>>> roundnum(253.562,2)
253.56
 

مقدس

لائبریرین
فنکشن کی مشق سے پیشتر اگر Function Design Recipeبھی پڑھ لی جائے تو سودمند رہے گا۔

1.1 ۔ درج ذیل فنکشنز کو بغور دیکھیے اور بتائیے کہ ان میں کیا غلطی ہے۔ چاہیں تو شیل بھی استعمال کر سکتے ہیں۔
کوڈ:
# FUNCTION 1
def sumup (x,y)
    return x + y
 
# FUNCTION 2
def calc (x,y,z):
    a = x
    b = z
    c = y
    return (a * b) + d
 
# FUNCTION 3
def myname (name):
    name = input ("What is your name?")
    print ("your name is {}".format("name"))

Colon is missing at the end of first line in first function

d is undefined in 2nd function

Last line in third function should look like
print ("your name is {}".format(name))
 

مقدس

لائبریرین
1.2 ۔ درج ذیل فنکشن کو دیکھیے اور بتائیے کہ یہ کیا کام کرتا ہے۔ درجہ بہ درجہ وضاحت کیجے۔ (شیل پر چیک کر سکتے ہیں۔)
کوڈ:
def percent (total_marks,marks_obtained):
    '''
    (number , number) -> str
    >>> percent (100,55)
    '55.0%'
    >>> percent (100,55)
    '25.13%'
    This function takes exactly two arguments 'total_marks' and 'marks_obtained'
    and returns marks's percentage with respect to total marks.
    '''
    result = round((marks_obtained*100)/total_marks,2)
    return str(result)+"%"

this function inputs two values, multiplies marks obtained with 100, divide by total marks and rounds it to two digits and then displays results as string with % sign
 

مقدس

لائبریرین
1.3۔ ایک ایسا فنکشن بنائیے جو 2 نمبر پیرامیٹرز ( آرگیومینٹس) لے اور دونوں کا حاصل ضرب فراہم کرے۔
نوٹ: "پیرامیٹر" فنکشن کے نام کے بعد آنے والے بریکٹ میں دئے گئے ویری ایبلز کو کہتےہیں۔ اور فنکشن کال کرتے وقت ان پیرامیٹرز کی جگہ دی ہوئی ویلیوز کو آرگیومینٹس کہتے ہیں۔

PHP:
>>> def mul(a,b):
return (a*b)
 
>>> mul (3,4)
12
 

مقدس

لائبریرین
1.5۔ ایک ایسا فنکشن بنائیے جو 2 اسٹرنگ پیرامیٹرز لے اور دونوں کو جوڑ (Concatenation) کر ایک نیا اسٹرنگ فراہم کرے۔

کوڈ:
>>> def conc(one,two):
print(one,two)
 
>>> conc("I hate ","Python")
I hate Python
 
Top