পাইথনে শর্তযুক্ত যদি বিবৃতি। সিনট্যাক্স, অন্য/এলিফ ব্লক, উদাহরণ

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

আজ আমরা if স্টেটমেন্ট সম্পর্কে কথা বলব, যা একটি নির্দিষ্ট অবস্থার জন্য বর্তমান পরিস্থিতি পরীক্ষা করে এবং এই তথ্যের উপর ভিত্তি করে পরবর্তী পদক্ষেপের বিষয়ে সিদ্ধান্ত নেয়।

নিয়ন্ত্রণ বিবৃতি প্রকার

সাধারণভাবে, যদি একমাত্র বিবৃতি নয় যা একটি প্রোগ্রামের প্রবাহ নিয়ন্ত্রণ করে। সেইসাথে তিনি নিজেই অপারেটরদের একটি বৃহত্তর শৃঙ্খলের একটি উপাদান হতে পারেন।

এছাড়াও লুপ এবং বিবৃতি রয়েছে যা এটি কার্যকর করার প্রক্রিয়া নিয়ন্ত্রণ করে। আজ আমরা শুধুমাত্র শর্তসাপেক্ষ অপারেটর এবং এটি অংশগ্রহণ করতে পারে এমন চেইন সম্পর্কে কথা বলব।

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

  1. একটি নির্দিষ্ট মানের সাথে একটি পরিবর্তনশীলের সমতা।
  2. একটি নির্দিষ্ট কর্ম সঞ্চালন.
  3. অ্যাপ্লিকেশানের অবস্থা (পতন বা না)।

বর্ণালী অনেক বড় হতে পারে। শর্তসাপেক্ষ বিবৃতি বিভিন্ন ধরনের আসে:

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

যদি বিবৃতি

if স্টেটমেন্টের গঠন সব ভাষায় একই রকম। যাইহোক, পাইথনে, এর সিনট্যাক্স অন্য সব থেকে কিছুটা আলাদা:

যদি শর্ত:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

প্রথমে, অপারেটর নিজেই ঘোষণা করা হয়, তারপরে এটি যে শর্তে কাজ শুরু করে তা লেখা হয়। শর্ত সত্য বা মিথ্যা হতে পারে।

এটি কমান্ড সহ একটি ব্লক দ্বারা অনুসরণ করা হয়। যদি এটি অবিলম্বে পূরণ করার জন্য একটি মানদণ্ড অনুসরণ করে, তাহলে কমান্ডের অনুরূপ ক্রমটিকে ইফ ব্লক বলা হয়। আপনি এটিতে যেকোনো সংখ্যক কমান্ড ব্যবহার করতে পারেন।

মনোযোগ! সকলের মধ্যে ইন্ডেন্টেশন যদি ব্লক কমান্ড একই আকারের হতে হবে। ব্লকের সীমানা ইন্ডেন্ট দ্বারা নির্ধারিত হয়। 

ভাষা ডকুমেন্টেশন অনুযায়ী, ইন্ডেন্টেশন হল 4টি স্পেস। 

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

যদি শর্তের পরে একটি বিবৃতি ইন্ডেন্ট না করা হয় তবে এটি একটি if ব্লক হিসাবে গণ্য করা হয় না। আমাদের অবস্থা, এই লাইন . অতএব, চেকের ফলাফল নির্বিশেষে, এই লাইনটি কার্যকর করা হবে।

এই অপারেটর কিভাবে কাজ করে তার একটি উদাহরণের জন্য এখানে একটি কোড স্নিপেট আছে।

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

যদি সংখ্যা > 10:

    মুদ্রণ ("সংখ্যাটি 10 ​​এর বেশি")

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

কিন্তু আপনি যদি 100 নম্বরটি উল্লেখ করেন, তাহলে দোভাষী বুঝতে পারবেন যে এটি দশটির বেশি, এবং এটি রিপোর্ট করুন।

মনোযোগ! আমাদের ক্ষেত্রে, শর্তটি মিথ্যা হলে, প্রোগ্রামটি বন্ধ হয়ে যায়, কারণ নির্দেশের পরে কোন কমান্ড দেওয়া হয় না।

