পাইথনে লুপ করার সময়। এটি কিভাবে কাজ করে, ব্যবহারের উদাহরণ

লুপ যে কোনো ভাষার অন্যতম প্রধান হাতিয়ার। পাইথনে দুটি মৌলিক লুপ রয়েছে, যার মধ্যে একটি হল while। এটি বিবেচনা করুন, এবং ছবিটি আরও ভালভাবে বোঝার জন্য, আরও একটি। প্রকৃতপক্ষে, অনুরূপ কিছুর সাথে তুলনা করে, যে কোনও উপাদান বোঝা অনেক সহজ, তাই না?

একটি চক্রের ধারণা

একটি লুপ প্রয়োজন যখন একটি নির্দিষ্ট ক্রিয়া একাধিকবার সঞ্চালনের প্রয়োজন হয়। এটি খুব সরল, কারণ বাস্তবে চক্রের জন্য অ্যাপ্লিকেশনের পরিসীমা অনেক বিস্তৃত। পাইথনে দুটি প্রধান ধরনের লুপ রয়েছে: for এবং while। জন্য সবচেয়ে জনপ্রিয় হয়.

নির্দিষ্ট ক্রিয়াগুলি ছাড়াও, আপনি একটি নির্দিষ্ট বিন্দু পর্যন্ত কোডের বিভিন্ন টুকরো লুপ করতে পারেন। এটি একটি নির্দিষ্ট সংখ্যক বার হতে পারে, বা যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত সত্য।

আমরা লুপের ধরনগুলি বুঝতে শুরু করার আগে এবং বিশেষ করে, আমাদের এখনও পুনরাবৃত্তি কী তা বুঝতে হবে। এটি বর্তমান অ্যাপ্লিকেশন রানের মধ্যে বর্তমান চক্র চলাকালীন একটি ক্রিয়া বা কর্মের ক্রমটির পুনরাবৃত্তি।

জন্য সাইকেল

আমাদের জন্য লুপ একটি কাউন্টার নয়, অন্যান্য অনেক ভাষার মতো। এর কাজ হল মানগুলির একটি নির্দিষ্ট ক্রম গণনা করা। এটার মানে কি? ধরা যাক আমাদের উপাদানগুলির একটি তালিকা আছে। প্রথম, লুপ প্রথম, দ্বিতীয়, তৃতীয়, এবং তাই লাগে.

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

>>> spisok = [10, 40, 20, 30]

>>> spisok এ উপাদানের জন্য:

… মুদ্রণ (উপাদান + 2)

...

12

42

22

32

আমাদের উদাহরণে, আমরা ভেরিয়েবল ব্যবহার করেছি উপাদান ফর কমান্ডের পরে। সাধারণভাবে, নাম যেকোনো কিছু হতে পারে। উদাহরণস্বরূপ, একটি জনপ্রিয় পদবি হল i. এবং প্রতিটি পুনরাবৃত্তির সাথে, এই পরিবর্তনশীলটিকে তালিকা থেকে একটি নির্দিষ্ট বস্তু বরাদ্দ করা হবে, যাকে আমরা উপযুক্ত শব্দ বলেছি।

আমাদের ক্ষেত্রে, তালিকাটি 10,40,20,30 নম্বরগুলির একটি ক্রম। প্রতিটি পুনরাবৃত্তিতে, সংশ্লিষ্ট মান পরিবর্তনশীলে উপস্থিত হয়। উদাহরণস্বরূপ, লুপ শুরু হওয়ার সাথে সাথে চলকটি উপাদান মান 10 বরাদ্দ করা হয়। পরবর্তী পুনরাবৃত্তিতে, দশটি 40 নম্বরে পরিণত হয়, তৃতীয়বার এটি 20 নম্বরে পরিণত হয় এবং অবশেষে, লুপের শেষ পুনরাবৃত্তিতে, এটি 30-এ পরিণত হয়।

চক্রের শেষের সংকেত হল তালিকার উপাদানগুলির শেষ।

অন্যান্য প্রোগ্রামিং ভাষার মতো মানগুলির একটি ক্লাসিক গণনা করার জন্য যদি আপনার লুপের প্রয়োজন হয়, তাহলে আপনাকে আমাদের প্রয়োজনীয় মান পর্যন্ত প্রাকৃতিক সংখ্যার ক্রম সহ একটি তালিকা তৈরি করতে হবে।

>>> spisok = [1,2,3,4,5]

অথবা ফাংশন ব্যবহার করুন লেন(), তালিকার দৈর্ঘ্য নির্ধারণ করতে। তবে এক্ষেত্রে লুপ ব্যবহার করাই ভালো যখন, কারণ একটি পরিবর্তনশীল ব্যবহার করার প্রয়োজন নেই।

