Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन लेखन त्रुटि:प्रारूप स्ट्रिंग समाधान के लिए पर्याप्त तर्क नहीं है

सही संख्या में तर्कों का उपयोग करके पायथन स्ट्रिंग्स को स्वरूपित किया जाना चाहिए। जब आपके द्वारा निर्दिष्ट तर्कों की संख्या उन मानों की संख्या से कम होती है जिन्हें आप एक स्ट्रिंग में प्रारूपित करना चाहते हैं, तो आपको "टाइप एरर:प्रारूप स्ट्रिंग के लिए पर्याप्त तर्क नहीं" जैसी त्रुटि का सामना करना पड़ता है।

इस गाइड में, हम इस बारे में बात करते हैं कि इस त्रुटि का क्या अर्थ है और इसे क्यों उठाया जाता है। हम आपको यह समझने में मदद करने के लिए एक उदाहरण के माध्यम से चलते हैं कि आप अपने कोड में इस त्रुटि को कैसे हल कर सकते हैं।

लेखन त्रुटि:प्रारूप स्ट्रिंग के लिए पर्याप्त तर्क नहीं हैं

हमारी त्रुटि एक TypeError है। इसका मतलब है कि हमने उस मूल्य पर कुछ करने की कोशिश की है जिसका अंतर्निहित डेटा प्रकार उस ऑपरेशन का समर्थन नहीं करता है।

इस मामले में, हम स्ट्रिंग स्वरूपण के साथ काम करते हैं। पायथन हमें बताता है कि हमने एक स्ट्रिंग को प्रारूपित करने में गलती की है।

जब आप एक स्ट्रिंग को प्रारूपित करते हैं, तो आपके द्वारा निर्दिष्ट तर्कों की संख्या उन मानों की संख्या के बराबर होनी चाहिए जिन्हें आप प्रारूपित करना चाहते हैं। अन्यथा, आप एक त्रुटि का सामना करते हैं।

एक उदाहरण परिदृश्य

एक सामान्य स्थिति जहां यह त्रुटि उठाई जाती है, जब आप कोष्ठक में % स्ट्रिंग प्रारूप में तर्कों को संलग्न करना भूल जाते हैं। स्ट्रिंग में मान जोड़ने के लिए यह सिंटैक्स % ऑपरेटर का उपयोग करता है।

यहां, हम एक ऐप बनाते हैं जो एक स्ट्रिंग में सम्मान रोल पर छात्रों के नामों की एक सूची स्वरूपित करता है। हम छात्र नामों की एक सूची को परिभाषित करके शुरू करते हैं:

students = ["Andy", "Malcolm", "Lindsay", "Lucy"]

इसके बाद, हम % सिंटैक्स का उपयोग करके इन मानों को एक स्ट्रिंग में प्रारूपित करते हैं:

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

honor_roll = "%s, %s, %s, and %s are on the CK High School Honor Roll." % students[0], students[1], students[2], students[3]
print(honor_roll)

हम अपने "छात्र" सरणी से सभी चार नामों को "honor_roll" स्ट्रिंग में प्रारूपित करते हैं। हम अपनी स्ट्रिंग के अंदर% s का उपयोग यह इंगित करने के लिए करते हैं कि मानों को कहाँ स्वरूपित किया जाना चाहिए। % का उपयोग स्ट्रिंग के बाद यह निर्दिष्ट करने के लिए किया जाता है कि हम अपनी स्ट्रिंग में कौन से मान जोड़ना चाहते हैं।

हमारा कोड चलाएँ और देखें कि क्या होता है:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
	honor_roll = "%s, %s, %s, and %s are on the CK High School Honor Roll." % students[0], students[1], students[2], students[3]
TypeError: not enough arguments for format string

पायथन में एक त्रुटि आई है। आइए देखें कि हम इसे कैसे हल कर सकते हैं।

समाधान #1:स्ट्रिंग स्वरूपण सिंटैक्स को ठीक करें

हमने स्ट्रिंग्स को प्रारूपित करने में गलती की है। % ऑपरेटर का उपयोग करते समय, जिन मानों को आप एक स्ट्रिंग में जोड़ना चाहते हैं, उन्हें कोष्ठक के भीतर संलग्न किया जाना चाहिए।

हमारे उपरोक्त उदाहरण में, हम अल्पविराम से अलग किए गए मानों की सूची के रूप में अपनी स्ट्रिंग के अंदर जोड़ने के लिए मान निर्दिष्ट करते हैं। यह सूची कोष्ठक में प्रकट नहीं होती है।

हम कोष्ठक में % चिह्न के बाद मानों को संलग्न करके अपनी त्रुटि को ठीक करते हैं:

