2015-12-08 10 views
6

में आईएफएफ का उपयोग कर वहाँ किसी भी तरह से अजगर में iff बयान (यानी यदि और केवल यदि) लिखने के लिए है। मैंअजगर

for i in range(x) 
    iff x%2==0 and x%i==0: 

हालांकि में की तरह उपयोग करना चाहते हैं, वहाँ पायथन में कोई iff बयान है।

a | b | iff a and b 
----------------------- 
T | T |  T 
T | F |  F 
F | T |  F 
F | F |  T 

मैं कैसे पायथन में यह पूरा करते हैं: विकिपीडिया इस रूप में परिभाषित करता है truth table for iff?

+2

इसके अलावा: जो लोग डाउनवॉटेड हैं उन्हें अपने वोट हटा देना चाहिए। यह स्पष्ट रूप से एक अच्छा सवाल है। –

उत्तर

9

अनुसार Wikipedia रहे हैं:

ध्यान दें कि यह XNOR गेट द्वारा उत्पादित कि के बराबर है, और विपरीत है जो एक्सओआर गेट द्वारा उत्पादित किया गया है।

है कि आप आप के लिए क्या देख रहे हैं बस इस हैं:

if not(x%2 == 0^x%i == 0): 
14

यदि आप truth table for IFF पर देखते हैं, तो आप देख सकते हैं कि (पी iff q) सत्य है जब दोनों पी और क्यू सत्य हैं या दोनों झूठे हैं। यही कारण है कि समानता के लिए जाँच के रूप में सिर्फ एक ही है, तो अजगर कोड में आप कहेंगे:

if (x%2==0) == (x%i==0): 
2

पिछले जवाब समस्या का समाधान।

इस पर स्पष्टीकरण का एक नोट के रूप में: if बयान केवल एक इनपुट स्वीकार कर रहा है, कई नहीं। तो जब आप if blah and bleh: करते हैं, तो यह if (blah and bleh): के बराबर है। अभिव्यक्ति blah and bleh का मूल्यांकन सत्य मूल्य के लिए पहले किया जाता है, और उसके परिणामस्वरूप if कथन को खिलाया जाता है।

एक वास्तविक तालिका प्रकार के तर्क मूल्यांकन के लिए केवल एक के बजाय एकाधिक इनपुट (a और b) की आवश्यकता होगी, लेकिन if इस तरह से काम नहीं करता है।

0

उपयोग Biconditional बयान तुल्यता:

enter image description here

0

सिर्फ एक ही सोच रहा था। यहां एक त्वरित फिक्स है जो

def iff(a,b,c): 
    if a: 
     return b 
    else: 
     return c