মডিউল পাঠ (1/4)
loops এবং পরিসীমা জন্য
পাইথনের for লুপটি আইটেমগুলির একটি ক্রম পুনরাবৃত্তি করতে ব্যবহৃত হয়:
একটি তালিকা, একটি স্ট্রিং, একটি পরিসীমা, একটি নির্দেশনা… "পুনরাবৃত্ত"।
parole = ["ciao", "mondo", "!"]
for p in parole:
print(p)
# ciao
# mondo
# !প্যাটার্ন সবসময় একই থাকে: for <variable> in <iterable>: এর পরে
ইন্ডেন্টেড ব্লক যা প্রতিটি আইটেমের জন্য একবার কার্যকর করা হবে।
range(...): পূর্ণসংখ্যা ব্যবধান তৈরি করা হচ্ছে
range পূর্ণসংখ্যার একটি অলস ক্রম তৈরি করে। তিনটি রূপ:
range(5) # 0, 1, 2, 3, 4
range(2, 6) # 2, 3, 4, 5
range(0, 10, 2) # 0, 2, 4, 6, 8 (step)
range(5, 0, -1) # 5, 4, 3, 2, 1 (negative step)range ডান প্রান্তে একচেটিয়া, যেমন slice৷ এটি একটি অলস বস্তু:
এটি সমস্ত সংখ্যার জন্য মেমরি বরাদ্দ করে না, এটি একটি সময়ে একটি তৈরি করে।
totale = 0
for i in range(1, 11):
totale = totale + i
totale # 55 (1+2+...+10)একটি সূচকের সাথে পুনরাবৃত্তি: enumerate
আপনার যখন আইটেম এবং এর সূচী একসাথে প্রয়োজন, তখন enumerate ব্যবহার করুন:
parole = ["ciao", "mondo", "!"]
for i, p in enumerate(parole):
print(i, p)
# 0 ciao
# 1 mondo
# 2 !enumerate তৈরি করে (index, value) জোড়া যা আমরা সরাসরি দুজনকে বরাদ্দ করি
টুপল আনপ্যাকিং এর মাধ্যমে ভেরিয়েবল (আমরা এটিকে নিবেদিত মডিউলে দেখতে পাব
ডেটা স্ট্রাকচার)।
সমান্তরালভাবে দুটি ক্রম পুনরাবৃত্তি করা হচ্ছে: zip
nomi = ["Ada", "Linus", "Grace"]
anni = [36, 54, 79]
for n, a in zip(nomi, anni):
print(f"{n} ha {a} anni")zip সংক্ষিপ্ততম অনুক্রমে থামে।
range() এবং পাইথনের অলসতা
পাইথনে, range() ফাংশন মেমরিতে একটি প্রকৃত তালিকা বরাদ্দ করে না: এটি একটি অলস জেনারেটর প্রদান করে যা অনুরোধ অনুযায়ী এক সময়ে একটি নম্বর দেয় (উদাহরণস্বরূপ, একটি for লুপে)। এটি র্যাম ব্লোটিং ছাড়াই লক্ষ লক্ষ পূর্ণসংখ্যার পুনরাবৃত্তি করতে দেয়। একটি তালিকা হিসাবে পরিসরের মানগুলি পরিদর্শন করতে, আপনি এটিকে list(range(5)) দিয়ে স্পষ্টভাবে কাস্ট করতে পারেন৷
নিজে চেষ্টা করে দেখুন
লুপ ওভার রেঞ্জ(...) ব্যবহার করে 1 থেকে 100 (অন্তর্ভুক্ত) পর্যন্ত সংখ্যার যোগফল গণনা করুন, এটিকে 'মোট'-এ বরাদ্দ করুন এবং মূল্যায়ন করুন।
ইঙ্গিত দেখান
পরিসীমা(1, 101) 1, 2, ..., 100 (ডানদিকে একচেটিয়া) তৈরি করে।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
ব্যায়াম পর্যালোচনা করুন
তালিকা `শব্দ = ['uno', 'due', 'tre']` দেওয়া, গণনা ব্যবহার করে '0:uno', '1:due', '2:tre' এর মতো স্ট্রিংগুলির একটি তালিকা তৈরি করুন। 'জোড়া' মূল্যায়ন করুন।
ইঙ্গিত দেখান
প্রতিটি পুনরাবৃত্তিতে enumerate(শব্দ) রিটার্ন (সূচক, মান)।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
অতিরিক্ত চ্যালেঞ্জ
Calculate the sum of all even numbers from 2 to 20 inclusive using a `for` loop over a `range`. Store the final sum in `even_sum` and evaluate it.
ইঙ্গিত দেখান
শুধুমাত্র 2 থেকে 20 পর্যন্ত পূর্ণসংখ্যার উপর পুনরাবৃত্তি করতে পরিসীমা (2, 21, 2) ব্যবহার করুন।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