दिलचस्प पोस्ट
स्पर्शरेखा और बिनोर्मल की गणना कैसे करें? इंटरफ़ेस चर स्थिर और अंतिम रूप से क्यों हैं? संपत्ति पथ में सभी चरणों का पता लगाना आरएसपीसी का उपयोग कब करें ()? नोड। जेएस के साथ कचरा संग्रहण पायथन 'के साथ' वक्तव्य में कई चर गिनती के साथ लंबे प्रारूप में लंबे समय तक कन्वर्ट करने का आसान तरीका मैं बाश में कमांड लाइन तर्क कैसे पार्स कर सकता हूँ? मैं UITableViewCell के छवि को एक निश्चित आकार कैसे बना सकता हूँ, जब भी छवि छोटा हो एंड्रॉइड – समर्थन v7 के साथ xml में selectableBackground चुनें मैं सूची <टी> से लेकर एक वर्ग के सदस्यों को क्रमबद्ध करने के लिए json.net कैसे प्राप्त करूं? JSF टैग्स को HTML के रूप में प्रदान नहीं किया जा रहा है Cplusplus.com में क्या गलत है? मुझे एंड्रॉइड स्रोत कोड ऑनलाइन कहां मिल सकता है? वर्तमान में उपयोगकर्ता के सत्र में लॉग इन करने पर विंडो सेवा से एक प्रक्रिया कैसे आरंभ करें

TypeError: सभी स्ट्रिंग फ़ॉर्मेटिंग अजगर के दौरान परिवर्तित नहीं तर्क

कार्यक्रम को दो नामों में रखना माना जाता है, और यदि वे समान लंबाई हैं तो यह जांचना चाहिए कि क्या वे एक ही शब्द हैं। यदि यह वही शब्द है, तो यह "नाम समान हैं" प्रिंट करेगा। यदि वे एक समान लंबाई हैं लेकिन अलग-अलग पत्रों के साथ यह "नाम अलग हैं लेकिन समान लंबाई" प्रिंट करेंगे। जिस भाग के साथ मुझे कोई समस्या है वह नीचे 4 लाइनों में है I

#!/usr/bin/env python # Enter your code for "What's In (The Length Of) A Name?" here. name1 = input("Enter name 1: ") name2 = input("Enter name 2: ") len(name1) len(name2) if len(name1) == len(name2): if name1 == name2: print ("The names are the same") else: print ("The names are different, but are the same length") if len(name1) > len(name2): print ("'{0}' is longer than '{1}'"% name1, name2) elif len(name1) < len(name2): print ("'{0}'is longer than '{1}'"% name2, name1) 

जब मैं यह कोड चलाता है तो यह प्रदर्शित होता है:

 Traceback (most recent call last): File "program.py", line 13, in <module> print ("'{0}' is longer than '{1}'"% name1, name2) TypeError: not all arguments converted during string formatting 

किसी भी सुझाव अत्यधिक सराहना कर रहे हैं

वेब के समाधान से एकत्रित समाधान "TypeError: सभी स्ट्रिंग फ़ॉर्मेटिंग अजगर के दौरान परिवर्तित नहीं तर्क"

आप विभिन्न प्रारूप फ़ंक्शंस मिश्रण कर रहे हैं

पुराने-शैली % स्वरूपण स्वरूपण के लिए % कोड का उपयोग करता है:

 'It will cost $%d dollars.' % 95 

नई शैली {} स्वरूपण {} कोड और .format विधि का उपयोग करता है

 'It will cost ${0} dollars.'.format(95) 

ध्यान दें कि पुराने-शैली स्वरूपण के साथ, आपको टुपल का उपयोग करके कई तर्क निर्दिष्ट करना होगा:

 '%d days and %d nights' % (40, 40) 

आपके मामले में, जब आप {} प्रारूप विनिर्देशक का उपयोग कर रहे हैं, तो उपयोग करें। प्रारूप:

 "'{0}' is longer than '{1}'".format(name1, name2) 

त्रुटि आपके स्ट्रिंग फ़ॉर्मेटिंग में है

'%' ऑपरेटर का उपयोग करके पारंपरिक स्ट्रिंग फ़ॉर्मेटिंग का सही तरीका एक printf-style प्रारूप स्ट्रिंग का उपयोग करना है (इस के लिए पायथन दस्तावेज़: http://docs.python.org/2/library/string.html#format- स्ट्रिंग-सिंटैक्स ):

 "'%s' is longer than '%s'" % (name1, name2) 

हालांकि, '%' ऑपरेटर को शायद भविष्य में पदावनत किया जाएगा । चीजें करने का नया पीईपी 3101 तरीका इस तरह है:

 "'{0}' is longer than '{1}'".format(name1, name2) 

मेरे लिए, यह त्रुटि तब हुई थी जब मैं स्ट्रिंग प्रारूप पद्धति में एक ट्यूपल में पास करने का प्रयास कर रहा था।

मुझे इस प्रश्न / जवाब से समाधान मिला

लिंक से सही उत्तर कॉपी और चिपकाने (मेरे काम नहीं) :

 >>> thetuple = (1, 2, 3) >>> print "this is a tuple: %s" % (thetuple,) this is a tuple: (1, 2, 3) 

एक सिंगलटन ट्यूपल को ट्यूप्ले के साथ ही एकमात्र आइटम के रूप में बनाना, अर्थात (द टुटपेल) भाग, यहां मुख्य बिट है।

अन्य दो उत्तरों के अलावा, मुझे लगता है कि पिछले दो स्थितियों में इंडेंटेन्ट्स भी गलत हैं। परिस्थितियां हैं कि एक नाम दूसरे से अधिक लंबा है और उन्हें 'एलीफ' से शुरू करने की आवश्यकता नहीं है और बिना किसी इंडेंटेशन के। यदि आप इसे पहली शर्त (इसे मार्जिन से चार इंडेंटेशन देकर) में डालते हैं, तो यह विरोधाभासी हो जाता है क्योंकि नाम की लंबाई बराबर और एक ही समय में अलग नहीं हो सकती।

  else: print ("The names are different, but are the same length") elif len(name1) > len(name2): print ("{0} is longer than {1}".format(name1, name2)) 

मेरे मामले में, इसकी वजह से मुझे एक% s की आवश्यकता है, मैं मान इनपुट खोला है।