কীভাবে "এবং" এবং "বা" নন-বুলিয়ান মানগুলির সাথে কাজ করে?


101

আমি অজগরটি শেখার চেষ্টা করছি এবং এমন কিছু কোড পেয়েছি যা সুন্দর এবং সংক্ষিপ্ত তবে পুরোপুরি অর্থপূর্ণ নয়

প্রসঙ্গটি ছিল:

def fn(*args):
    return len(args) and max(args)-min(args)

আমি এটি যা করছি তা পেয়েছি তবে পাইথন কেন এটি করে - অর্থাত সত্য / মিথ্যা বদলে মানটি ফেরত দেয়?

10 and 7-2

৫. প্রত্যাবর্তন করে in একইভাবে, এবং এর পরিবর্তনের ফলে কার্যকারিতা পরিবর্তিত হবে। তাই

10 or 7 - 2

10 ফিরে আসবে।

এই বৈধ / নির্ভরযোগ্য শৈলী, বা এটির উপর কোন গ্যাচচাস আছে?


4
and(পাশাপাশি পাশাপাশি or) বুলিয়ান মানগুলির সাথে কাজ করার বা সীমাবদ্ধ নয়।
CS95

4
আইএমএনএসএইচও: এটি লেখার কিছুটা বিভ্রান্তিমূলক উপায়; আমি অফহ্যান্ডকে বলতে পারি না যদি এটি বুলিয়ান (সেখানে আলাদা আলাদা নূন্যতম এবং সর্বোচ্চ) বা একটি সংখ্যা (কমপক্ষে এবং সর্বাধিকের পার্থক্য কী) ফেরত আসে supposed যদি পরবর্তীটি হয়, তবে এটির একটি সংখ্যা হিসাবে শূন্য-দৈর্ঘ্যের তালিকার যে পার্থক্যটি দেওয়া কোনও ধারণা রাখে তাও প্রশ্ন রয়েছে। (পরিবর্তে Noneবা একটি ব্যতিক্রম)
ilkkachu

7
এটি কাজ করে, যেমন অন্য লোকেরা ব্যাখ্যা করেছে, তবে একটি সম্ভাব্য সমস্যা হ'ল এটি যদি ফিরে আসে তবে 0আপনি argsখালি ছিল কি না বা খালি ছিল তবে তা বলতে পারবেন না তবে সমস্ত উপাদান সমান ছিল।
বিশেষত চুন

@ ইশালাইন লাইম: হুবহু আমি আমার উত্তরে তা উল্লেখ করেছি ।
এরিক ডুমিনিল

উত্তর:


139

টিএল; ডিআর

আমরা দুটি লজিকাল অপারেটর andএবং এর দুটি আচরণের সংক্ষিপ্তসার দিয়ে শুরু করি or। এই প্রতিমাগুলি নীচে আমাদের আলোচনার ভিত্তি তৈরি করবে।

and

যদি কোনও থাকে তবে প্রথম মিথ্যা মানটি ফিরিয়ে দিন, অন্যথায় প্রকাশের শেষ মানটি ফিরিয়ে দিন।

or

যদি থাকে তবে প্রথম সত্যবাদী মানটি ফিরিয়ে দিন, অন্যথায় প্রকাশের শেষ মানটি ফিরিয়ে দিন।

আচরণগুলি ডক্সগুলিতেও সংক্ষিপ্তসারিত হয় , বিশেষত এই টেবিলটিতে:

এখানে চিত্র বর্ণনা লিখুন

অপারেটর নির্বিশেষে কোনও বুলিয়ান মান ফেরত পাওয়া একমাত্র notঅপারেটর।


"সত্যতা", এবং "সত্যবাদী" মূল্যায়ন

বিবৃতি

len(args) and max(args) - min(args)

একটি হল খুব pythonic সংক্ষিপ্ত (এবং তর্কসাপেক্ষে কম পাঠযোগ্য) বলছে "যদি প্রণালী argsখালি না থাকে, ফলে আসতে max(args) - min(args)", অন্যথায় আসতে 0। সাধারণভাবে এটি কোনও if-elseঅভিব্যক্তির আরও সংক্ষিপ্ত প্রতিনিধিত্ব । উদাহরণ স্বরূপ,

