मैंने नीचे कुछ चर परिभाषित किए हैं और मैं एक चर को परिभाषित करने के लिए उनका उपयोग करना चाहता हूं।

today = datetime.today()
datem = str(datetime(today.year, today.month, 1))
curr_month = datem[5:7]
curr_year = datem[2:4]
list_early_fy = ['04', '05', '06', '07', '08', '09', '10', '11', '12']

फिर मैं इनका उपयोग उस वित्तीय वर्ष को परिभाषित करने के लिए करना चाहता हूं जिसका मैं उपयोग कर रहा हूं। मैंने नीचे दोनों तरीकों की कोशिश की (पहला वह था जिसे मैं वास्तव में ढूंढ रहा था), लेकिन दोनों ने "अमान्य वाक्यविन्यास" कहा।

test_year = if curr_month in list_early_fy:
            print(int(curr_year)+1, curr_year)
    
def test_year:
        if curr_month in list_early_fy:
            print(int(curr_year)+1, curr_year)

अंत में, मैं अपने कोड में अन्य स्थानों पर उस "test_year" चर का उपयोग करना चाहता हूं। वैसे भी, यह काम कैसे करें इस पर कोई सुझाव?

0
David 22 जिंदा 2021, 21:39

3 जवाब

सबसे बढ़िया उत्तर

किसी फ़ंक्शन में कम से कम कोष्ठक होने चाहिए, भले ही इसमें कोई पैरामीटर न हो, इसलिए def test_year: काम नहीं करेगा। एक if स्टेटमेंट एक वेरिएबल को असाइन नहीं किया जा सकता है। इसके बजाय, आप एक ऐसे फ़ंक्शन को परिभाषित कर सकते हैं जो curr_month और list_early_fy को पैरामीटर के रूप में स्वीकार करता है,

def test_year(curr_month, curr_year, list_early_fy):
        if curr_month in list_early_fy:
            print(int(curr_year)+1, curr_year)

और आप इसे test_year(curr_month, curr_year, list_early_fy) के माध्यम से कॉल करेंगे।

यदि आपके पास एक वर्ग है जो curr_month, curr_year, और list_early_fy संग्रहीत करता है, तो आप उन वर्ग चर का संदर्भ दे सकते हैं:

class MyClass(object):
    def __init__(self, curr_month, curr_year, list_early_fy):
        self.curr_month = curr_month
        self.curr_year = curr_year
        self.list_early_fy = list_early_fy
    
    def test_year():
        if self.curr_month in self.list_early_fy:
            print(int(self.curr_year)+1, self.curr_year)

c = MyClass(curr_month, curr_year, list_early_fy)
c.test_year()
0
Random Davis 22 जिंदा 2021, 21:44

कोड का पहला भाग अमान्य है क्योंकि आप बूलियन करते समय एक मान निर्दिष्ट करने का प्रयास कर रहे हैं। दूसरे के लिए, आप भूल गए () जो पैरामीटर्स को परिभाषित करने के लिए test_year के बाद जाएगा। यह def test_year(curr_month): होना चाहिए। अपने कोड में फ़ंक्शन का उपयोग करने के लिए, इसे test_year(current_month_variable) का उपयोग करके कॉल करें।

0
lwashington27 22 जिंदा 2021, 21:44

सबसे पहले, आप test_year को परिभाषित नहीं कर रहे हैं, आप केवल cuur_year प्रिंट कर रहे हैं। फिर: यदि आप कोष्ठक जोड़ते हैं, तो आपका दूसरा कोड काम करेगा, जैसे:

def test_year():
        if curr_month in list_early_fy:
            print(int(curr_year)+1, curr_year)

और एक पंक्ति यदि अन्य आधारित चर असाइनमेंट (मुझे लगता है कि यह वही है जो आप शुरू में चाहते थे) इस तरह काम करता है:

num = int(input("enter number : "))
num = num * 2 if num < 5 else num / 2
print(num)

सामान्य वाक्य रचना में ऊपर:

num = int(input("enter number : "))
if num < 5:
    num = num * 2 # could be shortened to num *= 2
else:
    num = num / 2 # could be shortened to num /= 2
print(num)
0
Programmer 22 जिंदा 2021, 21:50