উপরের কোডে শুধুমাত্র একটি কমান্ড আছে। কিন্তু তাদের মধ্যে আরো অনেক আছে। শুধুমাত্র প্রয়োজন ইন্ডেন্ট করা হয়.

এখন কমান্ডের এই ক্রম বিশ্লেষণ করা যাক।

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

যদি সংখ্যা > 10:

    মুদ্রণ ("প্রথম লাইন")

    মুদ্রণ ("দ্বিতীয় লাইন")

    মুদ্রণ ("তৃতীয় লাইন")

মুদ্রণ ("যে লাইনটি কার্যকর করা হয়, প্রবেশ করা নম্বর নির্বিশেষে")

মুদ্রণ ("শেষ আবেদন")

আপনি যদি 2, 5, 10, 15, 50 মানগুলি প্রবেশ করেন তবে আউটপুটটি কী হবে তা অনুমান করার চেষ্টা করুন।

আপনি দেখতে পাচ্ছেন, ব্যবহারকারীর প্রবেশ করা সংখ্যাটি যদি দশের বেশি হয়, তবে তিনটি লাইন আউটপুট হয় + একটি "প্রতিবার চালান ..." এবং একটি "শেষ" লেখা সহ, এবং যদি দশের কম হয় তবে শুধুমাত্র একটি, সঙ্গে একটি ভিন্ন পাঠ্য। সত্য হলে শুধুমাত্র লাইন 3,4,5 কার্যকর করা হবে। যাইহোক, ব্যবহারকারী যে সংখ্যাটি নির্দিষ্ট করুক না কেন শেষ দুটি লাইন লেখা হবে।

আপনি কনসোলে সরাসরি স্টেটমেন্ট ব্যবহার করলে ফলাফল ভিন্ন হবে। দোভাষী অবিলম্বে মাল্টি-লাইন মোড চালু করে যদি, যাচাইয়ের মানদণ্ড নির্দিষ্ট করার পরে, এন্টার টিপুন।

ধরুন আমরা কমান্ডের নিচের ক্রমটি লিখেছি।

>>>

>>> n = 100

>>> যদি n > 10:

...

এর পরে, আমরা দেখব যে >>> উপবৃত্তাকার দ্বারা প্রতিস্থাপিত হয়েছে। এর মানে হল মাল্টিলাইন ইনপুট মোড সক্রিয় করা হয়েছে। সহজ কথায়, আপনি যদি এন্টার টিপুন, আপনি নির্দেশের দ্বিতীয় পর্যায়ের ইনপুটে স্থানান্তরিত হবেন। 

এবং এই ব্লক থেকে প্রস্থান করার জন্য, আপনাকে ব্লকে আরও একটি নির্মাণ যোগ করতে হবে if.

>>>

>>> n = 100

>>> যদি n > 10:

… মুদ্রণ(«nv 10»)

...

শর্ত সত্য না হলে, প্রোগ্রাম শেষ হয়. এটি একটি সমস্যা, যেহেতু ব্যবহারকারী ব্যর্থতার কারণে বন্ধ হয়ে যাওয়া এই জাতীয় প্রোগ্রাম বুঝতে পারে। অতএব, ব্যবহারকারীর মতামত দেওয়া প্রয়োজন। এই জন্য, একটি লিঙ্ক ব্যবহার করা হয় অন্যথায় যদি.

এক্সপ্রেশন অপারেটর অন্যথায় যদি

এই অপারেটর আপনাকে একটি লিঙ্ক বাস্তবায়নের অনুমতি দেয়: যদি অভিব্যক্তিটি একটি নির্দিষ্ট নিয়মের সাথে মেলে তবে এই ক্রিয়াগুলি সম্পাদন করুন এবং যদি না হয় তবে অন্যদের। অর্থাৎ, এটি আপনাকে প্রোগ্রামের প্রবাহকে দুটি রাস্তায় ভাগ করতে দেয়। সিনট্যাক্স স্বজ্ঞাত:

যদি শর্ত:

    # ব্লক হলে

    বিবৃতি 1

    বিবৃতি 2

    এবং তাই অন

অন্য:

    # অন্য ব্লক

    বিবৃতি 3

    বিবৃতি 4

    এবং তাই:

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

