اذهب إلى المحتوى

السؤال

نشر

أريد أن أقوم بطباعة الأرقام الكبيرة (أكبر من 999) بعلامة الفاصلة comma بين كل ثلاثة أرقام، على سبيل المثال الرقم 123456789 يصبح 123,456,789 مع العلم أن هذه أرقام وليست نصوص، حاولت تحويل الأرقام إلى نصوص ثم تقسيم هذا النص إلى أجزاء وإعادة دمجها ولكن أعتقد أن هناك طريقة أسهل وأسرع للقيام بهذا الأمر

Recommended Posts

  • 2
نشر (معدل)

يمكنك القيام بذلك من خلال التابع format في المكتبة locale كالتالي:

import locale
locale.format("%d", 123456789 , grouping=True)# '123,456,789'

أو باستخدام التعابير المنطقية من مكتبة regex:

import re
re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1,", "%d" % 123456789) # '123,456,789'

أوكما أشار الأستاذ سمير في إجابته:

x=123456789
'{:0,.2f}'.format(x) # '123,456,789.00'

يمكنك أيضاً القيام بذلك بشكل يدوي  من خلال التابع التالي:

def sp(x):
    l = []
    g = '%d' % x
    while g and g[-1].isdigit():
        l.append(g[-3:])
        g = g[:-3]
    return g + ','.join(reversed(l))
sp(123456789) # '123,456,789'

 

تم التعديل في بواسطة Ali Haidar Ahmad
  • 0
نشر (معدل)

بالطبع يمكنك استخدام

 '{:,}'.format(n)

كما في التعليقات السابقة ولكن هناك صيغة أخرى لدالة format وهي كالتالي

value = 1000000
print (format (value, ',d')) 
# كالتالي  f ب d  استبدل ال  float إذا كان الرقم   

value = 1000000.30
print (format (value, ',2f')) #2f  رقمين فقط بعد العلامة  

يمكنك القراءة أكثر عن الدالة format من موسوعة حسوب

تم التعديل في بواسطة عبدالباسط ابراهيم
إضافة بعض المعلومات

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...