পাইথনের অ্যাভাল সম্পর্কে আপনার যা জানা দরকার



এই নিবন্ধটি আপনাকে পাইথনের ইভালের একটি বিশদ এবং বিস্তৃত জ্ঞান সরবরাহ করবে, উদাহরণস্বরূপ এটির অসুবিধা এবং ব্যবহার।

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

পাইথন এভাল কি?

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





আপনি যখন eval ফাংশনটি ব্যবহার করেন, আপনি মূলত দোভাষীকে চালনার জন্য অনুরোধ করছেন যা এভাল ফাংশনটির বন্ধনীতে আবদ্ধ থাকে।

জাভা মান দ্বারা পাস

পাইথনলোগো - পাইথনে ইভালপাইথনে ইওল ফাংশনটি ব্যবহারের বাক্য গঠনটি হ'ল:



eval (অভিব্যক্তি, গ্লোবাল = কিছুই নয়, স্থানীয় = কিছুই নেই)

উপরের সিনট্যাক্সে,

  1. প্রকাশ: এটি স্ট্রিং বা কোডের টুকরো যা পাইথন প্রোগ্রামে নিজেই পাইথন এক্সপ্রেশন হিসাবে বিশ্লেষণ এবং মূল্যায়ন করা হয়।



  2. গ্লোবাল: এটি অভিধান যা উপরে বর্ণিত অভিব্যক্তিটি কার্যকর করতে সমস্ত বৈশ্বিক পদ্ধতিগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়। এটি একটি alচ্ছিক সত্তা এবং এর ব্যবহারগুলি আপনার প্রয়োজনের উপর নির্ভর করে।

  3. স্থানীয়: গ্লোবালের অনুরূপ, এটি অন্য একটি অভিধান যা উপলভ্য স্থানীয় পদ্ধতিগুলির পাশাপাশি ভেরিয়েবলগুলি নির্দিষ্ট করতে ব্যবহৃত হয়।

এই ফাংশনটির ব্যবহার আরও ভালভাবে বুঝতে, নীচের উদাহরণটি একবার দেখুন।

গণিত আমদানি থেকে * ডিএফ সিক্রেট_ফাংশন (): রিটার্ন 'সিক্রেট কীটি 1234' ডিফ ফাংশনক্রিয়াটর (): # এক্সপ্রেশন মূল্যায়িত করতে হবে এক্সপ্রেস = কাঁচা_পিন্ড ('ফাংশনটি প্রবেশ করান (এক্স এর শর্তে:')) # এক্সপ্রেশনে x পরিবর্তনশীল ব্যবহৃত int (কাঁচা_পিন্ড ('x এর মান লিখুন:')) # মূল্যায়ন এক্সপ্রেশন y = eval (expr) # মুদ্রণ মূল্যায়ন ফলাফল ফলাফল মুদ্রণ ('y = {}'। ফর্ম্যাট (y)) যদি __name__ == '__main__': ফাংশন_স্রষ্টা ()

উপরের উদাহরণে, ফাংশন_ক্রিটর একটি ফাংশন যা প্রোগ্রামটি সম্পাদন করার সময় ব্যবহারকারীর দ্বারা তৈরি গাণিতিক অভিব্যক্তিগুলির মূল্যায়ন করবে।

আউটপুট:

ফাংশনটি প্রবেশ করুন (x এর শর্তে): x * (x + 1) * (x + 2)

X: 3 এর মান লিখুন

y = 60

বিশ্লেষণ

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

  1. উপরের ফাংশনটি x এর ইনপুট হিসাবে এক্সপ্রেশনটিতে কোনও পরিবর্তনশীল গ্রহণ করবে।

  2. একবার মৃত্যুদন্ড কার্যকর করা হলে, ব্যবহারকারীকে এক্স এর জন্য একটি মান ইনপুট করতে অনুরোধ জানানো হবে, তারপরেই প্রোগ্রামটি তৈরির ফলাফল তৈরি হবে।

  3. পরিশেষে, পাইথন প্রোগ্রামটি পার্স করে ইভাল ফাংশনটি কার্যকর করবেexprযুক্তি হিসাবে

ইভালের কমতি

পাইথনের অন্যান্য অন্তর্নির্মিত ফাংশনগুলির মতোই, ইওলও কয়েকটি ঘাটতি নিয়ে আসে যা যদি অ্যাকাউন্ট না করা হয় তবে সমস্যা তৈরি করতে পারে।

আপনি যদি উপরের উদাহরণটির দিকে লক্ষ্য করেন তবে ফাংশনটির অন্যতম প্রধান দুর্বলতা, ফাংশন_ক্রিটর হ'ল এটি প্রোগ্রামের মধ্যে যে কোনও লুকানো মানকে প্রকাশ করতে পারে এবং একটি ক্ষতিকারক ক্রিয়াকলাপটিকে ডায়াল্টিকরূপে ডেকে আনলে এটি তার প্রথম বন্ধনের মধ্যে থাকা যা কিছু কার্যকর করে দেয়।