exp1 and exp2

(প্রায়) অনুবাদ করা উচিত:

r1 = exp1
if r1:
    r1 = exp2

বা, সমতুল্য,

r1 = exp2 if exp1 else exp1

একইভাবে,

exp1 or exp2

(প্রায়) অনুবাদ করা উচিত:

r1 = exp1
if not r1:
    r1 = exp2

বা, সমতুল্য,

r1 = exp1 if exp1 else exp2

যেখানে exp1এবং exp2নির্বিচারে পাইথন অবজেক্টস বা এক্সপ্রেশন যা কিছু বস্তু ফেরত দেয়। এখানে লজিকাল andএবং orঅপারেটরগুলির ব্যবহারগুলি বোঝার মূল চাবিকাঠিটি বোঝা যায় যে সেগুলি বুলিয়ান মানগুলি চালানো বা ফিরিয়ে দেওয়ার মধ্যে সীমাবদ্ধ নয়। সত্যতা মান সহ যে কোনও বস্তুর এখানে পরীক্ষা করা যেতে পারে। এর মধ্যে রয়েছে int, str, list, dict, tuple, set, NoneType, এবং ব্যবহারকারী সংজ্ঞায়িত বস্তু। সংক্ষিপ্ত সার্কিট বিধিগুলি এখনও প্রযোজ্য।

তবে সত্যতা কী?
এটি শর্তযুক্ত অভিব্যক্তিগুলিতে ব্যবহৃত হলে কীভাবে বস্তুর মূল্যায়ন করা হয় তা বোঝায়। @ পেট্রিক হাহ এই পোস্টে সত্যতার সুন্দরভাবে সংক্ষিপ্তসার জানিয়েছে ।

নিম্নলিখিতগুলি বাদ দিয়ে সমস্ত মানকে "সত্যবাদী" হিসাবে বিবেচনা করা হয়, যা "মিথ্যা"

  • None
  • False
  • 0
  • 0.0
  • 0j
  • Decimal(0)
  • Fraction(0, 1)
  • [] - খালি list
  • {} - খালি dict
  • () - খালি tuple
  • '' - খালি str
  • b'' - খালি bytes
  • set() - খালি set
  • একটি খালি range, মতrange(0)
  • যার জন্য বস্তু
    • obj.__bool__() প্রত্যাবর্তন False
    • obj.__len__() প্রত্যাবর্তন 0

একটি "সত্যবাদী" মান ifবা while বিবৃতি দ্বারা সম্পাদিত চেকটি পূরণ করবে । আমরা boolমানগুলি Trueএবং থেকে পৃথক করতে "সত্যবাদী" এবং "মিথ্যা" ব্যবহার করি False


কিভাবে andকাজ করে

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

সংজ্ঞা সহ একটি ফাংশন দেওয়া

def foo(*args):
    ...

শূন্য বা আরও বেশি যুক্তির তালিকার নূন্যতম এবং সর্বাধিক মানের মধ্যে পার্থক্যটি কীভাবে ফিরিয়ে দেব?

সর্বনিম্ন এবং সর্বাধিক সন্ধান করা সহজ (ইনবিল্ট ফাংশনগুলি ব্যবহার করুন!)। এখানে কেবলমাত্র ছিনতাই কর্নার কেসটি যথাযথভাবে পরিচালনা করছে যেখানে আর্গুমেন্ট তালিকা খালি থাকতে পারে (উদাহরণস্বরূপ, কল করা foo())। andঅপারেটরকে ধন্যবাদ আমরা একক লাইনে উভয়ই করতে পারি :

def foo(*args):
     return len(args) and max(args) - min(args)
foo(1, 2, 3, 4, 5)
# 4

foo()
# 0

