একটি অভিধান স্বয়ংক্রিয়ভাবে বুলিয়ানে কাস্ট করা যেতে পারে যা Falseখালি অভিধানের Trueজন্য এবং খালি শূন্য অভিধানের জন্য মূল্যায়ন করে ।
if myDictionary: non_empty_clause()
else: empty_clause()
যদি এটি খুব অহংকারী বলে মনে হয় তবে আপনি len(myDictionary)শূন্যের জন্য, বা set(myDictionary.keys())খালি সেটটির জন্যও পরীক্ষা করতে পারেন , বা কেবল সমতার জন্য পরীক্ষা করতে পারেন{} ।
আইএমপিটি ফাংশনটি কেবল অপ্রয়োজনীয়ই নয় তবে আপনার প্রয়োগেও একাধিক সমস্যা রয়েছে যা আমি প্রাইম-ফেসিকে সনাক্ত করতে পারি।
return Falseবিবৃতি খুব গভীরে এক স্তর ইন্ডেন্টযুক্ত করা হয়। এটি লুপের বাইরে এবং forবিবৃতি হিসাবে একই স্তরের হওয়া উচিত । ফলস্বরূপ, আপনার কোডটি যদি একটি কী উপস্থিত থাকে তবে নির্বিচারে নির্বাচিত কীটি কেবলমাত্র একটিতে প্রক্রিয়া করবে। যদি কোনও কী উপস্থিত না থাকে তবে ফাংশনটি ফিরে আসবেNone , যা বুলিয়ান ফ্যালাসে ফেলে দেওয়া হবে। সেকি! সমস্ত খালি অভিধানগুলিকে ভুয়া-নেগেটিভ হিসাবে শ্রেণীবদ্ধ করা হবে।
- যদি অভিধানটি খালি না থাকে, তবে কোডটি কেবল একটি কী প্রসেস করবে এবং এর মান castালিকে বুলেয়ানে ফিরিয়ে দেবে। আপনি ধরেও নিতে পারবেন না যে প্রত্যেকবার আপনি যখন কল করবেন তখন একই কীটি মূল্যায়ন করা হবে। সুতরাং মিথ্যা ইতিবাচক হবে।
- আমাদের বলুন আপনি
return Falseবিবৃতিটির ইনডেন্টেশনটি সংশোধন করে এটিকে forলুপের বাইরে নিয়ে আসুন । তারপরে আপনি যা পাবেন তা হ'ল সমস্ত কীগুলির বুলিয়ান OR বা অভিধানটি Falseখালি। তবুও আপনার কাছে মিথ্যা ইতিবাচক এবং মিথ্যা নেতিবাচক বিষয় থাকবে। একটি প্রমাণের জন্য নিম্নলিখিত অভিধানের বিরুদ্ধে সংশোধন এবং পরীক্ষা করুন।
myDictionary={0:'zero', '':'Empty string', None:'None value', False:'Boolean False value', ():'Empty tuple'}
self.usersঅদম্য কিনা তা পরীক্ষা করার জন্য, কেবলমাত্র করুনif self.users।