আপনি যদি তালিকার মানগুলির ক্রম পরিবর্তন করতে চান তবে লুপ করুন উন্নত এবং এখানে উদ্ধার আসে. এটি করার জন্য, প্রতিটি পুনরাবৃত্তিতে, তালিকার প্রতিটি উপাদানকে একটি উপযুক্ত মান বরাদ্দ করতে হবে।

যখন লুপ

চক্রের বিপরীতে উন্নত , যা সহজভাবে অনুক্রমের মান, লুপের উপর পুনরাবৃত্তি করে যখন আরো ব্যবহার আছে। এই ধরণের চক্রের নাম "এখনও" হিসাবে অনুবাদ করা হয়েছে। অর্থাৎ, “যতক্ষণ”।

এটি একটি সর্বজনীন লুপ যা সমস্ত প্রোগ্রামিং ভাষায় পাওয়া যায়। এবং কিছু উপায়ে এটি একটি শর্তাধীন অপারেটরের সাথে সাদৃশ্যপূর্ণ ইয়ে, যা একটি নির্দিষ্ট শর্ত পূরণ হয়েছে কিনা তা দেখতে একটি পরীক্ষা করে। শুধুমাত্র শর্তাধীন অপারেটরের বিপরীতে, যখন শুধুমাত্র একবার নয়, প্রতিটি পুনরাবৃত্তিতে পরীক্ষা করে। এবং শর্তটি মিথ্যা হলেই, লুপটি শেষ হয় এবং যে কমান্ডটি অনুসরণ করে তা কার্যকর করা হয়। সহজ কথায়, তিনি যে পরিস্থিতিতে কাজ করেন তা যদি আর বৈধ থাকে না।

যদি আমরা একটি চক্র আঁকি যখন সরলভাবে, এই ধরনের একটি স্কিম ব্যবহার করে করা হয়.পাইথনে লুপ করার সময়। এটি কিভাবে কাজ করে, ব্যবহারের উদাহরণ

প্রোগ্রামের প্রধান শাখা (যা লুপের বাইরে চলে) নীল আয়তক্ষেত্র দিয়ে এই চিত্রে চিত্রিত করা হয়েছে। ফিরোজা চক্রের শরীরের প্রতিনিধিত্ব করে। পরিবর্তে, একটি রম্বস এমন একটি শর্ত যা প্রতিটি পুনরাবৃত্তিতে পরীক্ষা করা হয়।

চক্র যখন দুটি ব্যতিক্রম হতে পারে:

  1. যদি লুপের শুরুতে যৌক্তিক অভিব্যক্তিটি সত্য না হয়, তবে এটি কার্যকর হওয়ার আগে সম্পূর্ণ হয়ে শুরু হয় না। সাধারণভাবে, এই পরিস্থিতি স্বাভাবিক, কারণ নির্দিষ্ট পরিস্থিতিতে, অ্যাপ্লিকেশন লুপ বডিতে এক্সপ্রেশনের উপস্থিতির জন্য প্রদান নাও করতে পারে।
  2. অভিব্যক্তি সর্বদা সত্য হলে, এটি একটি লুপ হতে পারে। অর্থাৎ চক্রের অন্তহীন স্ক্রোলিং পর্যন্ত। অতএব, এই জাতীয় প্রোগ্রামগুলিতে, লুপ বা প্রোগ্রাম থেকে সর্বদা একটি এক্সিট স্টেটমেন্ট থাকা উচিত। যাইহোক, এই পরিস্থিতি দেখা দেবে যদি প্রোগ্রামটি একটি নির্দিষ্ট শর্তের সত্য বা মিথ্যা নির্ণয় করতে সক্ষম হয়। যদি তিনি এটি করতে ব্যর্থ হন, তাহলে প্রোগ্রামের সমাপ্তির সাথে একটি ত্রুটি ফিরে আসবে। অথবা আপনি ত্রুটিটি পরিচালনা করতে পারেন এবং তারপরে, যদি এটি ঘটে তবে নির্দিষ্ট কোডটি কার্যকর করা হবে।

একটি ত্রুটি কিভাবে পরিচালনা করতে হয় তার জন্য বিপুল সংখ্যক বিকল্প থাকতে পারে। উদাহরণস্বরূপ, প্রোগ্রামটি ব্যবহারকারীকে সঠিকভাবে ডেটা প্রবেশ করতে বলতে পারে। সুতরাং, যদি একজন ব্যক্তি একটি নেতিবাচক সংখ্যা নির্দেশ করে যেখানে এটি শুধুমাত্র ধনাত্মক হতে পারে, বা অক্ষর প্রবেশ করান যেখানে শুধুমাত্র সংখ্যা হওয়া উচিত, প্রোগ্রামটি এটি সম্পর্কে বলতে পারে।

