2012-09-03 18 views
11

का उपयोग कर c में मैं की तरह कुछ कर सकते हैं मुझे पता है कि मैं कुछ ऐसा कर सकता हूं:वापसी बयान त्रिगुट ऑपरेटर

def minn(n,m): 
    return min(n,m) 

मेरा सवाल यह है कि, क्या मैं अजगर में टर्नरी ऑपरेटर का उपयोग नहीं कर सकता।

+0

दो रिटर्न स्टेटमेंट नामक कुछ भी नहीं है! 'वापसी (एन <एम)? n: m' तुलनात्मक रूप से 'n Curious

+0

@ क्रिएटिव के आधार पर केवल एक मान देता है, या तो n या m, क्रूर मैं एक अजीब भ्रम था, अब यह स्पष्ट है। पाइथन में –

+0

आप वही चीज़ लिख सकते हैं जैसे 'वापसी n अगर n Curious

उत्तर

33

आपके सी कोड में दो return कथन शामिल नहीं हैं। न तो अपने अजगर कोड होना चाहिए ... आपके त्रिगुट अभिव्यक्ति का अनुवाद n if n<m else m है, इसलिए सिर्फ इतना है कि अभिव्यक्ति का उपयोग जब आप मान:

def minn(n,m): 
    return n if n<m else m 
9
def minn(n,m): 
    return n if n<m else m 

expr1 if expr2 else expr3 अभिव्यक्ति एक अभिव्यक्ति है, न कि एक बयान है। return एक कथन है (this प्रश्न देखें)

क्योंकि अभिव्यक्तियों में विवरण नहीं हो सकते हैं, आपका कोड विफल हो जाता है।

संबंधित मुद्दे