এইভাবে আপনি ত্রুটিগুলি পরিচালনা করতে পারেন। উদাহরণস্বরূপ, ব্যবহারকারীকে একটি ব্যাসার্ধ প্রবেশ করতে হবে। স্পষ্টতই, এটি শুধুমাত্র একটি যোগ চিহ্ন সহ একটি সংখ্যা হতে পারে, বা এটি একটি শূন্য মান। যদি এটি 0-এর কম হয়, তাহলে আপনাকে একটি ইতিবাচক নম্বর লিখতে বলে একটি বার্তা দিতে হবে। 

এখানে কোড যে এই টাস্ক বাস্তবায়ন. কিন্তু এখানে একটা ভুল আছে। কোনটি অনুমান করার চেষ্টা করুন। 

ব্যাসার্ধ = int(ইনপুট("এন্টার ব্যাসার্ধ: "))

যদি ব্যাসার্ধ >= 0:

    মুদ্রণ ("পরিধি = ", 2 * 3.14 * ব্যাসার্ধ)

    মুদ্রণ ("ক্ষেত্রফল = ", 3.14 * ব্যাসার্ধ ** 2)

    অন্য:

        মুদ্রণ ("দয়া করে একটি ইতিবাচক সংখ্যা লিখুন")

ইন্ডেন্টেশন অমিল ত্রুটি৷ যদি এবং অন্যথায় তাদের ছাড়া বা তাদের একই সংখ্যার সাথে অবস্থিত হতে হবে (তারা নেস্টেড কিনা তার উপর নির্ভর করে)।

চলুন আরেকটি ব্যবহারের ক্ষেত্রে দেওয়া যাক (যেখানে অপারেটর সারিবদ্ধকরণের সাথে সবকিছু সঠিক হবে) - একটি অ্যাপ্লিকেশন উপাদান যা একটি পাসওয়ার্ড পরীক্ষা করে।

পাসওয়ার্ড = ইনপুট ("পাসওয়ার্ড লিখুন:")

যদি পাসওয়ার্ড == «sshh»:

    মুদ্রণ ("স্বাগত")

অন্য:

    মুদ্রণ ("অ্যাক্সেস অস্বীকৃত")

পাসওয়ার্ডটি sshh হলে এই নির্দেশটি ব্যক্তিকে আরও এড়িয়ে যায়। অক্ষর এবং সংখ্যার অন্য কোন সংমিশ্রণ হলে, এটি "অ্যাক্সেস অস্বীকার" বার্তাটি প্রদর্শন করে।

বিবৃতি-অভিব্যক্তি if-elif-else

শুধুমাত্র বেশ কয়েকটি শর্ত সত্য না হলে, ব্লকে থাকা বিবৃতিটি কার্যকর করা হয়। আর. এই অভিব্যক্তি এই মত কাজ করে.

যদি শর্ত_1:

    # ব্লক হলে

    বিবৃতি

    বিবৃতি

    আরো বিবৃতি

elif শর্ত_2:

    # প্রথম এলিফ ব্লক

    বিবৃতি

    বিবৃতি

    আরো বিবৃতি

elif শর্ত_3:

    # দ্বিতীয় এলিফ ব্লক

    বিবৃতি

    বিবৃতি

    আরো বিবৃতি

...

আর

    বিবৃতি

    বিবৃতি

    আরো বিবৃতি

আপনি যেকোন সংখ্যক অতিরিক্ত শর্ত উল্লেখ করতে পারেন.

নেস্টেড স্টেটমেন্ট

একাধিক শর্ত বাস্তবায়নের আরেকটি উপায় হল if ব্লকে অতিরিক্ত শর্ত চেক সন্নিবেশ করা।

অপারেটর if অন্য শর্ত ব্লকের ভিতরে

gre_score = int(ইনপুট("আপনার বর্তমান ক্রেডিট সীমা লিখুন"))

per_grad = int(ইনপুট("আপনার ক্রেডিট রেটিং লিখুন:"))

যদি প্রতি_গ্রাড > 70:

    ব্লক হলে # বাইরের

        gre_score > 150 হলে:

            # অভ্যন্তরীণ যদি ব্লক

    মুদ্রণ ("অভিনন্দন, আপনি একটি ঋণ পেয়েছেন")

