تبادلہ خیال فار لوپ پر گفتگو

اس کی رینج صرف نمبر پر اپلاہی ہو سکتی ھے؟
ایک تو میرا خیال ہے کہ املا پر زور دینے کی خاصی ضرورت ہے کیونکہ املا ٹھیک نہ ہونے سے مطلب سمجھنے میں کافی دقت ہوتی ہے۔

نہیں رینج کے علاوہ کوئی سلسلہ بھی ہو سکتا ہے اور جب تک اس کے تمام اجزا ایک ایک کرکے لوپ میں پڑھ نہ لیے جائیں وہ چلتی رہے گی۔

بہتر یہی ہوگا کہ کوڈ کی مثال کے ساتھ سوال کیا جائے۔
 
یہاں ہم نے ایک ویری ایبل s میں "URDUWEB" کا ٹیکسٹ تفویض (assign) کیا اور پھر اس کے بعد ایک For کا حلقہ (loop) بنایا۔ فار لوپ میں ہم نے ایک ویری ایبل i کے نام سے سپرد کیا اور اسے باری باری ویری ایبل s میں موجود اسٹرنگ کو پڑھنے کا فرض سونپا

دو الگ الگ ویری ایبلز لینے کی اتنی ضروت کیوں ہے؟ ایک ہی کام کیوں نہیں کر سکتا؟
 
For Loop اور Range
پائتھون میں ایک دستیاب (Built-in) فنکشن range بھی ہوتا ہے۔ range عموماً 0 سے لے کر دیے گئے عدد تک عددی ترتیب (Range) فراہم کرتا ہے۔

range فنکشن میں تین دلائل ہوتے ہیں۔ جن میں سے ایک لازمی اور دو اختیاری ہوتے ہیں۔
کوڈ:
range([start,] stop[, step]) -> range object

Stop لازمی دلیل (argument) ہے۔ جبکہ Startاور Step قوسینِ کبیر [] میں دیے گئے ہیں جس کا مطلب یہ ہے کہ یہ دونوں دلائل (argument) اختیاری ہیں اور ان کا دینا لازمی نہیں ہے۔ ایک دلیل (argument) دی جائے تو اسے Stop تصور کیا جائے گا۔
فار لوپ کے ساتھ range کو اکثر استعمال کیا جاتا ہے۔

PHP:
>>> for i in range (6):
   print (i)
0
1
2
3
4
5

اس مثال میں ہم نے range فنکشن کو کال کرتے ہوئے صرف ایک دلیل (argument) فراہم کی ہے جو بتا رہی ہے کہ کس نمبر تک لوپ چلانی ہے۔ یعنی ہم نے Rang فنکشن کو 0 سے لے کر 9 تک رینج فراہم کرنے کی ہدایت دی ہے۔ یاد رہے کہ رینج میں ویلیو 0 سے دی جاتی ہے اور دیا گیا عدد رینج میں شامل نہیں ہوتا بلکہ range ایک عدد پہلے ختم ہو جاتی ہے۔

ہماری مثال میں فار لوپ دی گئی range کے مطابق دس چکر لگائے گی اور ہر چکر میں ایک نمبر پرنٹ کرے گی۔ نتیجے کے طور پر 0 سے لے کر 9 تک کے اعداد پرنٹ ہوں گئے۔

PHP:
>>> for i in range(5,12):
   print (i)
5
6
7
8
9
10
11

اس مثال میں ہم نے دو دلائل (arguments) دیے ہیں۔ پہلا Start اور دوسرا Stop۔ یعنی اس مثال میں range فنکشن 5 سے آغاز ہوگا اور (1-12) تک عددی ترتیب فراہم کرے گا۔ باقی نتیجہ وہی ہے جو اوپر والی مثال میں دیا گیا ہے۔

PHP:
>>> for i in range(0,10,2):
   print (i)
0
2
4
6
8

اس مثال میں تین دلائل (arguments) دیے گئے ہیں۔ ۔ پہلا Start، دوسرا Stop اور تیسرا Step۔یہاں Step اضافی دلیل (argument) ہے جو رینج فنکشن کو یہ بتاتی ہے کہ ہر عدد کے بعد کتنے نمبر آگے بڑھنا ہے۔
بائی ڈیفالٹ اسٹیپ 0 ہوتا ہے جبکہ ہماری مثال میں یہ 2 عدد ہے۔
مجھ سے اس لڑی میں سے کوئی پروگرام رن نہیں ہوا، بار بار دھیان سے لکھا ہے، ٹیلی کیا ہے لیکن ایک فرق خود بخود آتا ہے کہ print سے قبل تین ڈاٹس آتے ہیں!
 
