اعلان Python سیکھنے میں کون کون دلچسپی رکھتا ہے

محمدصابر

محفلین
continue statement
continue بیان کسی بھی لوپ (loop) میں اس وقت استعمال کیا جاتا ہے جب کسی خاص شرط کے پورا ہونے پر لوپ (loop)کے اندر باقی ماندہ تمام بیانات کو پھلانگنا ہو اور لوپ کے اگلے پھیرے پر جانا ہو۔


PHP:
var = 10                 
while var > 0:
  print ('Current variable value :', var)
  var = var -1
  if var == 5:
      continue
 
print ("Good bye!")

اس پوری مثال میں صرف بریک (break) کی جگہ continue کا استعمال کیا گیا ہے اور کوڈ کو چلانے کے بعد صرف ایک نمبر پرنٹ نہیں ہوگا اور وہ ہے 5 کیونکہ if بیان کے ذریعے یہ چیک کیا گیا ہے کہ اگر متغیر var کی قیمت 5 ہے تو جاری رکھا جائے لوپ (loop) کو مگر اگلے بیانات کو پھلانگ کر اور لوپ (loop) کے اگلے پھیرے سے پھر شروع کیا جائے۔
مجھے سمجھ نہیں آئی کہ پانچ کس طرح پرنٹ نہیں ہو گا۔
 
مجھے سمجھ نہیں آئی کہ پانچ کس طرح پرنٹ نہیں ہو گا۔
جی آپ کا خیال درست ہے، اس مثال میں 5 بھی پرنٹ ہونا چاہیے۔ کیوں کہ کسی لوپ میں continue ماندہ آپریشنز کو پھلانگ کر لوپ کو اگلے ایٹریشن کے لیے تیار کر دیتا ہے۔ ہاں اگر اس مثال میں print کا فنکشن continue کے بعد کسی سطر میں ہوتا تو ضرور ایکزیکیوٹ ہونے سے رہ جاتا۔ عام طور پر تو مختلف زبانوں میں ایسا ہی ہوتا ہے، اب اگر پائتھون کا انٹرپریٹر کسی اور طریقے سے انٹرپریٹ کرتا ہو تو نہیں کہہ سکتے۔ :)
 
جی آپ کا خیال درست ہے، اس مثال میں 5 بھی پرنٹ ہونا چاہیے۔ کیوں کہ کسی لوپ میں continue ماندہ آپریشنز کو پھلانگ کر لوپ کو اگلے ایٹریشن کے لیے تیار کر دیتا ہے۔ ہاں اگر اس مثال میں print کا فنکشن continue کے بعد کسی سطر میں ہوتا تو ضرور ایکزیکیوٹ ہونے سے رہ جاتا۔ عام طور پر تو مختلف زبانوں میں ایسا ہی ہوتا ہے، اب اگر پائتھون کا انٹرپریٹر کسی اور طریقے سے انٹرپریٹ کرتا ہو تو نہیں کہہ سکتے۔ :)
ابھی ہم جواب لکھ ہی رہے تھے کہ آپ بازی لے گئے۔ :)
 
تفاعل وظیفہ یا فنکشن (Functions)
فنکشن کسی بھی پروگرام میں ایسا حصہ ہوتا ہے جسے بار بار استعمال کیا جا سکتا ہے ۔
فنکشن کا آغاز ایک مختص لفظ def سے ہوتا ہے
اس کے بعد فنکشن کا نام اور قوسین () ہوتی ہیں جن کا اختتام : (colon) پر ہوتا ہے ۔ اگر کوئی پیرامیٹر (parameter) ہو تو وہ قوسین () کے درمیان آتا ہے
اگلی لائن میں فنکشن میں جو کام کرنا ہے اس کا آغاز ہوتا ہے اور یہاں سے تمام کوڈ باقاعدہ indented ہوتا ہے۔

فنکشن کو کال کرنے کے لیے فنکشن کا نام مع قوسین (paranthesis) لکھا جاتا ہے۔ اگر کوئی پیرامیٹر (parameter) ہو تو وہ فنکشن کی قوسین (paranthesis) میں لکھا جائے گا۔

PHP:
def sqr(a):
    print (a * a)
 
sqr(2)
 
4