যেহেতু andব্যবহৃত হয়, দ্বিতীয় প্রকাশটিও যদি প্রথম হয় তবে তা মূল্যায়ন করতে হবে True। মনে রাখবেন, যদি প্রথম অভিব্যক্তিটি সত্যবাদী বলে মূল্যায়ন করা হয় তবে প্রত্যাবর্তনের মানটি সর্বদা দ্বিতীয় প্রকাশের ফলাফল । যদি প্রথম অভিব্যক্তিটি ফালসি হিসাবে মূল্যায়ন করা হয়, তবে প্রত্যাবর্তিত ফলাফলটি প্রথম প্রকাশের ফলাফল।

উপরের ফাংশনে, যদি fooএক বা একাধিক যুক্তি প্রাপ্ত হয় তবে (ধনাত্মক সংখ্যা) এর len(args)চেয়ে বড় হয় 0, সুতরাং প্রাপ্ত ফলাফলটি হয় max(args) - min(args)। OTOH, যদি কোন যুক্তি গৃহীত হয়, len(args)হয় 0যা Falsy, এবং 0ফিরিয়ে দেওয়া হয়।

মনে রাখবেন যে এই ফাংশনটি লেখার একটি বিকল্প উপায় হ'ল:

def foo(*args):
    if not len(args):
        return 0
    
    return max(args) - min(args)

বা আরও সংক্ষিপ্তভাবে,

def foo(*args):
    return 0 if not args else max(args) - min(args)

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


কিভাবে orকাজ করে

আমি orএকইরকম ফ্যাশনে কাজটি একটি স্বীকৃত উদাহরণ সহ ব্যাখ্যা করি ।

সংজ্ঞা সহ একটি ফাংশন দেওয়া

def foo(*args):
    ...

আপনি কীভাবে fooসমস্ত নম্বর ফেরত দিতে সম্পূর্ণ করবেন 9000?

আমরা orএখানে কোণার কেস পরিচালনা করতে ব্যবহার করি । আমরা fooহিসাবে সংজ্ঞায়িত :

def foo(*args):
     return [x for x in args if x > 9000] or 'No number over 9000!'

foo(9004, 1, 2, 500)
# [9004]

foo(1, 2, 3, 4)
# 'No number over 9000!'

fooসমস্ত সংখ্যা ধরে রাখার জন্য তালিকায় একটি পরিস্রাবণ সম্পাদন করে 9000। যদি এই জাতীয় কোনও সংখ্যা উপস্থিত থাকে তবে তালিকা বোঝার ফলাফলটি একটি খালি নয় এমন তালিকা যা সত্যবাদী, তাই এটি ফিরে আসে (এখানে ক্রিয়াকলাপে সংক্ষিপ্ত সার্কিট)। যদি এরকম কোনও নম্বর না থাকে, তবে তালিকার []কমের ফলাফলটি মিথ্যা। সুতরাং দ্বিতীয় প্রকাশটি এখন মূল্যায়ন করা হয় (একটি খালি নয়) স্ট্রিং এবং ফিরে আসে।

শর্তসাপেক্ষ ব্যবহার করে, আমরা এই ফাংশনটি আবার লিখতে পারি,

def foo(*args):
    r = [x for x in args if x > 9000]
    if not r:
        return 'No number over 9000!' 
    
    return r

আগের মতো, ত্রুটি পরিচালনার ক্ষেত্রে এই কাঠামোটি আরও নমনীয়।


33
বংশবৃদ্ধির জন্য সমস্ত স্বচ্ছতার ত্যাগ করা "পাইথোনিক" নয়, যা আমি এখানে মনে করি। এটি কোনও সরল কাঠামো নয়।
DBedrenko

11
আমি মনে করি যে পাইথনের শর্তযুক্ত অভিব্যক্তিগুলি এই সিনট্যাক্সটিকে কম সাধারণ করে তুলেছে। আমি অবশ্যই সর্বোচ্চ (আরগস) - কমপক্ষে (আরোগ) যদি লেন (আরোগুলি) থেকে অন্য 0 টি পছন্দ করি তবে পছন্দ করি।
রিচার্ডব