যখন লুপ উদাহরণ

এখানে কোডের একটি উদাহরণ যা এই ক্ষেত্রে একটি ত্রুটি পরিচালনা করে।

n = ইনপুট ("একটি পূর্ণসংখ্যা লিখুন: ") 

যখন টাইপ(n) != int:

    চেষ্টা করুন:

        n = int(n)

    ValueError ব্যতীত:

        মুদ্রণ ("ভুল এন্ট্রি!")

        n = ইনপুট ("একটি পূর্ণসংখ্যা লিখুন: ") 

যদি n % 2 == 0:

    মুদ্রণ ("এমনকি")

অন্য:

    মুদ্রণ ("বিজোড়")

মনে রাখবেন যে পাইথন জটিল কোড গঠন ঘোষণা করতে কোলন ব্যবহার করে।

উপরের কোডে, আমরা একটি শর্ত হিসাবে সংজ্ঞায়িত করেছি যে সংখ্যাটি একটি পূর্ণসংখ্যা কিনা তা আমাদের পরীক্ষা করা উচিত। যদি হ্যাঁ, তাহলে মিথ্যা ফেরত দেওয়া হয়। না হলে সত্যি।

কোডের দ্বিতীয় অংশে, যেখানে অপারেটর ব্যবহার করা হয় if, আমরা ডিভিশন অপারেশনের পরে অবশিষ্টাংশ খুঁজে পেতে % অপারেটর ব্যবহার করেছি। পরবর্তী ধাপ হল সংখ্যাটি সমান কিনা তা পরীক্ষা করা। যদি না হয়, তাহলে এই ক্ষেত্রে অবশিষ্ট একটি। তদনুসারে, সংখ্যাটি বিজোড়। 

সহজ ভাষায়, উপরের কোডটি প্রথমে চেক করে যে ব্যবহারকারীর দ্বারা প্রবেশ করা স্ট্রিংটি একটি সংখ্যা কিনা। যদি হ্যাঁ, তাহলে একটি দ্বিতীয় চেক করা হয় দুই দ্বারা বিভাজনের অবশিষ্ট আছে কিনা। কিন্তু দ্বিতীয় ব্লকটি কার্যকর করা হবে না যতক্ষণ না ব্যবহারকারীর দ্বারা প্রবেশ করা মান সংখ্যাসূচক হয়।

অর্থাৎ, শর্তটি না হওয়া পর্যন্ত লুপটি নিয়মিতভাবে কার্যকর করা হবে। এই পরিস্থিতিতে, এটি এই মত কাজ করে। 

অর্থাৎ, আপনি বিপরীত থেকে যেতে পারেন: ঘটনাটি মিথ্যা না হওয়া পর্যন্ত একটি নির্দিষ্ট ক্রিয়া লুপ করুন।

কোড পার্সিং

এখন এই কোড কিভাবে কাজ করে আরও বিস্তারিতভাবে দেখা যাক। এটি করার জন্য, আমরা এটি ধাপে ধাপে বিশ্লেষণ করব।

  1. প্রথমত, ব্যবহারকারী একটি স্ট্রিং প্রবেশ করে, যা ভেরিয়েবল n দ্বারা গৃহীত হয়। 
  2. একটি লুপ ব্যবহার করে যখন এই ভেরিয়েবলের ধরন চেক করা হয়। প্রথম এন্ট্রিতে, এটি সমান নয় কোন int. অতএব, পরীক্ষার ফলাফল হিসাবে, এই শর্ত সত্য যে পাওয়া যায়. অতএব, লুপ শরীর প্রবেশ করা হয়.
  3. একজন অপারেটরের সাহায্যে চেষ্টা আমরা একটি সংখ্যা একটি স্ট্রিং রূপান্তর করার চেষ্টা করছি. যদি এটি করা হয়, তাহলে কোন ত্রুটি ঘটে না। তদনুসারে, এটি প্রক্রিয়া করার প্রয়োজন নেই। অতএব, দোভাষী লুপের শুরুতে ফিরে আসে এবং চেকের ফলাফল অনুসারে দেখা যায় যে এটি একটি পূর্ণসংখ্যা হয়ে গেছে। তো চলুন ধাপ 7 এ যাই
  4. যদি রূপান্তর ব্যর্থ হয়, তাহলে একটি ValueError নিক্ষেপ করা হয়। এই ক্ষেত্রে, প্রোগ্রাম প্রবাহটি ছাড়া হ্যান্ডলারে পাঠানো হয়।
  5. ব্যবহারকারী একটি নতুন মান প্রবেশ করে, যা ভেরিয়েবল n এ বরাদ্দ করা হয়।
  6. দোভাষী ধাপ 2 এ ফিরে যান এবং আবার পরীক্ষা করেন। যদি এটি একটি পূর্ণসংখ্যা মান হয়, ধাপ 7 এ যান। যদি না হয়, তাহলে ধাপ 3 অনুযায়ী রূপান্তরটি আবার করার চেষ্টা করা হয়।
  7. একজন অপারেটরের সাহায্যে if একটি সংখ্যাকে 2 দ্বারা ভাগ করার পর একটি অবশিষ্ট আছে কিনা তা নির্ধারণ করে। 
  8. যদি তা না হয়, "এমনকি" লেখাটি ফেরত দেওয়া হয়।
  9. যদি না হয়, পাঠ্য "বিজোড়" ফিরে আসে.