ایک اور مفید, مثال Fibonacci series کو فنکشن میں لاگو کرنے سے واضح ہوگی۔ یہ ایسی سیریز ہوتی ہے جس میں ہر نمبر پچھلے دو نمبروں کا جمع ہوتا ہے یعنی

1 , 1, 2 , 3 , 5 , 8 , 13 , 21 ......

PHP:
def fib(n):    # write Fibonacci series up to n
    """Print a Fibonacci series up to n."""
    a, b = 0, 1
    while b < n:
        print(b, end=' ')
        a, b = b, a+b
    print()
 
fib(100)
 
 
1 1 2 3 5 8 13 21 34 55 89

ابھی تک ہم نے فنکشن سے کسی بھی ویلیو کی واپسی نہیں کروائی جو کہ عموما فنکشن کا کام ہوتا ہے بہت سی دیگر زبانوں میں۔ پائتھون میں بھی ایسا ہوتا ہے مگر دوسری زبانوں کے برعکس یہاں فنکشن پروسیجر (procedure) کا کام بھی کرتے ہیں یعنی بغیر کوئی ویلیو واپس کیے بھی۔ پائتھون جب کسی فنکشن میں بظاہر کوئی ویلیو واپس نہیں کرتا تب بھی وہ اندرونی طور پر ایک خودکار ویلیو None واپس کر رہا ہوتا ہے مگر انٹرپریٹر (interpreter) اسے دبا دیتا ہے اگر صرف یہی ویلیو واپس ہو رہی ہو۔

PHP:
>>> fib(0)
 
>>> print (fib(0))
 
None
 
فنکشن Functions
فنکشن سے کسی بھی ویلیو کی واپسی ممکن ہے۔ اوپر​
Fibonacci series والے فنکشن میں تبدیلی کرکے ہم بجائے نمبر پرنٹ کروانے کے ان کی لسٹ واپس لے سکتے ہیں ۔​

PHP:
def fib2(n): # return Fibonacci series up to n
    """Return a list containing the Fibonacci series up to n."""
    result = []
    a, b = 0, 1
    while b < n:
        result.append(b)    # see below
        a, b = b, a+b
    return result
 
 
f100 = fib2(120)
print(f100)
 
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

یہاں ہم نے دو تین تبدیلیاں کی ہیں سیریز والے فنکشن میں۔ ایک تو لسٹ result کے نام سے بنائی ہے ۔ اس کے بعد متغیر b کی قیمت ہر while لوپ کے پھیرے میں لسٹ میں اضافہ کرتے رہے ہیں۔
آخر میں پوری لسٹ واپس بھیج دی ہے فنکشن سے

اب فنکشن کال کرتے وقت ایک اور متغیر میں جو کہ ایک لسٹ بن جائے گی اس میں واپس آنے والی لسٹ کو محفوظ کریں گے ۔

اس کے بعد اسے پرنٹ فنکشن میں پاس کرکے پرنٹ کروا لیں یا ویسے ہی۔

PHP:
>>> f100
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
 

محمداحمد

لائبریرین
ہم نے if block کی مشق کی خاطر ایک Python Quiz بنانے کی کوشش کی ہے۔

کوڈ یہ ہے، جہاں جہاں بہتری اور اصلاح کی گنجائش ہو، ضرور بتائیے۔

PHP:
#THIS PIECE OF CODE IS AIMED TO PRACTICE PYTHON IF BLOCK
#AND HERE WE GO.....!
 
 
start = 1
nq = "y" # New Question
score = 0
inputexp = "Your Answer...! (Just Write a,b or c)  " #Answer Tip.
ra = "Great....! Right Answer." #ra stands for Right Answer.
wa = "Sorry...! Wrong Answer." #wa stands for Wrong Answer.
gofurther = "\n\
Will you go furhter...! Just Write 'y' for YES and 'n' for NO:  "
userterm = "Quiz terminated on Request! Thank you for your time. You may visit again!" # Termination of Quiz by User.
inv_term = "Invalid Input! Quitting from The Quiz." #Response on Invalid Input.
 
