পাইথনে স্ট্রিংয়ে সংখ্যার ফর্ম্যাট করুন


112

সংখ্যাগুলি স্ট্রিং হিসাবে ফর্ম্যাট করতে হবে তা খুঁজে বের করতে হবে। আমার কোড এখানে:

return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm

ঘন্টা এবং মিনিটগুলি পূর্ণসংখ্যা এবং সেকেন্ডে একটি ভাসা। str () ফাংশন এই সমস্ত সংখ্যাকে দশম (0.1) জায়গায় রূপান্তর করবে। সুতরাং আমার স্ট্রিং "5: 30: 59.07 pm" আউটপুট না করে এটি "5.0: 30.0: 59.1 pm" এর মতো কিছু প্রদর্শন করবে।

নীচে লাইন, আমার জন্য এটি করার জন্য কোন লাইব্রেরি / ক্রিয়াকলাপটি দরকার?

উত্তর:


138

পাইথন ৩.6 দিয়ে শুরু করে পাইথনে ফরম্যাটিং ফর্ম্যাট করা স্ট্রিং লিটারেল বা এফ-স্ট্রিং ব্যবহার করে করা যেতে পারে :

hours, minutes, seconds = 6, 56, 33
f'{hours:02}:{minutes:02}:{seconds:02} {"pm" if hours > 12 else "am"}'

বা str.format2.7 দিয়ে শুরু হওয়া ফাংশন:

"{:02}:{:02}:{:02} {}".format(hours, minutes, seconds, "pm" if hours > 12 else "am")

অথবা পাইথনের এমনকি পুরানো সংস্করণগুলির জন্য স্ট্রিং ফর্ম্যাটিং %অপারেটর , তবে নথিতে নোটটি দেখুন:

"%02d:%02d:%02d" % (hours, minutes, seconds)

এবং আপনার নির্দিষ্ট সময়ের বিন্যাসের ক্ষেত্রে এখানে রয়েছে time.strftime:

import time

t = (0, 0, 0, hours, minutes, seconds, 0, 0, 0)
time.strftime('%I:%M:%S %p', t)

96

পাইথন ২.6 থেকে শুরু করে একটি বিকল্প রয়েছে: str.format()পদ্ধতি। বিদ্যমান স্ট্রিং ফর্ম্যাট অপারেটর ( %) ব্যবহার করে এখানে কয়েকটি উদাহরণ দেওয়া হল :

>>> "Name: %s, age: %d" % ('John', 35) 
'Name: John, age: 35' 
>>> i = 45 
>>> 'dec: %d/oct: %#o/hex: %#X' % (i, i, i) 
'dec: 45/oct: 055/hex: 0X2D' 
>>> "MM/DD/YY = %02d/%02d/%02d" % (12, 7, 41) 
'MM/DD/YY = 12/07/41' 
>>> 'Total with tax: $%.2f' % (13.00 * 1.0825) 
'Total with tax: $14.07' 
>>> d = {'web': 'user', 'page': 42} 
>>> 'http://xxx.yyy.zzz/%(web)s/%(page)d.html' % d 
'http://xxx.yyy.zzz/user/42.html' 

এখানে সমমানের স্নিপেটগুলি কিন্তু ব্যবহার করা হচ্ছে str.format():

>>> "Name: {0}, age: {1}".format('John', 35) 
'Name: John, age: 35' 
>>> i = 45 
>>> 'dec: {0}/oct: {0:#o}/hex: {0:#X}'.format(i) 
'dec: 45/oct: 0o55/hex: 0X2D' 
>>> "MM/DD/YY = {0:02d}/{1:02d}/{2:02d}".format(12, 7, 41) 
'MM/DD/YY = 12/07/41' 
>>> 'Total with tax: ${0:.2f}'.format(13.00 * 1.0825) 
'Total with tax: $14.07' 
>>> d = {'web': 'user', 'page': 42} 
>>> 'http://xxx.yyy.zzz/{web}/{page}.html'.format(**d) 
'http://xxx.yyy.zzz/user/42.html'

