শৃঙ্খলিত তুলনা সরল করুন


254

আমার একটি পূর্ণসংখ্যা মান রয়েছে xএবং আমার এটি মান startএবং endমানগুলির মধ্যে আছে কিনা তা পরীক্ষা করা দরকার , তাই আমি নীচের বিবৃতিগুলি লিখি:

if x >= start and x <= end:
    # do stuff

এই বিবৃতিটি নিম্নরেখাঙ্কিত হয় এবং সরঞ্জামদ্বারটি আমাকে বলে যে আমার অবশ্যই আবশ্যক

শৃঙ্খলিত তুলনা সহজ করুন

আমি যতদূর বলতে পারি যে তুলনাটি তারা আসার মতোই সাধারণ। আমি এখানে কি মিস করেছি?


1
আপনি যদি টুলটিপ থেকে কোনও পরামর্শ পান তবে আপনি অঞ্চলটি মাউসওভার করতে পারেন এবং এটি আপনাকে একটি সামান্য হালকা বাল্ব দেয়। আপনি এটিতে ক্লিক করতে পারেন এবং এটি প্রস্তাবিত পরিবর্তনটি স্বয়ংক্রিয়ভাবে inোকাতে পারেন। সুতরাং আপনি দেখতে পাচ্ছেন যে আপনার কী করা উচিত বলে মনে হয় (এবং আপনি যদি এটি পছন্দ না করেন তবে আপনি পূর্বাবস্থা করতে পারেন)।
এডওয়ার্ড নেড হার্ভে

উত্তর:


431

পাইথনে আপনি তুলনামূলক ক্রিয়াকলাপগুলিকে "চেইন" করতে পারেন যার অর্থ কেবল তারা "এবং" একসাথে হয় are আপনার ক্ষেত্রে এটি এমন হবে:

if start <= x <= end:

তথ্যসূত্র: https://docs.python.org/3/references/expressions.html#comparisons


2
ধন্যবাদ, আমি জানি না আপনি পাইথনে এটি করতে পারেন could সত্যিই এই এক আমার মাথা আঁচড়ান।
ব্রায়ান ম্যাককুলাঘ

18
মানুষ এইভাবে জিনিস হওয়া উচিত। তবে অন্যান্য ভাষাগুলি থেকে এসে আপনি নিজের আদর্শগুলি ভুলে যান এবং এমনটি ভাবেন না যে জিনিসগুলি তাদের মতো হওয়া উচিত। তবে এ কারণেই
পাইথনটি

আপনি কি এমন কোনও "অফিসিয়াল" উত্স জানেন যা অন্যরকম শৃঙ্খলিত শৈলীর প্রস্তাব দেয়? পাইথন কোনটি "আইডোমেটিক"?
রায়

আমি জানি, মাঝে মাঝে আশা করি পাইথন আরও বেশি রক্ষণশীলতা ছুঁড়ে দেয়। x == y == z একটি ভ্যালুআরারের সাথে ব্যর্থ হয় যখন x, y, z পান্ডাস সিরিজ হয়
বলপয়েন্টবেন

@ বালপয়েন্টপেন: পান্ডাসে আপনি যেভাবে আশা করতে পারেন তা প্রচুর পরিমাণে কাজ করে না, এমনকি হয় না x == y and y == z
জন জুইনক

12

এটি আবার লিখিত হতে পারে:

start <= x <= end:

বা:

r = range(start, end + 1) # (!) if integers
if x in r:
    ....

5
পরিসীমাটি একটি দুর্বল পছন্দ কারণ বড় শুরু এবং শেষের জন্য আপনি একটি অপ্রয়োজনীয় তালিকা তৈরি করছেন।
বুরহান খালিদ

1
@ বুরহান খালিদ সত্যই, তবে আমার ধারণা এটি ওপি-র জন্য উল্লেখযোগ্য।
মারউন

7
পাইথন 3-তে, পরিসীমা হ্যান্ডলগুলি দুর্দান্তভাবে " ধারণ করে " তাই কোনও তালিকা তৈরি করা হয় না।
জোশনাহুম

2
অ্যারথন ৩ থেকে মারাউনমারাউন, রেঞ্জ ফাংশনটি পূর্বের এক্সরঞ্জের মতো আচরণ করে, এটিও উল্লেখ করার মতো
dvdvck

5
ব্যবহার সম্পর্কিত তথ্যের জন্য if x in range(...)দেখুন " পাইথন 3 এ" 100000000000000000 পরিসীমা কেন (100000000000000001) "এত দ্রুত? "।
কেভিন জে চেজ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.