if start == 1:
    print ("Welcome to Python Quiz...! You will be asked few questions. \n\
\n\
Please be careful 'The Quiz' is case sensitive. Use small case only.\n\
\n\
Get Ready...! Here is the FIRST QUESTION\n\
\n\
    1. Python is a:\n\
        a.    Low Level Language\n\
        b.    High Level Language  \n\
        c.    Human Language\n\
          ")
    q1 = (input (inputexp))
    if q1 == "b":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start + 1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 2:
    print ("\n\
    2.Python is a \n\
        a.    Dynamically typed language\n\
        b.    Statically typed Language\n\
        c.    None of them")
    q2 = (input (inputexp))
    if q2 == "a":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start + 1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 3:
    print ("\n\
    3.    The interpreter uses chevron >>> prompt to indicate that: \n\
        a.    It is not ready\n\
        b.    It is ready\n\
        c.    It will be ready after 5 minutes")
    q3 = (input (inputexp))
    if q3 == "b":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 4:
    print ("\n\
    4.    Debugging is a process to:\n\
        a.    Define bugs\n\
        b.    Make a list of statements\n\
        c.    Find and reduce bugs.")
    q4 = (input (inputexp))
    if q4 == "c":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 5:
    print ("\n\
    5.    Python design philosophy emphasizes:\n\
        a.    Complex and strange syntax\n\
        b.    Code readability \n\
        c.    None of them")
    q5 = (input (inputexp))
    if q5 == "b":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 6:
    print ("\n\
    6.    Semantic errors are:\n\
        a.  Logical errors\n\
        b.  Romantic errors\n\
        c.  Syntax errors")
    q6 = (input (inputexp))
    if q6 == "a":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 7:
    print ("\n\
    7.    How the interpreter respond a semantic error:\n\
        a.  It indicates the semantic error\n\
        b.  Run the program without error\n\
        c.  It highlight the error")
    q7 = (input (inputexp))
    if q7 == "b":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 8:
    print ("\n\
    8.    Python is a:\n\
        a.  Formal language\n\
        b.  Natural language\n\
        c.  Assembly language")
    q8 = (input (inputexp))
    if q8 == "a":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 9:
    print ("\n\
    9.    We use _____ as an escape character while writing string in python. \n\
        a.  Forward Slash /\n\
        b.  Back Slash \\\n\
        c.  Colon :")
    q9 = (input (inputexp))
    if q9 == "b":
        print (ra)
        score = score + 1
    else: print(wa)
    nq = (input (gofurther))
    if nq == "y":
        start = start +1
    elif nq == "n":
        print (userterm)
    else: print (inv_term)
 
if start == 10:
    print ("\n\
    10.    We use loops:\n\
        a.  For type casting\n\
        b.  To avoid repetition\n\
        c.  For Assigning variables")
    q10 = (input (inputexp))
    if q10 == "b":
        print ("Great...! Rigth Answer\n\
\n\
Thank you for your precious time....!\n\
")
        score = score + 1
    else: print(wa,"\n\
However, Thank you for your precious time....!\n\
")
    start = start +1
 
if start > 10:
        if score >=10:
            print ("Your Score is ", score*10,"%. Wonderful...! You have a good grasp over Python...!",sep="")
        elif score >=8:
            print ("Your Score is ", score*10,"%. Weldone...! Your result is very good.",sep="")
        elif score >=6:
            print ("Your Score is ", score*10,"%. Good! Your result is satisfactory.",sep="")
        elif score >=4:
            print ("Your Score is ", score*10,"%. You need to read more...! ",sep="")
        elif score <=3:
            print ("Your Score is ", score*10,"%. You must study before entering such quizzes.",sep="")
 
 
#THAT'S ALL FOR NOW.

اس کوڈ کو py ایکسٹینشن کے ساتھ محفوظ کر کے پائتھون شیل پر چلایا جا سکتا ہے۔
 
یہ کوڈ بہترین مثال ہے کہ کیسے بار بار دہرائے جانے والے کوڈ کو فنکشن میں ڈال کر کوڈ کو بہتر انداز میں لکھا جا سکتا ہے۔
 
لائن فیڈ کی جگہ ٹرپل کوٹس استعمال کی ہیں۔ فنکشن کی مدد سے کوڈ بہتر منظم ہو گیا ہے۔ جلدی جلدی کیا ہے اور 10 سے 3 سوال کر دیے ہیں۔

PHP:
start = 1
nq = "y" # New Question
score = 0
inputexp = "Your Answer...! (Just Write a,b or c)  " #Answer Tip.
furtherQ = "Will you go furhter...! Just Write 'y' for YES and 'n' for NO:  "
userterm = "Quiz terminated on Request! Thank you for your time. You may visit again!" # Termination of Quiz by User.
inv_term = "Invalid Input! Quitting from The Quiz." #Response on Invalid Input.
 
