পাইথনের স্ট্রিংগুলিতে বুলিয়ানগুলি কীভাবে ফর্ম্যাট করা হয়?


170

আমি দেখতে পাচ্ছি যে আমি করতে পারি না:

"%b %b" % (True, False)

পাইথনে। আমি %bবি (অলিয়ান) এর জন্য অনুমান করেছি । এরকম কিছু আছে কি?


1
আপনি ফলাফলটি কী চান? সত্য এবং মিথ্যা? আপনি তখন '% s' চান। % বি, যখন এটি বিদ্যমান থাকে তখন বাইনারি হয় (বেস -২ হিসাবে)।
থমাস ওয়াউটারস

1
হ্যাঁ হ্যা! "% s" ঠিকঠাক কাজ করছে বলে মনে হচ্ছে। এই প্রশ্নের উত্তর দিন এবং একটি উত্তর দেওয়া উত্তর। আমি "% s"% str (মিথ্যা) করতাম। আমার লজ্জা করুন :)
জুয়ানজো কন্টি

3
সম্পর্কিত ডকুমেন্টেশনের লিঙ্ক: docs.python.org/library/…
যান্ত্রিক_মেট

উত্তর:


247
>>> print "%r, %r" % (True, False)
True, False

এটি বুলিয়ান মানগুলির সাথে সুনির্দিষ্ট নয় - আর্গুমেন্টে পদ্ধতিটিকে %rকল করে __repr__%s(জন্য str) কাজ করা উচিত।


2
মধ্যে প্রধান পার্থক্য কি %rএবং %s?
অ্যালস্টন

22
আমার সবসময় মনে মনে এই বিকৃতি ছিল, তবে আমি ভুল হলে আমাকে সংশোধন করি। % s (এবং এভাবে স্ট্র ()) মানুষের পক্ষে যতটা সম্ভব ট্রান্সপার্যান্ট করে অবজেক্টটি উপস্থাপন করার লক্ষ্য। % r (এবং এভাবে repr ()) অজগরটির পক্ষে যতটা সম্ভব ট্রান্সপার্যান্টলি অবজেক্টটি উপস্থাপন করার লক্ষ্য। উদাহরণস্বরূপ, print(str("foo"))কেবলমাত্র fooনতুন লাইনে মুদ্রণ করা। print(repr("foo"))তবে 'foo'উদ্ধৃতি সহ একটি নতুন লাইনে মুদ্রণ করে, যেহেতু পাইথনটিতে যুক্তির সাথে সম্পর্কিত বস্তুটি পেতে আপনাকে পাইথন ইন্টারপ্রেটারে টাইপ করতে হবে।
ববিস্মিজন্নাম

66

আপনি যদি True Falseব্যবহার করতে চান :

"%s %s" % (True, False)

কারণ str(True)হল 'True'এবং str(False)হল 'False'

বা আপনি যদি 1 0ব্যবহার করতে চান :

"%i %i" % (True, False)

কারণ int(True)হল 1এবং int(False)হল 0


18

আপনি স্ট্রিংয়ের ফর্ম্যাটর ক্লাসও ব্যবহার করতে পারেন

print "{0} {1}".format(True, False);
print "{0:} {1:}".format(True, False);
print "{0:d} {1:d}".format(True, False);
print "{0:f} {1:f}".format(True, False);
print "{0:e} {1:e}".format(True, False);

এগুলি ফলাফল

True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00

কিছু- %ফর্ম্যাট ধরণের স্পেসিফায়ার ( %r, %i) উপলভ্য নয়। বিশদের জন্য ফর্ম্যাট নির্দিষ্টকরণ মিনি-ভাষা দেখুন


4
নোট করুন যে বিন্যাসের বিকল্পগুলি যুক্ত করা এটিকে স্ক্রু করতে পারে। উদাহরণস্বরূপ আপনি বুলিয়ান না থাকলে আপনি {:_^5}পাবেন । '__1__'str(...)
মাইকেল -

2
আপনি করতে পারেন কাছাকাছি পেতে টাইপ ধর্মান্তর সঙ্গে সমস্যা মত !s: '{!s:_^5}'.format(True)হয়'True_'
মাইকেল - কোথায় ক্লে Shirky এর

4

পাইথন -3 এর জন্য এটি আপডেট করতে আপনি এটি করতে পারেন

"{} {}".format(True, False)

তবে আপনি যদি প্রকৃতপক্ষে স্ট্রিংটি ফর্ম্যাট করতে চান (উদাহরণস্বরূপ সাদা স্থান যুক্ত করুন), আপনি পাইথনকে অন্তর্নিহিত সি মান (অর্থাত্ কোনও আন্ত) এর মধ্যে বুলিয়ানটি ingালাইয়ের মুখোমুখি হন eg

>>> "{:<8} {}".format(True, False)
'1        False'

এটি পেতে আপনি Trueএকটি স্ট্রিং হিসাবে কাস্ট করতে পারেন , যেমন

>>> "{:<8} {}".format(str(True), False)
'True     False'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.