একটি প্রোগ্রাম কিভাবে চলবে, কোন ধাপের পর কোন ধাপ অনুসরন করবে সেই সিদ্ধান্ত নেওয়াই কন্ট্রোল ফ্লো । আমরা এই চ্যাপ্টারে দেখবো কিভাবে আমরা একটি পাইথন প্রোগ্রামের ফ্লো কন্ট্রোল করতে পারি ।
ইফ স্টেটমেন্ট ব্যবহার করে আমরা কোন একটি ভ্যালুর উপর নির্ভর করে প্রোগ্রাম এর ফ্লো কন্ট্রোল করতে পারি ।
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
ব্যবহার করলাম যাতে পাইথন ইন্টারপ্রেটার কোন এরর থ্রো না করে ।