4
আর একটি সাধারণ যা প্রথমে বিভ্রান্ত করছে তা যদি একটি অস্তিত্ব না থাকে তবে একটি মান নির্ধারণ করে: "কিছু_ভর = আরগ বা 3"
এরিক

12
মানুষ বাল্ড্রিক এর আগে টেরিনারি অপারেটরদের পক্ষে এই সিনট্যাক্সটিকে ধাক্কা মারতে শুরু করার আগে, মনে রাখবেন যে এন-আরি শর্তের অভিব্যক্তিটি যখন আসে, তখন টার্নারি অপারেটরগুলি দ্রুত হাত থেকে বেরিয়ে যেতে পারে। উদাহরণস্বরূপ, if ... else (if ... else (if ... else (if ... else ...)))ঠিক একইভাবে আবারও লিখিত হতে পারে ... and ... and ... and ... and ...এবং সেই সময়ে এটি উভয় ক্ষেত্রেই পঠনযোগ্যতার পক্ষে তর্ক করা সত্যিই শক্ত হয়ে যায়।
cs95

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

18

পাইথন ডক্স থেকে উদ্ধৃতি দেওয়া হচ্ছে

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

সুতরাং, পাইথনকে এভাবেই বুলিয়ান অভিব্যক্তিগুলি মূল্যায়নের জন্য ডিজাইন করা হয়েছিল এবং উপরের নথিগুলি তারা কেন এটি করেছে তা আমাদের অন্তর্দৃষ্টি দেয়।

বুলিয়ান মান পেতে কেবল এটি টাইপকাস্ট করুন।

return bool(len(args) and max(args)-min(args))

কেন?

শর্ট সার্কিট iting

উদাহরণ স্বরূপ:

2 and 3 # Returns 3 because 2 is Truthy so it has to check 3 too
0 and 3 # Returns 0 because 0 is Falsey and there's no need to check 3 at all

একই জন্য যায় orখুব, যে, এটা অভিব্যক্তি যা ফিরে আসবে Truthy শীঘ্রই তা খুঁজে বের করে যত, মূল্যায়ন অভিব্যক্তি বাকি অপ্রয়োজনীয় কারণ।

পরিবর্তে হার্ডকোর ফিরে Trueবা False, পাইথন আয় Truthy বা Falsey , যা যাহাই হউক না কেন নির্ণয় করতে যাচ্ছি Trueবা False। আপনি মত প্রকাশটি ব্যবহার করতে পারেন এবং এটি এখনও কার্যকর হবে।


কি জানতে Truthy এবং Falsey , চেক প্যাট্রিক Haugh এর উত্তর


7

এবং এবং বা বুলিয়ান যুক্তি সম্পাদন করে তবে তারা তুলনা করার সময় তারা আসল মানগুলির মধ্যে একটি ফেরত দেয়। ব্যবহার করার সময় এবং , বাম থেকে ডানে বুলিয়ান প্রসঙ্গে মানগুলি মূল্যায়ন করা হয়। 0, '', [], (), {}, এবং কোনও বুলিয়ান প্রসঙ্গে মিথ্যা নয় ; অন্য সব কিছুই সত্য।

সমস্ত মান যদি বুলিয়ান প্রসঙ্গে সত্য হয় এবং শেষ মানটি দেয়।

>>> 2 and 5
5
>>> 2 and 5 and 10
10

যদি কোনও বুলিয়ান প্রসঙ্গে ভ্যালু হয় এবং প্রথম মিথ্যা মান প্রদান করে।

>>> '' and 5
''
>>> 2 and 0 and 5
0

সুতরাং কোড

return len(args) and max(args)-min(args)

আয় মান max(args)-min(args)যখন সেখানে args অন্যথায় এটা ফেরৎ len(args)যা 0।


5

এই বৈধ / নির্ভরযোগ্য শৈলী, বা এটির উপর কোন গ্যাচচাস আছে?

এটি বৈধ, এটি একটি শর্ট সার্কিট মূল্যায়ন যেখানে শেষ মানটি ফেরত পাওয়া যায়।

