ওয়ার্ডি

ওয়ার্ডি

সহজ

নির্দেশনা

সহজ গাণিতিক শব্দ-সমস্যা পার্স ও মূল্যায়ন করে উত্তরটি একটি ইন্টিজার হিসেবে রিটার্ন করুন।

ইটারেশন ০: সংখ্যা

কোনো অপারেশন নেই এমন সমস্যা কেবল প্রদত্ত সংখ্যাটিতেই মূল্যায়িত হয়।

What is 5?

এর মান হয় ৫।

ইটারেশন ১: যোগ

দুটি সংখ্যা একসাথে যোগ করুন।

What is 5 plus 13?

এর মান হয় ১৮।

বড় সংখ্যা ও ঋণাত্মক সংখ্যাও সামলাতে হবে।

ইটারেশন ২: বিয়োগ, গুণ ও ভাগ

এখন বাকি তিনটি অপারেশনও সম্পন্ন করুন।

What is 7 minus 5?

২

What is 6 multiplied by 4?

২৪

What is 25 divided by 5?

৫

ইটারেশন ৩: একাধিক অপারেশন

ধারাবাহিকভাবে একগুচ্ছ অপারেশন সামলান।

যেহেতু এগুলো মৌখিক শব্দ-সমস্যা, তাই এক্সপ্রেশনটি বাঁ থেকে ডানে মূল্যায়ন করুন, গণিতের প্রচলিত ক্রমটি উপেক্ষা করে।

What is 5 plus 13 plus 6?

২৪

What is 3 plus 2 multiplied by 3?

১৫ (অর্থাৎ ৯ নয়)

ইটারেশন ৪: এরর

পার্সারকে অবশ্যই প্রত্যাখ্যান করতে হবে:

  • অসমর্থিত অপারেশন ("What is 52 cubed?")
  • গণিত-বহির্ভূত প্রশ্ন ("Who is the President of the United States")
  • অবৈধ সিনট্যাক্সযুক্ত শব্দ-সমস্যা ("What is 1 plus plus 2?")

এক্সসেপশন বার্তা

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

এই অনুশীলনীতে নির্দিষ্টভাবে প্রয়োজন, আপনি raise স্টেটমেন্ট ব্যবহার করে ValueError "থ্রো" করবেন, যদি answer()-এ পাস করা প্রশ্নটি ভুল গঠনের/অবৈধ হয়, অথবা এতে কোনো অজানা অপারেশন থাকে। টেস্টগুলো তখনই পাস করবে, যদি আপনি exception-টি raise করেন এবং তার সাথে একটি বার্তাও যোগ করেন। লক্ষ্য করুন: প্রতিটি পরিস্থিতিতে প্রয়োজনীয় বার্তা আলাদা, যদিও একই এরর টাইপ রেইজ করা হচ্ছে। টেস্টগুলো ভালোভাবে খেয়াল করুন।

বার্তাসহ একটি ValueError রেইজ করতে, বার্তাটি exception টাইপে একটি আর্গুমেন্ট হিসেবে লিখুন:

# if the question contains an unknown operation.
raise ValueError("unknown operation")

# if the question is malformed or invalid.
raise ValueError("syntax error")

কোনো নির্দিষ্ট কোড ব্লকের ভেতরে রেইজ হওয়া একটি এরর হ্যান্ডল করতে try-except ব্যবহার করা যায়। try-except ব্লকগুলো সম্ভাব্য এরর সৃষ্টি করতে পারে এমন কোড "র্যাপ" করে, এবং সব এক্সসেপশনকে একটি এরর, একাধিক এরর, বা সমস্যা সামলানোর অন্য কোডে ম্যাপ করে:

while len(equation) > 1:
        try:
           # The questionable/error-prone code goes here,in an indented block
           # It can contain statements, loops, if-else blocks, or other executable code.
           x_value, operation, y_value, *rest = equation
           ...
           ...

        except:
            # Code for what to do when an error gets thrown in the code above.
            # This could be one error, or more complicated logging, error checking and messaging.
            raise ValueError("syntax error")
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

ওয়ার্ডি শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।