def message(msgnum):
    if msgnum == 1:
        print ('''Welcome to Python Quiz...! You will be asked few questions.
        Please be careful 'The Quiz' is case sensitive. Use small case only.
        Get Ready...! Here is the FIRST QUESTION
        1. Python is a
            a.    Low Level Language
            b.    High Level Language
            c.    Human Language
                ''')
    elif msgnum == 2:
        print ('''
        2.Python is a
            a.    Dynamically typed language
            b.    Statically typed Language
            c.    None of them")
              ''')
    elif msgnum == 3:
        print ('''
        3.    The interpreter uses chevron >>> prompt to indicate that:
            a.    It is not ready
            b.    It is ready
            c.    It will be ready after 5 minutes")
                ''')
 
def answer(start):
    ra = "Great....! Right Answer." #ra stands for Right Answer.
    wa = "Sorry...! Wrong Answer." #wa stands for Wrong Answer.
 
    q1 = (input (inputexp))
    if  start == 1 and q1 == "b":
        print (ra)
    elif start == 2 and q1 == "a":
        print (ra)
    elif start == 3 and q1 == "b":
        print (ra)
    else:
        print(wa)
 
def gofurther(qstart):
    nq = (input(furtherQ))
    if nq == "y":
        start = qstart + 1
        return start
    elif nq == "n":
        print (userterm)
    else:
        print (inv_term)
 
if start == 1:
    message(1)
    answer(1)
    score = score + 1
 
start = gofurther(1)
if start == 2:
    message(2)
    answer(2)
    score = score + 1
 
start = gofurther(2)
if start == 3:
    message(3)
    answer(3)
    score = score + 1
 
start = start + 1
 
if start > 3:
        if score ==3:
            print ("Your Score is ", score*10,"%")
        elif score ==2:
            print ("Your Score is ", score*10,"%")
        elif score ==1:
            print ("Your Score is ", score*10,"%")
        else:
            print("Don't know your score")
 
اس کوئیز والی مثال میں switch case statements اور arrays کا مؤثر استعمال کیا جا سکتا تھا۔ :) :) :)

سعود ، پائتھون switch statement کو بنیادی طور پر سپورٹ نہیں کرتی۔
Arrays کا سبق چونکہ ابھی پڑھا نہیں اس لیے اسے یا کسی اور structure کا استعمال نہیں کیا۔
 
سعود ، پائتھون switch statement کو بنیادی طور پر سپورٹ نہیں کرتی۔
Arrays کا سبق چونکہ ابھی پڑھا نہیں اس لیے اسے یا کسی اور structure کا استعمال نہیں کیا۔
اوہو! ہمیں اس بات کا علم نہیں تھا۔ ابھی گوگل کیا تو معلوم ہوا کہ لوگوں نے اس کے ورک اراؤنڈز بنا رکھے ہیں لیکن کور پائتھون میں اس کی سہولت موجود نہیں ہے۔ خیر if else وغیرہ سے وہ سبھی کچھ کیا جا سکتا ہے لہٰذا کوئی مسئلہ نہیں۔ :)
 
اوہو! ہمیں اس بات کا علم نہیں تھا۔ ابھی گوگل کیا تو معلوم ہوا کہ لوگوں نے اس کے ورک اراؤنڈز بنا رکھے ہیں لیکن کور پائتھون میں اس کی سہولت موجود نہیں ہے۔ خیر if else وغیرہ سے وہ سبھی کچھ کیا جا سکتا ہے لہٰذا کوئی مسئلہ نہیں۔ :)

ہاں جی اور چلیں اس لحاظ سے ایک چیز کم سیکھنی پڑے گی اور if else بہت طاقتور ہے۔ نئے سیکھنے والوں کو تو کمی محسوس نہ ہوگی کیونکہ انہیں تو پتہ ہی نہیں ہوگا کہ switch نام کی کوئی شے بھی ہوتی ہے۔
 

کلیم

