في Python كيف يمكنني تحويل رقم رقم واحد إلى سلسلة أرقام مزدوجة؟

StackOverflow https://stackoverflow.com/questions/3505831

  •  29-09-2019
  •  | 
  •  

سؤال

لذلك قل لدي

أ = 5

أريد طباعته كسلسلة "05"

هل كانت مفيدة؟

المحلول

print "%02d"%a هو البديل Python 2

يستخدم Python 3 نظام تنسيق أكثر مطولًا إلى حد ما:

"{0:0=2d}".format(a)

رابط DOC ذي الصلة لـ Python2 هو: http://docs.python.org/2/library/string.html#format-specification-mini-language

بالنسبة لـ Python3 ، إنه http://docs.python.org/3/library/string.html#string-formatting

نصائح أخرى

a = 5
print '%02d' % a
# output: 05

يتم استدعاء مشغل "٪" تنسيق السلسلة المشغل عند استخدامه مع سلسلة على الجانب الأيسر. '%d' هو رمز التنسيق لطباعة رقم عدد صحيح (ستحصل على خطأ في النوع إذا لم تكن القيمة رقمية). مع '%2d يمكنك تحديد الطول ، و '%02d' يمكن استخدامها لتعيين حرف الحشو على 0 بدلاً من المساحة الافتراضية.

>>> print '{0}'.format('5'.zfill(2))
05

اقرأ أكثر هنا.

>>> a=["%02d" % x for x in range(24)]
>>> a
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
>>> 

هذا بسيط

في Python3 ، يمكنك:

print("%02d" % a)

التفرع من إجابة محمد:

str_years = [x for x in range(24)]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

#Or, if you're starting with ints:
int_years = [int(x) for x in str_years]

#Formatted here
form_years = ["%02d" % x for x in int_years]

print(form_years)
#['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']

df["col_name"].str.rjust(4,'0')#(length of string,'value') --> ValueXXX --> 0XXX  
df["col_name"].str.ljust(4,'0')#(length of string,'value') --> XXXValue --> XXX0
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top