এখন যেমন একটি উদাহরণ বিবেচনা করুন. এই চক্রটি কতবার অতিক্রম করবে তা নির্ধারণ করার চেষ্টা করুন?

মোট = 100 

আমি = 0

যখন আমি <5:

    n = int(ইনপুট())

    total = মোট — n

    i = i + 1 

মুদ্রণ ("অবশিষ্ট", মোট)

সঠিক উত্তর হল 5। প্রাথমিকভাবে, চলকের মান i - শূন্য। দোভাষী পরীক্ষা করে যে পরিবর্তনশীলটি সমান কিনা i 4 বা তার কম। যদি হ্যাঁ, তাহলে মান ফেরত দেওয়া হয়। সত্য, এবং লুপ সেই অনুযায়ী কার্যকর করা হয়। মান এক দ্বারা বৃদ্ধি করা হয়.

প্রথম পুনরাবৃত্তির পরে, ভেরিয়েবলের মান 1 হয়ে যায়। একটি পরীক্ষা করা হয়, এবং প্রোগ্রামটি বুঝতে পারে যে এই সংখ্যাটি আবার 5-এর কম। সেই অনুযায়ী, লুপ বডিটি দ্বিতীয়বার কার্যকর করা হয়। যেহেতু ধাপগুলি একই রকম, মানটিও এক দ্বারা বৃদ্ধি করা হয়েছে এবং চলকটি এখন 2 এর সমান।

এই মানটিও পাঁচের কম। তারপর লুপটি তৃতীয়বার কার্যকর করা হয়, ভেরিয়েবলে যোগ করা হয় i 1 এবং এটির মান 3 নির্ধারণ করা হয়েছে। এটি আবার পাঁচটির কম। এবং তাই এটি লুপের ষষ্ঠ পুনরাবৃত্তিতে আসে, যেখানে ভেরিয়েবলের মান i সমান 5 (সব পরে, এটি মূলত শূন্য ছিল, যতদূর আমরা মনে করি)। তদনুসারে, এই শর্তটি পরীক্ষায় উত্তীর্ণ হয় না, এবং লুপটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় এবং পরবর্তী ধাপে রূপান্তর করা হয়, যা এটির বাইরে থাকে (অথবা প্রোগ্রামের সমাপ্তি, যদি নিম্নলিখিত পদক্ষেপগুলি সরবরাহ করা না হয়), বাহিত হয়।

চক্রটি বিপরীত দিকেও ঘটতে পারে। এখানে কোডের একটি উদাহরণ যেখানে, প্রতিটি পরবর্তী পুনরাবৃত্তির সাথে, একটি ভেরিয়েবলের বর্তমান মান থেকে বিয়োগ করা হয়। 

মোট = 100 

যখন মোট > 0:

    n = int(ইনপুট())

    total = মোট — n 

মুদ্রণ ("সম্পদ নিঃশেষিত")

এই প্রোগ্রাম কি অনুমান করার চেষ্টা করুন! একটি পরিবর্তনশীল যে কল্পনা করুন মোট প্রোগ্রাম সম্পদ সম্পর্কে তথ্য সংরক্ষণ করা হয়. প্রতিবার দোভাষী রিসোর্স বিদ্যমান কিনা তা পরীক্ষা করে। যদি না হয়, তাহলে "সম্পদ নিঃশেষিত" লেখাটি প্রদর্শিত হবে এবং প্রোগ্রামটি বন্ধ হয়ে যাবে। এবং লুপের প্রতিটি পুনরাবৃত্তির সাথে, সংস্থানটি ব্যবহারকারীর নির্দিষ্ট করা সংখ্যা দ্বারা হ্রাস পায়।

এবং এখন হোমওয়ার্ক। উপরের কোডটি পরিবর্তন করার চেষ্টা করুন যাতে ভেরিয়েবলটি শারীরিকভাবে নেতিবাচক হতে না পারে। 

4 মন্তব্য

  1. si কোড ahaan usoo গুদবি

  2. হাঃ হাঃ হাঃ

নির্দেশিকা সমন্ধে মতামত দিন