রুবি উদাহরণ:
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}."
পাইথনের সফল স্ট্রিং কনটেন্টেশনটি আমার কাছে আপাতদৃষ্টিতে ভার্জোজ।
উত্তর:
পাইথন ৩.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
রূপান্তর ধরণের হিসাবে একটি ব্যবহার করতে পারেন - পাইথন প্রায় কোনও কিছুকে স্ট্রিতে রূপান্তর করতে পারে। তবে অবশ্যই আপনি অন্যান্য রূপান্তর ধরণের বিশেষ বিন্যাসের ক্ষমতা হারাবেন।
পাইথন ২.6. এক্স থেকে আপনি সম্ভবত এটি ব্যবহার করতে চান:
"my {0} string: {1}".format("cool", "Hello there!")
%
স্ট্রিং ক্ষেপক জন্য অপারেটর হয় না পাইথন 3.x. উঠিয়ে docs.python.org/dev/py3k/whatsnew/…%
৩.১ থেকে শুরু করে অবমূল্যায়নের পরিকল্পনা ঘোষণা করে , তবে এটি কখনও ঘটেনি।
{}
আমাকে দূর করতে পারে।
আমি ইন্টারপি প্যাকেজটি তৈরি করেছি , এটি পাইথনে স্ট্রিং ইন্টারপোলেশন সক্ষম করে ।
কেবল এটির মাধ্যমে ইনস্টল করুন 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/function.html
print "First is %s, second is %s" % (var1, var2)
।
স্ট্রিং ইন্টারপোলেশন পিইপি 498-তে উল্লিখিত পাইথন 3.6 এর সাথে অন্তর্ভুক্ত হতে চলেছে । আপনি এটি করতে সক্ষম হবেন:
name = 'Spongebob Squarepants'
print(f'Who lives in a Pineapple under the sea? \n{name}')
নোট করুন যে আমি স্পঞ্জববকে ঘৃণা করি তাই এটি লেখা কিছুটা বেদনাদায়ক ছিল। :)
আপনি এই পেতে পারেন
name = "Spongebob Squarepants"
print "Who lives in a Pineapple under the sea? \n{name}.".format(name=name)
#
মুদ্রিত হবে intended তারা কেবল রুবি সিনট্যাক্স ব্যবহার করছে।
#
চরিত্রটি মুদ্রিত হবে।
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
PS: কর্মক্ষমতা একটি সমস্যা হতে পারে। এটি স্থানীয় স্ক্রিপ্টগুলির জন্য দরকারী, উত্পাদন লগগুলির জন্য নয়।
অনুরূপ করা:
পুরানো পাইথনের জন্য (২.৪-তে পরীক্ষিত) শীর্ষ সমাধানটি নির্দেশ করে। তুমি এটি করতে পারো:
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
পাইথন ৩.6 এবং আরও নতুনতে এফ-স্ট্রিংগুলি ব্যবহার করে আক্ষরিক স্ট্রিং ইন্টারপোলেশন রয়েছে :
name='world'
print(f"Hello {name}!")
name
স্ট্রিংয়ে থাকা একটি স্থানীয় ভেরিয়েবল এবং পাইথনে আপনাকে স্পষ্টভাবে স্থানীয় ভেরিয়েবলের অভিধানটি স্ট্রিং ফর্ম্যাটারে দিতে হবে যদি আপনি এটি ব্যবহার করতে চান।