For Loop اور Range
پائتھون میں ایک دستیاب (Built-in) فنکشن range بھی ہوتا ہے۔ range عموماً 0 سے لے کر دیے گئے عدد تک عددی ترتیب (Range) فراہم کرتا ہے۔

range فنکشن میں تین دلائل ہوتے ہیں۔ جن میں سے ایک لازمی اور دو اختیاری ہوتے ہیں۔
کوڈ:
range([start,] stop[, step]) -> range object

Stop لازمی دلیل (argument) ہے۔ جبکہ Startاور Step قوسینِ کبیر [] میں دیے گئے ہیں جس کا مطلب یہ ہے کہ یہ دونوں دلائل (argument) اختیاری ہیں اور ان کا دینا لازمی نہیں ہے۔ ایک دلیل (argument) دی جائے تو اسے Stop تصور کیا جائے گا۔
فار لوپ کے ساتھ range کو اکثر استعمال کیا جاتا ہے۔

PHP:
>>> for i in range (6):
   print (i)
0
1
2
3
4
5

اس مثال میں ہم نے range فنکشن کو کال کرتے ہوئے صرف ایک دلیل (argument) فراہم کی ہے جو بتا رہی ہے کہ کس نمبر تک لوپ چلانی ہے۔ یعنی ہم نے Rang فنکشن کو 0 سے لے کر 9 تک رینج فراہم کرنے کی ہدایت دی ہے۔ یاد رہے کہ رینج میں ویلیو 0 سے دی جاتی ہے اور دیا گیا عدد رینج میں شامل نہیں ہوتا بلکہ range ایک عدد پہلے ختم ہو جاتی ہے۔

ہماری مثال میں فار لوپ دی گئی range کے مطابق دس چکر لگائے گی اور ہر چکر میں ایک نمبر پرنٹ کرے گی۔ نتیجے کے طور پر 0 سے لے کر 9 تک کے اعداد پرنٹ ہوں گئے۔

PHP:
>>> for i in range(5,12):
   print (i)
5
6
7
8
9
10
11

اس مثال میں ہم نے دو دلائل (arguments) دیے ہیں۔ پہلا Start اور دوسرا Stop۔ یعنی اس مثال میں range فنکشن 5 سے آغاز ہوگا اور (1-12) تک عددی ترتیب فراہم کرے گا۔ باقی نتیجہ وہی ہے جو اوپر والی مثال میں دیا گیا ہے۔

PHP:
>>> for i in range(0,10,2):
   print (i)
0
2
4
6
8

اس مثال میں تین دلائل (arguments) دیے گئے ہیں۔ ۔ پہلا Start، دوسرا Stop اور تیسرا Step۔یہاں Step اضافی دلیل (argument) ہے جو رینج فنکشن کو یہ بتاتی ہے کہ ہر عدد کے بعد کتنے نمبر آگے بڑھنا ہے۔
بائی ڈیفالٹ اسٹیپ 0 ہوتا ہے جبکہ ہماری مثال میں یہ 2 عدد ہے۔
کیا تیسرا آرگومنٹ وہ بائے ڈیفالٹ سٹیپ کو ہی لے گا؟ اگر ہاں! تو وہ بڑی بریکٹس میں کیوں نہیں ہے جیسا کہ شروع میں کہا گیا تھا!
 
اس کی رینج صرف نمبر پر اپلاہی ہو سکتی ھے؟
جی نمبر پر ہی اپلائی ہوتی ہے مگر سٹرنگ یا لسٹ پر len کا فنکشن لگا کر ان میں موجود اراکین کا نمبر معلوم کیا جا سکتا ہے اور اس رینج میں استعمال کیا جا سکتا ہے۔

PHP:
voc = ["Sabir", "Ahmad", "Namra"]
for i in range(len(voc)):
    print(i)

0
1
2

اگر لسٹ کے اراکین کو پرنٹ کروانا ہو تو پھر براہ راست لسٹ پر فار لوپ لگائی جائے گی۔
PHP:
voc = ["Sabir", "Ahmad", "Namra"]
for i in voc:
    print(i)

