आप स्ट्रिंग कोष्टक में फ़ॉर्मेट करने के लिए अपने तर्क रखना होगा:
print (... % (name, last_name, gender, age))
अन्यथा, अजगर केवल स्ट्रिंग स्वरूपण के लिए एक तर्क और print
समारोह के लिए तर्क के रूप में बाकी के रूप में name
देखेंगे।
नोट तथापि स्ट्रिंग स्वरूपण कार्यों के लिए %
का उपयोग कर इन दिनों पर सिकोड़ी है कि। आधुनिक दृष्टिकोण str.format
उपयोग करने के लिए है:
>>> '%s %s' % 'a', 'b' # what you have
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
>>>
>>>
>>> '%s %s' % ('a', 'b') # correct solution
'a b'
'%s %s' % 'a', 'b'
('%s %s' % 'a'), 'b'
के रूप में मूल्यांकन किया जाता है, जो '%s %s' % 'a'
में एक त्रुटि पैदा करता है जब से तुम प्रारूप विनिर्देशक से कम तर्क है:
print ("So your name is {}, your last name is {}, you are {} and you are {} years old".format(name, last_name, gender, age))
यह एक अच्छा विकल्प अजगर से पुराने स्ट्रिंग प्रारूप विधि पीछे छोड़, और इस दृष्टिकोण :) का उपयोग करने के लिए,। यह बहुत सारे सिरदर्द से बचाता है और उदाहरण के लिए डेटा के कॉलम बनाने के लिए आउटपुट को बेहतर स्वरूपित करने के लिए रिक्त स्थान डालने पर आपको अधिक लचीलापन देता है। यहां आधिकारिक दस्तावेज़ है, जिसमें कई उदाहरण हैं :) -> https://pyformat.info/ – ivanleoncz