আমি পাইথন 2 এ এটি করি:
"(%d goals, $%d)" % (self.goals, self.penalties)
এর পাইথন 3 সংস্করণটি কী?
আমি অনলাইনে উদাহরণগুলি অনুসন্ধান করার চেষ্টা করেছি তবে পাইথন 2 সংস্করণ পেয়েছি।
আমি পাইথন 2 এ এটি করি:
"(%d goals, $%d)" % (self.goals, self.penalties)
এর পাইথন 3 সংস্করণটি কী?
আমি অনলাইনে উদাহরণগুলি অনুসন্ধান করার চেষ্টা করেছি তবে পাইথন 2 সংস্করণ পেয়েছি।
উত্তর:
এখানে "নতুন" ফর্ম্যাট সিনট্যাক্স সম্পর্কে ডকস রয়েছে । একটি উদাহরণ হবে:
"({:d} goals, ${:d})".format(self.goals, self.penalties)
যদি উভয়ই হয় goalsএবং penaltiesপূর্ণসংখ্যা হয় (যেমন তাদের ডিফল্ট ফর্ম্যাটটি ঠিক আছে) তবে এটি সংক্ষিপ্ত করা যেতে পারে:
"({} goals, ${})".format(self.goals, self.penalties)
এবং যেহেতু প্যারামিটারগুলি ক্ষেত্র self, তাই এটির একটি উপায়ও দুবার ব্যবহার করার একটি উপায় রয়েছে (যেমন @ বুরহান খালিদ মন্তব্যগুলিতে উল্লেখ করেছেন):
"({0.goals} goals, ${0.penalties})".format(self)
ব্যাখ্যা করে:
{} ডিফল্ট ফর্ম্যাট সহ কেবলমাত্র পরবর্তী অবস্থানগত যুক্তি;{0}0ডিফল্ট বিন্যাস সহ সূচকের সাথে যুক্তির অর্থ ;{:d} দশমিক পূর্ণসংখ্যার বিন্যাস সহ পরবর্তী অবস্থানগত যুক্তি;{0:d}0দশমিক পূর্ণসংখ্যার বিন্যাস সহ সূচকের সাথে যুক্তি ।যুক্তি বাছাই করার সময় আপনি আরও অনেক কিছু করতে পারেন (অবস্থানিকদের পরিবর্তে নামযুক্ত যুক্তি ব্যবহার করা, ক্ষেত্রগুলি অ্যাক্সেস করা ইত্যাদি) এবং অনেকগুলি বিন্যাসের বিকল্পগুলি (সংখ্যাটি প্যাডিং, হাজার হাজার পৃথককারী ব্যবহার করে, চিহ্ন বা না দেখানো ইত্যাদি) আরও কয়েকটি উদাহরণ:
"({goals} goals, ${penalties})".format(goals=2, penalties=4)
"({goals} goals, ${penalties})".format(**self.__dict__)
"first goal: {0.goal_list[0]}".format(self)
"second goal: {.goal_list[1]}".format(self)
"conversion rate: {:.2f}".format(self.goals / self.shots) # '0.20'
"conversion rate: {:.2%}".format(self.goals / self.shots) # '20.45%'
"conversion rate: {:.0%}".format(self.goals / self.shots) # '20%'
"self: {!s}".format(self) # 'Player: Bob'
"self: {!r}".format(self) # '<__main__.Player instance at 0x00BF7260>'
"games: {:>3}".format(player1.games) # 'games: 123'
"games: {:>3}".format(player2.games) # 'games: 4'
"games: {:0>3}".format(player2.games) # 'games: 004'
দ্রষ্টব্য: অন্যরা যেমন উল্লেখ করেছে, নতুন ফর্ম্যাটটি পূর্বেরটিকে ছাপিয়ে যায় না, উভয়ই পাইথন 3 এবং পাইথন 2-র নতুন সংস্করণ উভয়ই উপলভ্য। কেউ কেউ বলতে পারে এটি পছন্দের বিষয়, তবে আইএমএইচও নতুন প্রবীণদের চেয়ে অনেক বেশি ভাববাদী, এবং যখনই নতুন কোড লেখেন তখনই ব্যবহার করা উচিত (যদি না এটি পুরানো পরিবেশকে লক্ষ্য করে না হয়)।
"({0.goals} goals, ${0.penalties})".format(self)
"conversion rate: {:.2%}".format(self.goals / self.shots)? এটি যেমন আমার পক্ষে ঠিক তেমন কাজ করে ... (পাইথন ৩.৪) নোট করুন যে এতে কোনও নেই f, আমি ভাসমান পয়েন্ট নম্বর হিসাবে নয়, শতাংশ হিসাবে ফরম্যাট করতে বলছি।
"{:.2f}%".format(float_num)উভয় জন্য সূক্ষ্ম কাজ করে।
$এর কোনও বিশেষ অর্থ নেই, পুরানো ফর্ম্যাট সিনট্যাক্সে বা নতুনতেও নয়, এইভাবে উত্পন্ন স্ট্রিংটিতে উপস্থিত হওয়া উচিত, অপরিবর্তিত।
পাইথন 3.6 এখন পিইপি 498 এর সাথে শর্টহ্যান্ডের আক্ষরিক স্ট্রিং ইন্টারপোলেশন সমর্থন করে । আপনার ব্যবহারের ক্ষেত্রে, নতুন বাক্য গঠনটি কেবলমাত্র:
f"({self.goals} goals, ${self.penalties})"
এই পূর্ববর্তী অনুরূপ .formatমান, কিন্তু এক সহজে জিনিস করতে দেয় মত :
>>> width = 10
>>> precision = 4
>>> value = decimal.Decimal('12.34567')
>>> f'result: {value:{width}.{precision}}'
'result: 12.35'
পাইথন 3-তে সেই লাইনটি কাজ করে।
>>> sys.version
'3.2 (r32:88445, Oct 20 2012, 14:09:29) \n[GCC 4.5.2]'
>>> "(%d goals, $%d)" % (self.goals, self.penalties)
'(1 goals, $2)'
আমি এই পদ্ধতির পছন্দ
my_hash = {}
my_hash["goals"] = 3 #to show number
my_hash["penalties"] = "5" #to show string
print("I scored %(goals)d goals and took %(penalties)s penalties" % my_hash)
বন্ধনীগুলিতে যথাক্রমে সংযুক্ত ডি এবং এস নোট করুন।
আউটপুট হবে:
I scored 3 goals and took 5 penalties