Sabir
Ahmad
Namra
 
مجھ سے اس لڑی میں سے کوئی پروگرام رن نہیں ہوا، بار بار دھیان سے لکھا ہے، ٹیلی کیا ہے لیکن ایک فرق خود بخود آتا ہے کہ print سے قبل تین ڈاٹس آتے ہیں!
کبھی کبھی کوئی ان دیکھا حرف شامل ہو جاتا ہے جس کی وجہ سے کوڈ میں مسئلہ آتا ہے۔ ایک دقت طلب حل تو یہ ہے کہ سارا کوڈ ٹائپ کریں نوٹ پیڈ میں پھر idle میں نئی فائل بنا کر محفوظ کریں اور
Run مینو پر کلک کریں اور پھر Run Module کو کلک کرکے چلا دیں۔
 
دو الگ الگ ویری ایبلز لینے کی اتنی ضروت کیوں ہے؟ ایک ہی کام کیوں نہیں کر سکتا؟
اگر ایک ہی ویری ایبل لیں تو پچھلی ویلیو کی جگہ نئی ویلیو آ جائے گی اور پرانی ویلیو ختم ہو جائے گی۔ اس لیے دو ویری ایبل لیے ہیں تاکہ دو ویری ایبل میں مختلف چیزیں موجود رہیں۔
 
کیا تیسرا آرگومنٹ وہ بائے ڈیفالٹ سٹیپ کو ہی لے گا؟ اگر ہاں! تو وہ بڑی بریکٹس میں کیوں نہیں ہے جیسا کہ شروع میں کہا گیا تھا!
اگر صرف ایک آرگومینٹ دیا جائے تو وہ سٹاپ stop تصور کیا جائے گا کہ باقی دو آرگومینٹ اختیاری ہیں اس لیے چوکور بریکٹ میں درج کیے گئے ہیں۔
start اور step اختیاری ہیں اور جب نہ دیے گئے ہوں تو ڈیفالٹ تصور کیے جاتے ہیں
start کی ڈیفالٹ قیمت صفر ہے۔
step کی ڈیفالٹ قیمت ایک ہے۔
 
اگر صرف ایک آرگومینٹ دیا جائے تو وہ سٹاپ stop تصور کیا جائے گا کہ باقی دو آرگومینٹ اختیاری ہیں اس لیے چوکور بریکٹ میں درج کیے گئے ہیں۔
start اور step اختیاری ہیں اور جب نہ دیے گئے ہوں تو ڈیفالٹ تصور کیے جاتے ہیں
start کی ڈیفالٹ قیمت صفر ہے۔
step کی ڈیفالٹ قیمت ایک ہے۔
لیکن اس مثال میں تو سٹیپ تیسرے نمبر پر یعنی دوسری قیمت پر تھا نا؟
 
PHP:
>>> list=[1,2,3,4]
>>> sum=1
>>> for val in list:
        sum=sum+val
        print(sum)

کوڈ:
2
4
7
11
اس میں اس نے سم کو صرف پہلے میں کیوں جمع کیا ھے۔باقی میں کوں نہین کیا؟؟؟
 
مدیر کی آخری تدوین:
PHP:
>>> list=[1,2,3,4]
>>> sum=1
>>> for val in list:
        sum=sum+val
        print(sum)

کوڈ:
2
4
7
11
اس میں اس نے سم کو صرف پہلے میں کیوں جمع کیا ھے۔باقی میں کوں نہین کیا؟؟؟
ویری ایبل کا نام جو کوڈ میں استعمال ہوا ہے وہی استعمال کریں۔ sum کو سمجھنے میں کافی وقت لگا مجھے۔

یہاں فار لوپ کی مدد سے ہر پھیرے میں sum ویری ایبل میں اس کی موجودہ قیمت اور لسٹ کے حاصل شدہ val کی قیمت جمع کرکے محفوظ کی جا رہی ہے۔
ہر پھیرے میں sum ویری ایبل کی موجودہ قیمت بھی پرنٹ کی جا رہی ہے۔

سوال تفصیل سے کریں اور اگر ویری ایبل استعمال ہوا ہے تو اس کا انگریزی نام انگریزی میں ہی لکھیں۔
 
Top