আপনি একটি ভাল উদাহরণ প্রদান। 0কোনও আর্গুমেন্ট পাস না হলে ফাংশনটি ফিরে আসবে , এবং কোডটি কোনও আর্গুমেন্ট পাস না করে একটি বিশেষ ক্ষেত্রে পরীক্ষা করতে হবে না।

এটি ব্যবহারের আরেকটি উপায় হ'ল খালি তালিকার মতো কোনও পরিবর্তনীয় আদিমকে ডিফল্ট করা নয়:

def fn(alist=None):
    alist = alist or []
    ....

যদি কিছু অ-সত্যবাদী মান এটিতে alistখালি তালিকায় ডিফল্ট হয়, তবে কোনও ifবিবৃতি এড়াতে সহজ উপায় এবং পরিবর্তনীয় ডিফল্ট আর্গুমেন্টের ক্ষতি


3

গটছস

হ্যাঁ, কয়েকটি গ্যাটাচস আছে।

fn() == fn(3) == fn(4, 4)

প্রথমত, যদি fnফেরত আসে তবে 0আপনি জানতে পারবেন না যে এটি কোনও প্যারামিটার ছাড়াই বলা হয়েছিল, একটি প্যারামিটার বা একাধিক, সমান পরামিতি সহ:

>>> fn()
0
>>> fn(3)
0
>>> fn(3, 3, 3)
0

কী fnমানে?

তারপরে পাইথন একটি গতিশীল ভাষা। এটি কী fnকরে, এর ইনপুটটি কী হওয়া উচিত এবং এর আউটপুট কেমন হওয়া উচিত তা কোথাও নির্দিষ্ট করা হয়নি । সুতরাং, ফাংশনটির সঠিক নামকরণ করা সত্যই গুরুত্বপূর্ণ। একইভাবে, যুক্তি বলতে হবে না argsdelta(*numbers)অথবা calculate_range(*numbers)ফাংশনটি কী করণীয় তা আরও ভালভাবে বর্ণনা করতে পারে।

তর্ক ত্রুটি

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