honor_roll = "%s, %s, %s, and %s are on the CK High School Honor Roll." % (students[0], students[1], students[2], students[3])

आइए अपना कोड चलाएं:

Andy, Malcolm, Lindsay, and Lucy are on the CK High School Honor Roll.

हमारा कोड ऑनर रोल पर छात्रों के बारे में सूचित करने वाला एक संदेश सफलतापूर्वक लौटाता है।

समाधान #2:.format()

Use का उपयोग करें

% सिंटैक्स पुराना होने लगा है। स्ट्रिंग्स को स्वरूपित करने के अन्य तरीके हैं जैसे कि .format() विधि जो आधुनिक पायथन कोड में अधिक पसंदीदा हैं।

अपनी समस्या को हल करने के लिए, हम .format() . का उपयोग कर सकते हैं % सिंटैक्स के बजाय सिंटैक्स:

honor_roll = "{}, {}, {}, and {} are on the CK High School Honor Roll.".format(students[0], students[1], students[2], students[3])

इस सिंटैक्स की संरचना % विधि के समान है। हमारे स्ट्रिंग में, हम {} कोष्ठक का उपयोग यह इंगित करने के लिए करते हैं कि हम कहाँ मान जोड़ना चाहते हैं।

हम .format() . का उपयोग करते हैं उन मानों की सूची निर्दिष्ट करने के लिए विधि जिन्हें हम अपनी स्ट्रिंग में जोड़ना चाहते हैं। चलिए अपना कोड चलाते हैं:

Andy, Malcolm, Lindsay, and Lucy are on the CK High School Honor Roll.

हमारा कार्यक्रम सफलतापूर्वक हमें उन छात्रों के नामों की सूची दिखाता है जो ऑनर ​​रोल में हैं। यह सूची एक स्ट्रिंग के हिस्से के रूप में स्वरूपित है।

निष्कर्ष

"लेखन त्रुटि:प्रारूप स्ट्रिंग के लिए पर्याप्त तर्क नहीं" त्रुटि तब उठाई जाती है जब एक स्ट्रिंग प्रारूप संचालन में निर्दिष्ट तर्कों की संख्या उन मानों की संख्या के बराबर नहीं होती है जिन्हें आप एक स्ट्रिंग में जोड़ना चाहते हैं।

इस समस्या को हल करने के लिए, पहले सुनिश्चित करें कि आप सभी तर्कों को घुंघराले कोष्ठक () में संलग्न करते हैं यदि आप % ऑपरेटर का उपयोग कर रहे हैं। आप .format() . का उपयोग कर सकते हैं यदि आप इस त्रुटि को ठीक करना चाहते हैं और अपने कोड को आधुनिक बनाना चाहते हैं तो % सिंटैक्स के प्रतिस्थापन के रूप में विधि।

अब आप एक विशेषज्ञ की तरह इस सामान्य पायथन त्रुटि को ठीक करने के लिए तैयार हैं!


  1. पायथन में स्ट्रिंग ऑपरेशंस

    पायथन में, एक मानक पुस्तकालय होता है, जिसे स्ट्रिंग . कहा जाता है . स्ट्रिंग मॉड्यूल में, स्ट्रिंग से संबंधित विभिन्न स्थिरांक, विधियां, कक्षाएं उपलब्ध हैं। इन मॉड्यूल का उपयोग करने के लिए, हमें स्ट्रिंग मॉड्यूल . को आयात करना होगा हमारे कोड में। आयात स्ट्रिंग कुछ स्ट्रिंग स्थिरांक और उनके संगत मा

  1. एक स्ट्रिंग में यूआरएल की जांच करने के लिए पायथन प्रोग्राम

    इस मामले में हम पाइथन में री मॉड्यूल का उपयोग करते हैं, यहां हम एक स्ट्रिंग स्वीकार करते हैं और जांचते हैं कि स्ट्रिंग में चींटी यूआरएल है या नहीं। यदि URL स्ट्रिंग में मौजूद है तो प्रदर्शित करें। हम इस समस्या को हल करने के लिए findall () पद्धति का उपयोग करते हैं। एल्गोरिदम Step 1: given string as i

  1. मैं पायथन 3 में एक शब्दकोश का उपयोग करके एक स्ट्रिंग को कैसे प्रारूपित करूं?

    आप स्ट्रिंग्स को प्रक्षेपित करने के लिए शब्दकोशों का उपयोग कर सकते हैं। उनके पास एक सिंटैक्स है जिसमें आपको % और रूपांतरण वर्ण के बीच कोष्ठक में कुंजी प्रदान करने की आवश्यकता होती है। उदाहरण के लिए, यदि आपके पास एक कुंजी लागत में संग्रहीत एक फ्लोट है और इसे $ xxxx.xx के रूप में प्रारूपित करना चाहते