Skip to content

Latest commit

 

History

History
80 lines (59 loc) · 7.09 KB

control-flow.md

File metadata and controls

80 lines (59 loc) · 7.09 KB

কন্ট্রোল ফ্লো

একটি প্রোগ্রাম কিভাবে চলবে, কোন ধাপের পর কোন ধাপ অনুসরন করবে সেই সিদ্ধান্ত নেওয়াই কন্ট্রোল ফ্লো । আমরা এই চ্যাপ্টারে দেখবো কিভাবে আমরা একটি পাইথন প্রোগ্রামের ফ্লো কন্ট্রোল করতে পারি ।

ইফ স্টেটমেন্ট

ইফ স্টেটমেন্ট ব্যবহার করে আমরা কোন একটি ভ্যালুর উপর নির্ভর করে প্রোগ্রাম এর ফ্লো কন্ট্রোল করতে পারি ।

if x < 0:
    x = 0
    print 'Negative changed to zero'
elif x == 0:
    print 'Zero'
elif x == 1:
    print 'Single'
else:
    print 'More'    

if এর পর আমরা একটি এক্সপ্রেশন ব্যবহার করি, যদি এই এক্সপ্রেশনের ভ্যালু বুলিয়ান True এর সমতুল্য হয় তাহলে এই স্টেটমেন্টের সাথে সংশ্লিষ্ট কোড ব্লকটি রান করে । আর যদি True না হয় তবে পাইথন ঐ কোড ব্লক স্কিপ করে যায় ।

elif ব্যবহার করে আমরা একাধিক if পার্ট যোগ করতে পারি । যদি if বা কোন elif ব্লকই এক্সিকিউটেড না হয় (অর্থাৎ কোনটার ভ্যালুই True না হয়) তাহলে else ব্লকের কোড রান করে ।

উল্লেখ্য else কিংবা elif অপশনাল । elif হলো else if‍ এর সংক্ষিপ্ত রুপ ।

ফর স্টেটমেন্ট

পাইথনে for একটি সিকুয়েন্স (যেমন: list, set, dictionary, tuple ইত্যাদি) এ থাকা আইটেমগুলো একটার পর একটা এ্যাক্সেস করে এবং প্রতিবার একটি লোকাল ভ্যারিয়েবলে ঐ আইটেমটি পাস করে দেয় । আমরা ফর স্টেটমেন্টের সাথে থাকা কোড ব্লকে এই ভ্যারিয়েবল নিয়ে কাজ করতে পারি । একটি আইটেম প্রসেস করা শেষ হলে ফর স্টেটমেন্টটি পরবর্তী আইটেম এ মুভ করে । এটাকে ইটারেশন বলা হয় ।

অর্থাৎ ফর স্টেটমেন্ট যে কোন সিকুয়েন্স বা ইটারেটর এর লুপিং বা ইটারেশনের কাজে ব্যবহার করা হয় ।

words = ['cat', 'window', 'defenestrate']
for w in words:
    print w, len(w)

হোয়াইল স্টেটমেন্ট

হোয়াইল স্টেটমেন্টে পাস করা এক্সপ্রেশন যতক্ষন পর্যন্ত True হয় ততক্ষন পর্যন্ত লুপ চলতে থাকে । পাইথন ইন্টারপ্রেটার প্রতিবার হোয়াইল লুপে ঢুকে প্রথমেই কন্ডিশন টা চেক করে নেয়, যদি True হয় তাহলে সাথে থাকা কোড ব্লক এক্সিকিউট করে, তারপর আবার কন্ডিশন চেক করে নতুন করে শুরু করে - এভাবেই লুপটি চলতে থাকে । যখন ঐ এক্সপ্রেশনের ভ্যালু False হয় তখন পাইথন কোড ব্লকটি স্কিপ করে পরবর্তী স্টেটমেন্ট বা এক্সপ্রেশনে চলে যায় ।

i = 0
while i < 10:
	print i 
	i = i + 1

যেমন এখানে যতক্ষন পর্যন্ত i এর ভ্যালু 10 এর নিচে থাকবে ততক্ষন পর্যন্ত লুপ চলবে । প্রতিবারই i এর মান এক করে বাড়তে বাড়তে যখন 10 এর ছোট থাকবে না তখন লুপ শেষ হয়ে যাবে ।

ব্রেক, কন্টিনিউ এবং পাস

কোন লুপ থেকে বের হতে break স্টেটমেন্টটি ব্যবহার করা হয় । যেমন:

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print n, 'equals', x, '*', n/x
            break

কোন লুপের কোন একটি ইটারেশন স্কিপ করে পরবর্তী ইটারেশনে মুভ করার জন্য continue স্টেটমেন্টটি ব্যবহার করা হয় । এক্ষেত্রে continue স্টেটমেন্ট এর পর থেকে ঐ ইটারেশনের আর কোন কোড এক্সিকিউট করা হয় না, বরং সরাসরি পরবর্তী ইটারেশনের শুরুতে চলে যায় ।

for num in range(2, 10):
    if num % 2 == 0:
        print "Found an even number", num
        continue
    print "Found a number", num

pass স্টেটমেন্টটি বেশ মজার । এটি কোন কাজ করে না, এটাকে মূলত প্লেইস হোল্ডার হিসেবে ব্যবহার করা হয় । যেসব জায়গায় পাইথন কোন না কোন স্টেটমেন্ট আশা করে কিন্তু আমরা কোন স্টেটমেন্ট দিতে চাই না, তখন আমরা pass ব্যবহার করি ।

যেমন একটি ফাকা ফাংশন বডি:

def does_nothing(*args):
    pass

এমনিতে পাইথন ফাংশন এ অবশ্যই একটি বডি থাকা লাগবে যেখানে ফাংশনের মূল কাজটি করার কথা । কিন্তু আমরা আপাতত একটি ফাংশন চাই যেটা কোন কাজ করবে না, তাই আমরা pass ব্যবহার করলাম যাতে পাইথন ইন্টারপ্রেটার কোন এরর থ্রো না করে ।