>>> fn('1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in fn
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>> fn(1, '2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in fn
TypeError: '>' not supported between instances of 'str' and 'int'
>>> fn('a', 'b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in fn
TypeError: unsupported operand type(s) for -: 'str' and 'str'

সম্ভাব্য বিকল্প

"অনুমতি চেয়ে ক্ষমা চাইতে সহজতর" অনুযায়ী ফাংশনটি লেখার একটি উপায় এখানে's নীতি :

def delta(*numbers):
    try:
        return max(numbers) - min(numbers)
    except TypeError:
        raise ValueError("delta should only be called with numerical arguments") from None
    except ValueError:
        raise ValueError("delta should be called with at least one numerical argument") from None

উদাহরণ হিসাবে:

>>> delta()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 7, in delta
ValueError: delta should be called with at least one numerical argument
>>> delta(3)
0
>>> delta('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in delta
ValueError: delta should only be called with numerical arguments
>>> delta('a', 'b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in delta
ValueError: delta should only be called with numerical arguments
>>> delta('a', 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in delta
ValueError: delta should only be called with numerical arguments
>>> delta(3, 4.5)
1.5
>>> delta(3, 5, 7, 2)
5

deltaকোনও যুক্তি ছাড়াই ডাকা হলে আপনি যদি সত্যিই কোনও ব্যতিক্রম বাড়াতে না চান তবে আপনি এমন কিছু মূল্য দিতে পারেন যা অন্যথায় সম্ভব নয় (যেমন -1বা None):

>>> def delta(*numbers):
...     try:
...         return max(numbers) - min(numbers)
...     except TypeError:
...         raise ValueError("delta should only be called with numerical arguments") from None
...     except ValueError:
...         return -1 # or None
... 
>>> 
>>> delta()
-1

0

এই বৈধ / নির্ভরযোগ্য শৈলী, বা এটির উপর কোন গ্যাচচাস আছে?

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

>>>example_list = []
>>>print example_list or 'empty list'
empty list

অতএব আপনি সত্যই এটি আপনার সুবিধার্থে ব্যবহার করতে পারেন। সচ্ছল হওয়ার জন্য এটি আমি এটি দেখতে পাই:

Or অপারেটর

পাইথনের orঅপারেটর প্রথম ট্রুথ-ওয়াই মান বা শেষ মানটি প্রদান করে এবং থামায়

And অপারেটর

পাইথনের andঅপারেটর প্রথম ফলস-ওয়াই মান বা শেষ মানটি প্রদান করে এবং থামায়

দৃশ্যের অন্তরালে

পাইথনে, সমস্ত সংখ্যা True0 বাদে ব্যাখ্যা করা হয় Therefore সুতরাং, বলেছেন:

0 and 10 

এটার মতই:

False and True

যা পরিষ্কার False। সুতরাং এটি যৌক্তিক যে এটি 0 প্রদান করে


0

হ্যাঁ. এটি সঠিক আচরণ এবং তুলনা।

পাইথন মধ্যে অন্তত, A and Bআয় Bযদি Aমূলত হয় Trueসহ যদি Aনাল, তাই না Noneনা একটি খালি কন্টেইনারে (যেমন একটি খালি যেমন list, dictইত্যাদি)। Aফিরিয়ে দেওয়া হয় IFF Aমূলত Falseবা Noneবা খালি বা শূন্য।

অন্যদিকে, A or Bআয় Aযদি Aমূলত হয় Trueসহ যদি A, নাল নয় Noneনয় একটি খালি কন্টেইনারে (যেমন একটি খালি যেমন list, dict, ইত্যাদি), অন্যথায় এটি ফেরৎ B

এই আচরণটি লক্ষ্য করা (বা উপেক্ষা করা) সহজ কারণ কারণ পাইথন-এ, কোনও non-nullখালি খালি অবজেক্ট সত্যের কাছে মূল্যায়ন করে তাকে বুলিয়ান হিসাবে ধরা হয়।

উদাহরণস্বরূপ, নিম্নলিখিত সমস্ত "সত্য" মুদ্রণ করবে

if [102]: 
    print "True"
else: 
    print "False"

if "anything that is not empty or None": 
    print "True"
else: 
    print "False"

if {1, 2, 3}: 
    print "True"
else: 
    print "False"

অন্যদিকে, নিম্নলিখিত সমস্ত "মিথ্যা" মুদ্রণ করবে

if []: 
    print "True"
else: 
    print "False"

if "": 
    print "True"
else: 
    print "False"

if set ([]): 
    print "True"
else: 
    print "False"

ধন্যবাদ. আমি লিখতে চেয়েছিলাম Aমূলত True। সংশোধন করা হয়েছে।
emmanuelsa

0

সহজ উপায়ে বুঝতে,

এবং : if first_val is False return first_val else second_value

যেমন:

1 and 2 # here it will return 2 because 1 is not False

কিন্তু,

0 and 2 # will return 0 because first value is 0 i.e False

এবং => যদি কেউ মিথ্যা বলে তা মিথ্যা হবে। যদি উভয়ই সত্য হয় তবেই এটি সত্য হয়ে উঠবে

বা: if first_val is False return second_val else first_value

কারণটি যদি প্রথম মিথ্যা হয় তবে এটি 2 টি সত্য কিনা তা পরীক্ষা করে দেখুন check

যেমন:

1 or 2 # here it will return 1 because 1 is not False

কিন্তু,

0 or 2 # will return 2 because first value is 0 i.e False

বা => যদি কেউ মিথ্যা বলে থাকে তবে এটি সত্য হবে। সুতরাং যদি প্রথম মানটি মিথ্যা হয় তবে 2 মান হ'ল তা বিবেচনা করুন। সুতরাং এটি এটি হতে পারে যে দ্বিতীয় মান ফিরে আসে।

যদি কেউ সত্য হয় তবে তা সত্য হয়ে উঠবে। যদি উভয়ই মিথ্যা হয় তবে তা মিথ্যা হয়ে যাবে।

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