পাইথন ২.6++ এর মতো সমস্ত পাইথন 3 রিলিজ (এখনও অবধি) উভয় কীভাবে করতে হয় তা বোঝে। আমি নির্লজ্জভাবে এই জিনিসটি আমার হার্ড পাইথন ইন্ট্রো বই থেকে সরাসরি বের করে দিয়েছি এবং সময়-সময় আমি প্রস্তাবিত ইন্ট্রো + ইন্টারমিডিয়েট পাইথন কোর্সের স্লাইডগুলি ।:-)

আগস্ট 2018 আপডেট : অবশ্যই, এখন আমরা আছে 3.6 মধ্যে F-স্ট্রিং বৈশিষ্ট্য , আমরা সমতুল্য উদাহরণ প্রয়োজন যে হ্যাঁ আরেকটি বিকল্প:

>>> name, age = 'John', 35
>>> f'Name: {name}, age: {age}'
'Name: John, age: 35'

>>> i = 45
>>> f'dec: {i}/oct: {i:#o}/hex: {i:#X}'
'dec: 45/oct: 0o55/hex: 0X2D'

>>> m, d, y = 12, 7, 41
>>> f"MM/DD/YY = {m:02d}/{d:02d}/{y:02d}"
'MM/DD/YY = 12/07/41'

>>> f'Total with tax: ${13.00 * 1.0825:.2f}'
'Total with tax: $14.07'

>>> d = {'web': 'user', 'page': 42}
>>> f"http://xxx.yyy.zzz/{d['web']}/{d['page']}.html"
'http://xxx.yyy.zzz/user/42.html'

8

পাইথন 2.6+

format()ফাংশনটি ব্যবহার করা সম্ভব , তাই আপনার ক্ষেত্রে আপনি ব্যবহার করতে পারেন:

return '{:02d}:{:02d}:{:.2f} {}'.format(hours, minutes, seconds, ampm)

এই ফাংশনটি ব্যবহারের একাধিক উপায় রয়েছে, সুতরাং আরও তথ্যের জন্য আপনি ডকুমেন্টেশন চেক করতে পারেন ।

পাইথন ৩.6++

এফ-স্ট্রিংগুলি একটি নতুন বৈশিষ্ট্য যা পাইথন ৩.6-এ ভাষাতে যুক্ত করা হয়েছে। এটি কুখ্যাতভাবে ফর্ম্যাট করার স্ট্রিংগুলিকে সহায়তা করে:

return f'{hours:02d}:{minutes:02d}:{seconds:.2f} {ampm}'


1

পছন্দসই কার্যকারিতা অর্জনের জন্য আপনি নিম্নলিখিতগুলি ব্যবহার করতে পারেন

"%d:%d:d" % (hours, minutes, seconds)

1

পাইথন কোনও স্ট্রিংগুলিতে স্বীকৃতি দেওয়ার জন্য আপনি str.format () ব্যবহার করতে পারেন।


0

পূর্ণসংখ্যার অজগরে str () কোনও দশমিক স্থান মুদ্রণ করবে না

দশমিক অংশটি আপনি অগ্রাহ্য করতে চান এমন একটি ভাসা যদি থাকে তবে আপনি str (int (floatValue)) ব্যবহার করতে পারেন।

সম্ভবত নিম্নলিখিত কোডটি প্রদর্শিত হবে:

>>> str(5)
'5'
>>> int(8.7)
8

0

দশমিকের অন্তর্ভুক্ত যদি আপনার একটি মান থাকে তবে দশমিক মানটি নগন্য (যেমন: 100.0) এবং এটির চেষ্টা করার চেষ্টা করলে আপনি একটি ত্রুটি পাবেন। এটি নির্বোধ বলে মনে হচ্ছে, তবে কলিং ফ্লোটটি প্রথমে এটি ঠিক করে।

Str (INT (ভাসা ([পরিবর্তনশীল])))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.