অন্য:

    মুদ্রণ ("দুঃখিত, আপনি ঋণের জন্য যোগ্য নন")

এই প্রোগ্রাম একটি ক্রেডিট রেটিং চেক সঞ্চালিত না. যদি এটি 70 এর কম হয়, প্রোগ্রামটি রিপোর্ট করে যে ব্যবহারকারী ক্রেডিট পাওয়ার যোগ্য নয়। যদি এটি বেশি হয়, বর্তমান ক্রেডিট সীমা 150-এর বেশি কিনা তা দেখার জন্য একটি দ্বিতীয় চেক করা হয়। যদি হ্যাঁ, তাহলে একটি বার্তা প্রদর্শিত হয় যে ঋণটি ইস্যু করা হয়েছে।

যদি উভয় মানই মিথ্যা হয়, তাহলে একটি বার্তা প্রদর্শিত হয় যে ব্যবহারকারীর ঋণ পাওয়ার সম্ভাবনা নেই। 

এখন আসুন সেই প্রোগ্রামটি একটু পুনরায় কাজ করা যাক।

gre_score = int(ইনপুট("বর্তমান সীমা লিখুন: "))

per_grad = int(ইনপুট("ক্রেডিট স্কোর লিখুন:"))

যদি প্রতি_গ্রাড > 70:

    gre_score > 150 হলে:

        মুদ্রণ ("অভিনন্দন, আপনি একটি ঋণ পেয়েছেন")

    অন্য:

        মুদ্রণ ("আপনার ক্রেডিট সীমা কম")

অন্য:

    মুদ্রণ ("দুঃখিত, আপনি ক্রেডিট পাওয়ার যোগ্য নন")

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

একটি শর্তের ভিতরে if-else বিবৃতি আর

আসুন অন্য একটি প্রোগ্রাম তৈরি করি যা পরীক্ষার স্কোরের উপর ভিত্তি করে একজন শিক্ষার্থীর গ্রেড নির্ধারণ করে।

স্কোর = int(ইনপুট("আপনার স্কোর লিখুন:"))

স্কোর >= ৯০ হলে:

    প্রিন্ট ("দারুণ! আপনার গ্রেড A")

অন্য:

    স্কোর >= ৯০ হলে:

প্রিন্ট ("দারুণ! আপনার গ্রেড B")

    অন্য:

স্কোর >= ৯০ হলে:

    মুদ্রণ ("ভাল! আপনার গ্রেড সি")

অন্য:

    স্কোর >= ৯০ হলে:

মুদ্রণ ("আপনার গ্রেডটি ডি। এটি উপাদানটির পুনরাবৃত্তি করা মূল্যবান।")

    অন্য:

প্রিন্ট ("আপনি পরীক্ষায় ফেল করেছেন")

স্কোর 90 এর চেয়ে বেশি বা সমান কিনা তা দেখার জন্য অ্যাপ্লিকেশনটি প্রথমে পরীক্ষা করে। যদি হ্যাঁ, তাহলে এটি একটি A গ্রেড প্রদান করে। যদি এই শর্তটি মিথ্যা হয়, তাহলে পরবর্তী পরীক্ষা করা হয়। আমরা প্রথম নজরে অ্যালগরিদম প্রায় একই দেখতে. তাই ভিতরে চেক করার পরিবর্তে আর একটি সংমিশ্রণ ব্যবহার করা ভাল if-elif-else.

তাই অপারেটর if একটি অত্যন্ত গুরুত্বপূর্ণ ফাংশন সঞ্চালন করে - এটি নিশ্চিত করে যে কোডের নির্দিষ্ট অংশগুলি শুধুমাত্র যদি এটির প্রয়োজন হয় তবেই কার্যকর করা হয়। এটি ছাড়া প্রোগ্রামিং কল্পনা করা অসম্ভব, কারণ এমনকি সহজ অ্যালগরিদমগুলির জন্যও কাঁটাচামচের প্রয়োজন হয় "যদি আপনি বাম দিকে যান তবে আপনি এটি খুঁজে পাবেন, এবং যদি আপনি ডানদিকে যান তবে আপনাকে এটি এবং এটি করতে হবে।"

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