रूबी उदाहरण:
name = "Spongebob Squarepants"
puts "Who lives in a Pineapple under the sea? \n#{name}."
सफल पायथन स्ट्रिंग संघनन मेरे लिए शब्दशः प्रतीत होता है।
रूबी उदाहरण:
name = "Spongebob Squarepants"
puts "Who lives in a Pineapple under the sea? \n#{name}."
सफल पायथन स्ट्रिंग संघनन मेरे लिए शब्दशः प्रतीत होता है।
जवाबों:
पाइथन 3.6 रूबी के स्ट्रिंग प्रक्षेप के समान शाब्दिक स्ट्रिंग प्रक्षेप जोड़ देगा । पायथन के उस संस्करण के साथ शुरू करना (जो 2016 के अंत तक जारी होने वाला है), आप "एफ-स्ट्रिंग्स" में भावों को शामिल करने में सक्षम होंगे, उदा।
name = "Spongebob Squarepants"
print(f"Who lives in a Pineapple under the sea? {name}.")
3.6 से पहले, आप इसके लिए निकटतम हो सकते हैं
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? %(name)s." % locals())
%
ऑपरेटर के लिए इस्तेमाल किया जा सकता स्ट्रिंग प्रक्षेप अजगर में। पहला ऑपरेंड इंटरपोल किया जाने वाला स्ट्रिंग है, दूसरे में "मैपिंग" सहित विभिन्न प्रकार हो सकते हैं, फ़ील्ड नाम को मैप करने के लिए मानों को प्रक्षेपित किया जा सकता है। यहाँ मैंने स्थानीय चर locals()
के name
रूप में इसके मूल्य के लिए क्षेत्र के नाम को मैप करने के लिए स्थानीय चर के शब्दकोश का उपयोग किया ।
.format()
हाल के पायथन संस्करणों की विधि का उपयोग करने वाला समान कोड इस तरह दिखेगा:
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? {name!s}.".format(**locals()))
string.Template
वर्ग भी है :
tmpl = string.Template("Who lives in a Pineapple under the sea? $name.")
print(tmpl.substitute(name="Spongebob Squarepants"))
%s
एक स्ट्रिंग के लिए हैं और %03d
अग्रणी शून्य के साथ 3 अंकों के लिए एक संख्या है। यह सिर्फ लिखा जा सकता है print "%s has %03d" % ("Python", 2)
। इसके बाद उदाहरण ब्रैकेट में एक मैपिंग कुंजी लगाने का उपयोग करता है, %
जिसके बाद स्ट्रिंग में अपने आदेश पर भरोसा करने के बजाय प्लेसहोल्डर्स को सार्थक नाम देने का एक तरीका है। फिर आप एक शब्दकोश पारित करते हैं जो उनके मूल्यों के प्रमुख नामों को मैप करता है। यही कारण है कि स्वेन locals()
फ़ंक्शन का उपयोग कर रहा है, जो आपके सभी स्थानीय चर वाले एक तानाशाह को लौटाता है, इसलिए यह name
नाम के मूल्य के लिए मैप करेगा
s
रूपांतरण प्रकार के रूप में उपयोग कर सकते हैं - पायथन किसी भी चीज को स्ट्रिंग में बदल सकता है। लेकिन निश्चित रूप से आप अन्य रूपांतरण प्रकारों की विशेष स्वरूपण क्षमताओं को खो देंगे।
पाइथन 2.6.X के बाद से आप उपयोग करना चाहते हैं:
"my {0} string: {1}".format("cool", "Hello there!")
%
स्ट्रिंग प्रक्षेप के लिए ऑपरेटर 3.ththx में पदावनत नहीं किया गया है। docs.python.org/dev/py3k/whatsnew/…%
3.1 में शुरू करने की योजना की घोषणा करता है , लेकिन ऐसा कभी नहीं हुआ।
{}
मेरे लिए संख्या समाप्त हो सकती है।
मैंने इंटरपी पैकेज विकसित किया है , जो पायथन में स्ट्रिंग इंटरपोलेशन को सक्षम करता है ।
बस इसके माध्यम से स्थापित करें pip install interpy
। और फिर, # coding: interpy
अपनी फ़ाइलों की शुरुआत में लाइन जोड़ें !
उदाहरण:
#!/usr/bin/env python
# coding: interpy
name = "Spongebob Squarepants"
print "Who lives in a Pineapple under the sea? \n#{name}."
पायथन का स्ट्रिंग प्रक्षेप सी के प्रिंटफ () के समान है
अगर तुम कोशिश करो:
name = "SpongeBob Squarepants"
print "Who lives in a Pineapple under the sea? %s" % name
टैग %s
को name
वेरिएबल से बदल दिया जाएगा । आपको प्रिंट फ़ंक्शन टैग पर एक नज़र डालनी चाहिए : http://docs.python.org/library/functions.html
print "First is %s, second is %s" % (var1, var2)
:।
स्ट्रिंग इंटरपोल को PEP 498 में निर्दिष्ट के रूप में पायथन 3.6 के साथ शामिल किया जा रहा है । आप ऐसा करने में सक्षम होंगे:
name = 'Spongebob Squarepants'
print(f'Who lives in a Pineapple under the sea? \n{name}')
ध्यान दें कि मुझे Spongebob से नफरत है, इसलिए यह लिखना थोड़ा दर्दनाक था। :)
आप यह भी कर सकते हैं
name = "Spongebob Squarepants"
print "Who lives in a Pineapple under the sea? \n{name}.".format(name=name)
#
को मुद्रित करने का इरादा है । वे सिर्फ रूबी सिंटैक्स का उपयोग कर रहे हैं।
#
चरित्र मुद्रित होगा।
import inspect
def s(template, **kwargs):
"Usage: s(string, **locals())"
if not kwargs:
frame = inspect.currentframe()
try:
kwargs = frame.f_back.f_locals
finally:
del frame
if not kwargs:
kwargs = globals()
return template.format(**kwargs)
उपयोग:
a = 123
s('{a}', locals()) # print '123'
s('{a}') # it is equal to the above statement: print '123'
s('{b}') # raise an KeyError: b variable not found
पुनश्च: प्रदर्शन एक समस्या हो सकती है। यह स्थानीय स्क्रिप्ट के लिए उपयोगी है, उत्पादन लॉग के लिए नहीं।
दोहराए:
पुराने पायथन (2.4 पर परीक्षण) के लिए शीर्ष समाधान रास्ता बताता है। तुम यह केर सकते हो:
import string
def try_interp():
d = 1
f = 1.1
s = "s"
print string.Template("d: $d f: $f s: $s").substitute(**locals())
try_interp()
और आपको मिलता है
d: 1 f: 1.1 s: s
पायथन 3.6 और नए में एफ-स्ट्रिंग्स का उपयोग करके शाब्दिक स्ट्रिंग प्रक्षेप है :
name='world'
print(f"Hello {name}!")
name
स्ट्रिंग में एक स्थानीय वैरिएबल है, और पाइथन में आपको स्पष्ट रूप से स्थानीय वेरिएबल्स के शब्दकोश को स्ट्रिंग फॉर्मैटर में पास करना होगा यदि आप चाहते हैं कि यह उनका उपयोग करें।