محفلین
ہاں جی اور چلیں اس لحاظ سے ایک چیز کم سیکھنی پڑے گی اور if else بہت طاقتور ہے۔ نئے سیکھنے والوں کو تو کمی محسوس نہ ہوگی کیونکہ انہیں تو پتہ ہی نہیں ہوگا کہ switch نام کی کوئی شے بھی ہوتی ہے۔
جاوہ سکرپٹ میں ہوتی لیکن اچھی نہیں لگتی اسلئے اس بچت پر خوشی ہوئی!
 

کلیم

محفلین
for loop
for لوپ میں کسی بھی ترتیب (sequence like strings or list) میں چیزوں کا اعادہ کیا جاتا ہے۔ سادہ الفاظ میں یہ ایسا بیانیہ ہوتا ہے جس میں کسی بھی حلقہ کے پھیروں کی تعداد کا پہلے سے علم ہوتا ہے اور اس میں کسی بھی لسٹ یا اسٹرنگ کے اجزا کا ایک ایک کرکے جائزہ لیا جا سکتا ہے، ترتیب سے ۔

PHP:
for i in range(1, 5):
    print(i)
else:
    print('The for loop is over')

اوپر والی مثال میں پائتھون کا ایک فنکشن range استعمال کیا گیا ہے جو میں ابتدائی اور اختتامی نمبر بتایا گیا ہے۔

اس کے بعد for لوپ کی مدد سے پانچ نمبروں کی رینج میں پہلے نمبر سے ترتیب وار شروع کرتے ہوئے تمام نمبروں کا اعادہ کیا ہے گا جو کہ for لوپ کی خصوصیت ہے۔ ہر نمبر کو ایک ایک کرکے پھیرے میں پرنٹ کروایا گیا ہے۔
PHP:
for letter in 'Python':    # Iterating through string "Python"
  print ('Current Letter :', letter)

دوسری مثال میں ایک اسٹرنگ "Python" لی گئی ہے اور اس کے ہر حرف کو باری باری پرنٹ کروایا گیا ہے ۔

PHP:
 a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
      print(i, a[i])

اس مثال میں range اور len دونوں فنکشن کا اکٹھا استعمال کرکے کوڈ کو مختصر کیا گیا ہے۔ رینج کے فنکشن کو ہم کسی بھی ترتیب (sequence) پر استعمال کر سکتے ہیں جس میں بار بار عناصر کا اعادہ کیا جا سکے یعنی اگر ایک لسٹ ہو اور اس کے اشاریے کی مدد سے ایک ایک عنصر کو کسی بھی for لوپ کے ذریعے باری باری پڑھ لیا جائے اور حسب منشا کوئی کام کر لیا جائے ۔ سب سے سادہ کام ہے کہ عناصر کو پرنٹ کرایا لیا جائے۔

اس مثال میں لسٹ a میں چار اسٹرنگ عناصر ہیں۔
1۔ for لوپ میں پہلے تو لسٹ کی لمبائی (len) کا فنکشن استعمال کیا گیا ہے
2۔پھر رینج کے فنکشن کی مدد سے for لوپ کو ایک عددی حد دے دی گئی تاکہ for لوپ لسٹ میں موجود عناصر کی تعداد تک پھیرے لے سکے۔
3۔ آخر میں اشاریے کا عدد اور لسٹ میں اشاریے کے مقام پر موجود اسٹرنگ کو ایک ایک کرکے پرنٹ کرایا گیا ہے۔

ان مثالوں کو پرنٹ کرنے پر رینج 1-5 میں صرف 4 تک پرنٹ ہو رہی ہے جبکہ باقی دو مثالوں میں مکمل پرنٹ ہو ا ہے- کیا ہمیں 5 تک پرنٹ کروانے کیلئے رینج 0-5 دینی چاہئے؟؟


Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
1
2
3
4
The for loop is over
>>> ================================ RESTART ================================
>>>
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
>>> ================================ RESTART ================================
>>>
0 Mary
1 had
2 a
3 little
4 lamb
>>>
 
جو احباب کسی حد تک پائتھون میں دلچسپی رکھتے ہیں ، ان سے گزارش ہے کہ اب انہماک سے پائتھون کے دھاگوں کو دیکھنا شروع کریں کیونکہ اب ہم ابتدائی موضوعات سے قدرے پیچیدہ موضوعات کی طرف بڑھ رہے ہیں اور پائتھون کی مدد سے مفید کام لینے کے قریب قریب کوڈ سیکھنے چکے ہیں ۔
 
Top