पायथन में, दो प्रकार के तर्क होते हैं:स्थितीय और खोजशब्द तर्क। ये तर्क एक विशेष क्रम में प्रकट होने चाहिए अन्यथा पायथन दुभाषिया एक त्रुटि देता है।
इस गाइड में, हम "स्थितिगत तर्क कीवर्ड तर्क का अनुसरण करते हैं" त्रुटि के बारे में बात करने जा रहे हैं और इसे क्यों उठाया जाता है। हम इस त्रुटि के साथ एक उदाहरण कोड स्निपेट देखेंगे ताकि हम इसे हल करने के तरीके के बारे में चल सकें।
आइए शुरू करें!
समस्या:स्थितीय तर्क कीवर्ड तर्क का अनुसरण करता है
आइए हमारी पूरी त्रुटि पर एक नज़र डालें:
SyntaxError:स्थितीय तर्क कीवर्ड तर्क का अनुसरण करता है
अंग्रेजी भाषा की तरह प्रोग्रामिंग भाषाओं के भी अपने नियम होते हैं। इन नियमों को वाक्य रचना कहा जाता है। हमारी त्रुटि एक सिंटैक्स त्रुटि है जिसका अर्थ है कि हम एक नियम का पालन करने में विफल रहे हैं जो यह नियंत्रित करता है कि पायथन कोड कैसे लिखा जाए।
हमारी त्रुटि का अगला भाग हमें बताता है कि इस त्रुटि का कारण क्या है। इस मामले में, हमारे कोड में एक स्थितीय तर्क होना चाहिए जो एक खोजशब्द तर्क के बाद प्रकट होता है।
स्थितीय तर्क वे तर्क हैं जो अपनी-अपनी स्थिति में प्रकट होते हैं:
def add_numbers(a, b):रिटर्न a + bआइए इस फंक्शन को कॉल करें:add_numbers(2, 3)
"ए" और "बी" हमारे फ़ंक्शन के अंदर चर बन जाते हैं। यह कोड काम करता है क्योंकि हमने दो स्थितीय तर्क निर्दिष्ट किए हैं। "ए" 2 के बराबर है और "बी" तीन के बराबर है। हम इन तर्कों को कीवर्ड तर्कों के रूप में भी निर्दिष्ट कर सकते हैं:
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
add_numbers(a=2, b=2)
हालाँकि, हम पहले एक स्थितिगत तर्क निर्दिष्ट नहीं कर सकते हैं और फिर कीवर्ड सिंटैक्स पर स्विच कर सकते हैं।
ऐसा इसलिए है क्योंकि पायथन में एक विशेष फ़ंक्शन है जिसे *args कहा जाता है जो एक फ़ंक्शन में कई तर्कों को संसाधित करता है। इस कोड पर विचार करें:
def show_users(a, b, *args):प्रिंट (a, b, *args)
यह कोड *args का उपयोग करता है। यह कीवर्ड तर्कों की एक चर संख्या का प्रतिनिधित्व करता है। हम अपने show_users()
. में जितने तर्क दे सकते हैं जैसा हम चाहते हैं वैसा कार्य करें:
show_users("एलेक्स", "पीटर", "वायलेट", "जूली")
हमारा कोड रिटर्न:एलेक्स पीटर वायलेट जूली
हमारे पहले दो तर्क, "ए" और "बी" में क्रमशः "एलेक्स" और "पीटर" मान हैं।
ऐसा इसलिए है क्योंकि यदि आप स्थितीय सिंटैक्स का उपयोग करते हैं, तो तर्कों को उस क्रम में असाइन किया जाता है जिसमें वे पारित होते हैं। अंतिम तर्क इस क्रम में प्रकट होते हैं कि वे बताए गए हैं क्योंकि *args एक अज्ञात मात्रा में अतिरिक्त तर्कों का प्रतिनिधित्व करता है।
एक उदाहरण परिदृश्य
आइए एक कोड स्निपेट पर एक नज़र डालें जो इस त्रुटि का अनुभव करता है:
def print_menu(सलाद, पिज़्ज़ा):प्रिंट ("सलाद मेनू") सलाद में s के लिए:प्रिंट (s) प्रिंट ("") प्रिंट करें ("पिज्जा मेनू") पिज़्ज़ा में p के लिए:प्रिंट (p)पूर्व>यह फ़ंक्शन दो तर्क स्वीकार करता है:सलाद और पिज्जा। हमारा फ़ंक्शन सलाद मेनू पर प्रत्येक सलाद और पिज्जा मेनू पर प्रत्येक पिज्जा को कंसोल पर प्रिंट करता है।
आइए हमारे फ़ंक्शन को कॉल करें:
सलाद =["टूना सलाद", "लेट्यूस और मैंगो सलाद", "ग्रीक सलाद"]पिज़्ज़ा =["वेजी सुप्रीम", "हैम एंड पाइनएप्पल", "बीबीक्यू चिकन"]प्रिंट_मेनू(पिज़्ज़ा =पिज़्ज़ा, सलाद)हमारा कोड लौटाता है:
फ़ाइल "main.py", लाइन 13 print_menu(pizzas=pizzas, सलाद) ^सिंटैक्स त्रुटि:स्थितीय तर्क कीवर्ड तर्क का अनुसरण करता हैहमारे कोड में एक त्रुटि है, जैसा कि हमें उम्मीद थी। चलिए इसे ठीक करते हैं।
समाधान
इस समस्या को हल करने के लिए, हमें यह सुनिश्चित करना होगा कि सभी स्थितीय तर्क कीवर्ड तर्कों से पहले आएं। आइए इस नियम को दर्शाने के लिए अपने फ़ंक्शन को कॉल करने के तरीके को बदलें:
print_menu(सलाद, पिज़्ज़ा)हमने दो स्थितीय तर्क निर्दिष्ट किए हैं:सलाद और पिज्जा। वैकल्पिक रूप से, हम "सलाद" के बाद कीवर्ड तर्क के रूप में "पिज्जा" निर्दिष्ट कर सकते हैं:
print_menu(सलाद, पिज़्ज़ा =पिज़्ज़ा)इस उदाहरण में, किसी भी कीवर्ड तर्क को जोड़ना अनावश्यक है क्योंकि हम *args पद्धति का उपयोग नहीं कर रहे हैं। इसके साथ ही, कीवर्ड तर्कों में जोड़ने से फ़ंक्शन में पारित होने वाले मानों की संख्या के आधार पर कोड अधिक पठनीय हो सकता है।
आइए इस संशोधित फ़ंक्शन कॉल के साथ अपना कोड चलाएं:
सलाद मेनूटूना सलादसलाद और मैंगो सलादग्रीक सलादपिज्जा मेनूवेजी सुप्रीम हैम और अनानासबीबीक्यू चिकनहमारा कोड हमारी दो पायथन सूचियों को सफलतापूर्वक प्रिंट करता है।
निष्कर्ष
पायथन में एक कीवर्ड तर्क से पहले स्थितीय तर्क प्रकट होने चाहिए। ऐसा इसलिए है क्योंकि पायथन स्थितीय तर्कों की व्याख्या उस क्रम में करता है जिसमें वे दिखाई देते हैं। फिर, यह निर्दिष्ट किए गए कीवर्ड तर्कों की व्याख्या करता है।
अब आप एक विशेषज्ञ पायथन डेवलपर की तरह "स्थितिगत तर्क कीवर्ड तर्क का अनुसरण करता है" त्रुटि को हल करने के लिए तैयार हैं!