পাইথন প্রোগ্রামিং সি প্রোগ্রামিং জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল জেকুয়েরি এইচটিএমএল সিএসএস বুটস্ট্রাপ এঙ্গুলার জেএস
ফোরাম
 

পাইথন প্রোগ্রামিং for লুপ


কোনো নির্দিষ্ট কোড ব্লককে রিপিট(repeat) করার জন্য প্রোগ্রামিং এ লুপ(loop) ব্যবহৃত হয়। এই অধ্যায়ে আপনি পাইথন প্রোগ্রামিং এ for লুপ তৈরি করা শিখবেন।

কন্ডিশন(condition) মিথ্যা না হওয়া পর্যন্ত কোনো কোড ব্লককে রিপিট(repeat) করার জন্য প্রোগ্রামিং এ লুপ ব্যবহৃত হয়।


list, tuple, string ইত্যাদি সিকুয়েন্স বা অন্যান্য ইটারেবল অবজেক্টকে ইটারেট(iterate) করতে পাইথনে for লুপ ব্যবহৃত হয়। সিকুয়েন্সকে ইটারেট করার এই পদ্ধতিকে ট্রাভার্সাল(traversal) বলা হয়।


পাইথনে for স্টেটমেন্ট এর সিনট্যাক্স

for value in sequence:
	Body of for

সিনট্যাক্স এর ব্যাখ্যা

  • এখানে value হচ্ছে ভ্যারিয়েবেল যা প্রতিবার ইটারেশন(iteration) এর সময় সিকুয়েন্স থেকে ভ্যালু গ্রহণ করে।
  • সিকুয়েন্সের শেষ উপাদানে না পৌঁছা পর্যন্ত এই লুপ চলতেই থাকে। for লুপ এর body-কে আলাদা করার জন্য ইন্ডেন্টেশন ব্যবহার করা হয়।

for স্টেটমেন্টের ফ্লোচার্ট

if স্টেটমেন্ট এর ফ্লোচার্ট


উদাহরনঃ পাইথন for লুপ

# এই প্রোগ্রামটি লিস্ট এ জমা রাখা সকল আইটেম 
# এর যোগফল  নির্ণয় করবে।

# সংখ্যার লিস্ট
numbers = [1,9,7,8,2,5,8]

# যোগফল জমা রাখার ভ্যারিয়েবল
sum = 0

# লিস্টের সবগুলো আইটেম পুনরাবৃত্তি(iterate) করবে।
for val in numbers:
	sum = sum+val

# যোগফল প্রিন্ট করবে।
print("The sum is",sum)
# Output: The sum is 40

range() ফাংশন

range() ফাংশন ব্যবহার করে আমরা নাম্বার এর সিকুয়েন্স তৈরি করতে পারি। যেমন- range(10) ফাংশন এর মাধ্যমে 0 থেকে 9 পর্যন্ত ১০টি নাম্বার পাওয়া যায়।

range() ফাংশন এর সিনট্যাক্স

range(start, stop, step size)

প্যারামিটার এর ব্যাখ্যা

  • start এবং stop যথাক্রমে ব্যবধীর(range) প্রথম এবং শেষ উপাদান।
  • step size হলো উপাদের ক্রমিক ধাপ। কোনো কিছু না বলে দিলে step size এর ডিফল্ট মান 1 থাকে।

range() ফাংশনের সকল ভ্যালু মেমোরিতে সংরক্ষিত হয় না। সুতরাং এটি শুধুমাত্র start, stop এবং step size মনে রাখে এবং সেই অনুযায়ী নাম্বার উৎপাদন করে।

এই ফাংশন এর মাধ্যমে সকল উপাদান বা আইটেম এর আউটপুট নিতে আমরা list() ফাংশন ব্যবহার করতে পারি।

নিচের উদাহরণের মাধ্যমে এটি আপনার কাছে আরও পরিষ্কার হয়ে যাবে।

# রেঞ্জ প্রিন্ট হবে
print(range(10))
# Output: range(0, 10)
 
# 0 থেকে 10 এর মধ্যে রেঞ্জ এর লিস্ট প্রিন্ট হবে
print(list(range(10)))
# Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
# 3 থেকে 6 এর মধ্যে রেঞ্জ এর লিস্ট প্রিন্ট হবে
print(list(range(3,6)))
# Output: [3, 4, 5]

# 4 ব্যবধানে 3 থেকে 20 এর মধ্যে রেঞ্জ এর লিস্ট প্রিন্ট হবে
print(list(range(3, 20, 4)))
# Output: [3, 7, 11, 15, 19]

for লুপ এর মধ্যে range() ফাংশন ব্যবহার করে আমরা নাম্বারের সিকুয়েন্সকে ইটারেট(iterate) করতে পারি। ইন্ডেক্সিং ব্যবহার করে সিকুয়েন্সকে ইটারেট করতে এই ফাংশন এর প্যারামিটার হিসাবে আমরা len() ফাংশন ব্যবহার করতে পারি।

উদাহরণস্বরূপঃ

# index ব্যবহার করে সমগ্র লিস্টকে ইটারেট করবে।
# color এর লিস্ট
color = ['red','green','blue']

# index ব্যবহার করে সম্পূর্ণ লিস্টের পুনরাবৃত্তি ঘটাবে

for i in range(len(color)):
	print("I like",color[i])
# Output:
# My favourite color is red
# My favourite color is green
# My favourite color is blue
    

else সহ for লুপ

for লুপের সাথে অতিরিক্ত হিসাবে else ব্লকও থাকতে পারে। for লুপের কন্ডিশন False হলে else এর কোড ব্লক সম্পাদিত হবে।

for লুপ বন্ধ করার জন্য break স্টেটমেন্ট ব্যবহার করা হয়। এক্ষেত্রে এটি else অংশকে এড়িয়ে যায়।

সুতরাং লুপের else অংশ কেবল তখনই সম্পন্ন হয় যখন কোনো break স্টেটমেন্ট থাকে না এবং কন্ডিশন false হয়।

নিচের উদাহরণের মাধ্যমে এটি আপনার কাছে পরিষ্কার হয়ে যাবে।

                                                                    
# for লুপ এর সাথে else ব্লক এর ব্যবহার

# ডিজিট এর একটি লিস্ট
list_of_digits = [0,1,2,3,4,5,6,7,8,9]

# বিভিন্ন রেজাল্ট পাওয়ার ইনপুট ডিজিট পরিবর্তন করুন
input_digit = 4

# ইউজার থেকে ইনপুট নিতে নিচের কোড এর কমেন্ট তুলে দিন
#input_digit = int(input("Enter a digit: "))

# আমাদের লিস্ট থেকে ইনপুট ডিজিট খুঁজে বের করবে।
for i in list_of_digits:
	if input_digit == i:
		print("Digit is in the list")
		break
	else:
		print("Digit not found in list")

# Output: আপনার ইনপুট এর উপর ভিত্তি করে ফলাফল পাবেন।	

এখানে 0 থেকে 9 পর্যন্ত আমাদের একটি লিস্ট আছে। আমরা ইউজারকে একটি নাম্বার প্রবেশ করাতে বলি এবং আমাদের লিস্টে আছে কি না তা চেক করি। যদি নাম্বারটি আমাদের লিস্টে থাকে তাহলে for লুপ স্থায়ীভাবে বন্ধ হয়ে যাবে।

সুতরাং else অংশ রান করবে না। কিন্তু নাম্বারটি যদি আমাদের লিস্টে না থাকে তাহলে else অংশ রান হবে।