سبق For Loop

محمداحمد

لائبریرین
For Loop

عمومی زبان میں Loop حلقے کو کہتے ہیں۔جبکہ پروگرامنگ کی اصطلاح میں loop مخصوص پروگرامنگ ہدایات کو بار بار چلانے کا کام کرتا ہے یہاں تک کہ دی گئی شرط پوری ہو جائے۔

For Loop اور String

ہم For Loop کو اسٹرنگ کے ساتھ بھی استعمال کرتے ہیں۔ اور اسٹرنگ کے ساتھ For Loop کا کوڈ کچھ یوں ہوتا ہے۔

کوڈ:
for variable in str:
    body

یعنی For Loop کسی سلسلہ (Sequence) کے اجزا (Elements) کو باری باری پڑھتا ہے اور دیے گئی ہدایات کا بلاک چلاتا ہے۔

یہ مثال دیکھیے:
PHP:
>>> s = "URDUWEB.ORG"
>>> for i in s:
    print (i)
 
 
U
R
D
U
W
E
B
.
O
R
G
>>>

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

یعنی جب پہلی بار For Loop چلا تو i کو ہمارے ویری ایبل کے ٹیکسٹ میں موجود پہلا کیرکٹر "U" اسائن کیا گیا۔ یعنی پہلی بار جب loop چلا تو i کی ویلیو "U" مقرر ہوئی اور جب ہم نے پرنٹ کمانڈ سے i پرنٹ کرنے کو کہا تو اُس نے U پرنٹ کیا۔

پھر جب دوسری بار لوپ چلا تو اب i کو ٹیکسٹ میں موجود دوسرا کیرکٹر "R" اسائن کیا گیا اور پرنٹ کمانڈ نے پھر سے i جس کی ویلیو اب "R" تھی پرنٹ کیا۔

اسی طرح For Loop چلتا رہا اور ہر بار ایک نیا کیرکٹر پرنٹ کرتا رہا یہاں تک کے s میں موجود ٹیکسٹ تمام ہو گیا۔ جب s میں موجود ٹیکسٹ تمام ہوگیا (یعنی لوپ کی مقررہ شرط پوری ہو گئی) تو لوپ ختم (terminate) ہو گیا۔

مزید سمجھنے کے لئے ایک اور مثال :
PHP:
>>> t = "Programing Baiscs"
>>> for var in t:
    print (var)
 
 
P
r
o
g
r
a
m
i
n
g
 
B
a
i
s
c
s
>>>
 

محمداحمد

لائبریرین
For Loop کی ایک اور مثال:

یہ فنکشن دیکھیے:

PHP:
def count_vowels(s):
    ''' (str) -> int
 
    Return the number of vowels in s. Do not treat letter y as a vowel
 
    >>> count_vowels('Happy Anniversary!')
    5
    >>> count_vowels('xyz')
    0 
    '''
 
    num_vowels = 0
 
    for char in s:
        if char in 'aeiouAEIOU':
            num_vowels = num_vowels + 1
 
    return num_vowels

یہ فنکشن کسی ٹیکسٹ (String) میں موجود vowels گننے کا کام کرتا ہے ۔ فنکشن کا نام اس کے کام کے اعتبار سے count_vowels ہے جبکہ فنکشن میں ایک آرگیومینٹ s بھی دیا گیا ہے۔ فنکشن کی docString میں دو مثالیں فنکشن کال اور فنکشن کے نتائج کے ساتھ موجود ہیں۔

فنکشن باڈی:

سب سے پہلے ایک ویری ایبل num_vowels کے نام سے بنایا گیا ہے اور اس کو (By Default) صفر (0) کی ویلیو اسائن کی گئی ہے۔

اس کے بعد اسٹرنگ (s) کو For loop کے ذریعے پراسس کیا گیا ہے اور ہر بار لوپ چلنے پر موصول ہونے والی قدر (value) ایک ویری ایبل char میں محفوظ کر لی گئی۔

Loopکی باڈی میں ایک If بیان شامل کیا گیا ہے جو اس بات کی جانچ کرتا ہے کہ char میں موجود اسٹرنگ کہیں "aeiouAEIOU" میں موجود تو نہیں ہے اگر ہاں تو (یعنی ایک vowel ملنے پر) ویری ایبل num_vowels میں 1 عدد جمع کردیتا ہے۔ اسی طرح For Loop چلتا رہتا ہے یہاں تک کے s میں موجود اسٹرنگ کے کیرکٹرز تمام ہو جائیں۔