এটি আরও বুঝতে, নীচের উদাহরণটি একবার দেখুন।

ব্যবহারকারীর কাছ থেকে ইনপুট

ফাংশনটি প্রবেশ করুন (এক্স এর শর্তে): সিক্রেট_ফাংশন ()

X এর মান লিখুন: 0

আউটপুট:

y = গোপন কী 1234

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

এই সমস্ত ত্রুটিগুলির সমাধান ইওল ফাংশনের ক্ষমতা সীমাবদ্ধ করার মধ্যে lies

পাইথনে ইভাল নিরাপদ করা

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

এই ধারণাটি আরও বুঝতে, নীচের উদাহরণটি দেখুন।

গণিত আমদানি থেকে * ডিএফ সিক্রেট_ফাংশন (): রিটার্ন 'সিক্রেট কীটি 1234' ডিফ ফাংশনক্রিয়াটর (): # এক্সপ্রেশন মূল্যায়িত করতে হবে এক্সপ্রেস = কাঁচা_পিন্ড ('ফাংশনটি প্রবেশ করান (এক্স এর শর্তে:')) # এক্সপ্রেশনে x পরিবর্তনশীল ব্যবহৃত int (কাঁচা_পিন্ড ('x এর মান লিখুন:')) # নিরাপদ অভিধানে ভেরিয়েবল এক্স পাস করা হচ্ছে সেফ_ডিক্ট ['x'] = x # মূল্যায়ন এক্সপ্রেশন y = eval (এক্সপ্রেস, {'__ বিল্টিন __': কিছুই নেই safe, নিরাপদ_ডিক্ট) # মুদ্রণ মূল্যায়িত ফলাফল মুদ্রণ ('y = {}'। বিন্যাস (y)) যদি __name__ == '__main__': # নিরাপদ পদ্ধতির তালিকা Safe_list = ['acos', 'asin', 'atan', 'atan2', 'সিল ',' কোস ',' কোশ ',' ডিগ্রি ',' ই ',' এক্সপ্রেস ',' ফ্যাবস ',' ফ্লোর ',' ফমড ',' ফ্রি এক্সপ ',' হাইপোট ',' এলডিপ্লেক্স ',' লগ ', 'লগ 10', 'মোডেফ', 'পাই', 'পাও', 'রেডিয়ানস', 'পাপ', 'সিংহ', 'স্ক্রিট', 'তান', 'তান'] # নিরাপদ পদ্ধতির একটি অভিধান তৈরি করছে নিরাপদ_ডিক্ট = ডিক ([(কে, স্থানীয় ()। (কে, কিছুই নয়)) নিরাপদ তালিকাতে কে-এর জন্য পাবেন)) ফাংশন_ক্রিয়েটর ()

ব্যবহারকারীর কাছ থেকে ইনপুট

ফাংশনটি প্রবেশ করুন (এক্স এর শর্তে): সিক্রেট_ফানশন ()

X এর মান লিখুন: 0

আউটপুট:

NameError: নাম 'সিক্রেট_ফাংশন' সংজ্ঞায়িত করা হয়নি

যেমন আপনি খালি অ্যাক্সেসকে সীমাবদ্ধ করে দেখতে পারেন যে কোনও ভুল আউটপুট যা ক্ষতিকারক হিসাবে প্রমাণিত হতে পারে তা প্রত্যাখ্যান করা হয়েছে।

ইভাল এর ব্যবহার

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

  1. যদি আপনি চান যে প্রোগ্রামটির আউটপুট পরিবর্তন করতে ব্যবহারকারী তাদের নিজস্ব স্ক্রিপ্টলেট প্রবেশ করান, তবে ইভাল ফাংশনটি ব্যবহার করা সহায়ক হিসাবে প্রমাণিত হবে।

  2. গাণিতিক প্রশ্নগুলির সমাধান করতে এক্সপ্রেশন লিখতে গিয়ে আপনি ইওল ব্যবহার করতে পারেন কারণ একটি এক্সপ্রেশন পার্সার লেখার চেয়ে এটি অনেক সহজ।

এখন আপনি alশাল সম্পর্কে সমস্ত কিছু জানেন, আমরা আশা করি আপনি নিজের সুবিধাগুলির পাশাপাশি ত্রুটিগুলিও মাথায় রেখে প্রতিদিনের প্রোগ্রামিংয়ে এটি ব্যবহার করবেন।

এটির সাথে আমরা পাইথন নিবন্ধে এই ইভালের সমাপ্তি পেলাম। পাইথনের বিভিন্ন অ্যাপ্লিকেশন সহ গভীরতর জ্ঞান অর্জন করতে, আপনি এটি করতে পারেন 24/7 সমর্থন এবং আজীবন অ্যাক্সেস সহ লাইভ অনলাইন প্রশিক্ষণের জন্য।

ইনফর্মটিকাতে সক্রিয় এবং প্যাসিভ রূপান্তরকরণ

আমাদের জন্য একটি প্রশ্ন আছে? 'পাইথন এভাল' এর মন্তব্য বিভাগে তাদের উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।