For Loop ختم (terminate) ہونے پر فنکشن num_vowels کی ویلیو ریٹرن کر دیتا ہے۔

یہ For Loop Over String کی ایک کارامد مثال ہے۔

اس فنکشن کو کیسے ٹیسٹ کیا جائے۔

1۔ اوپر سے فنکشن کاپی کر لیجے۔
2۔ اب شیل پر File مینو میں جا کر New Window پر کلک کریں۔
3۔ نئی ونڈو کھلنے پر فنکشن وہاں پیسٹ کر دیجے ۔
4۔ اب Ctrl + S کی مدد سے فائل سیو کیجے۔
5۔ فائل کے نام کے ساتھ پائتھون ایکسٹینشن .py لکھنا نہ بھولیے۔
6۔ فائل کا نام کچھ اس طرح کا ہوگا test.py
7۔ اب F5 پریس کرکے اپنے پروگرام کو رن کیجے۔
8۔ اور شیل پر فنکشن کو کال کیجے۔ کچھ ایسے:

PHP:
>>> t = "Programing Baiscs"
>>> count_vowels(t)
5
 

قیصرانی

لائبریرین
شرط کے بارے ایک وضاحت

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

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

وقت کے ساتھ ساتھ آپ کو بہتر اندازہ ہوگا کہ کن مواقع پر پہلی والی لوپ استعمال کرنی ہے اور کن مواقع پر دوسری والی
 

محمداحمد

لائبریرین
For Loop اور Range

پائتھون میں ایک دستیاب (Built-in) فنکشن Range بھی ہوتا ہے۔ Range عموماً 0 سے لے کر دیے گئے عدد تک عددی ترتیب (Range) فراہم کرتا ہے۔
Range فنکشن میں تین آرگیومینٹس ہوتے ہیں۔ جن میں سے ایک لازمی اور دو اختیاری ہوتے ہیں۔

کوڈ:
range([start,] stop[, step]) -> range object

Stop لازمی آرگیومینٹ ہے۔ جبکہ Startاور Step قوسینِ کبیر [] میں دیے گئے ہیں جس کا مطلب یہ ہے کہ یہ دو آرگیومینٹس اختیاری ہیں اور ان کا دینا لازمی نہیں ہے۔ اور ایک آرگیومینٹ دیا جائے تو اسے Stop تصور کیا جائے گا۔

For Loop کے ساتھ Range کو اکثر استعمال کیا جاتا ہے۔

یہ مثال دیکھیے۔
PHP:
>>> for i in range (10):
    print (i)
 
 
0
1
2
3
4
5
6
7
8
9
>>>

اس مثال میں ہم نے Range فنکشن کو کال کرتے ہوئے صرف ایک آرگیومینٹ Stop) 10) فراہم کیا ہے۔ یعنی ہم نے Rang فنکشن کو 0 سے لے کر 9 تک رینج فراہم کرنے کی ہدایت دی ہے۔ یاد رہے کہ رینج میں ویلیو 0 سے دی جاتی ہے اور دیا گیا عدد رینج میں شامل نہیں ہوتا بلکہ Range ایک عدد پہلے ختم ہو جاتی ہے۔

ہماری مثال میں For Loop دی گئی Range سے ایک ایک عدد لے کر اس پر لوپ چلا رہا ہے جس میں پرنٹ کی ہدایت موجود ہے۔ اور اس طرح 0 سے لے کر 9 تک کے اعداد پرنٹ کئے گئے ہیں۔

ایک اور مثال دیکھیے۔
PHP:
>>> for i in range(5,17):
    print (i)
 
 
5
6
7
8
9
10
11
12
13
14
15
16
>>>

اس مثال میں ہم نے دو آرگیومینٹ دیے ہیں۔ پہلا Start اور دوسرا Stop۔ یعنی اس مثال میں Range فنکشن 5 سے لے کر (1-17) تک عددی ترتیب فراہم کرے گا۔ باقی نتیجہ وہی ہے جو اوپر والی مثال میں دیا گیا ہے۔

تیسری مثال:
PHP:
>>> for i in range(0,20,2):
    print (i)
 
   
0
2
4
6
8
10
12
14
16
18
>>>

اس مثال میں تین آرگیومینٹ دیے گئے ہیں۔ ۔ پہلا Start، دوسرا Stop اور تیسرا Step۔ اضافی آرگیومینٹ Step رینج کو یہ بتاتاہے کہ ہر عدد کے بعد کتنے نمبرز آگے بڑھنا ہے۔ بائی ڈیفالٹ اسٹیپ 0 ہوتا ہے۔
 
Top