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

طباعة جدول بشكل مرتب في بايثون

اسماء منصور

السؤال

Recommended Posts

  • 0

لمحاذاة الأعمدة في طباعة Python ، يمكنك استخدام طريقة format () كما يلي 

# print the table rows
for item in data:
    print("{:<15} {:<10} ${:<10,.2f}".format(item["Name"], item["Age"], item["Salary"]))

يجب أن الناتج كما يلي 

John Doe        25         $50,000.00 
Jane Smith      30         $60,000.00 
Bob Johnson     40         $70,000.00 

في هذا المثال، يتم استخدام طريقة format() لتنسيق رأس الجدول، الصفوف، والتذييل مع أعمدة مُحاذاة. يتم استخدام المحدد :<15 لمحاذاة العمود إلى اليسار بعرض 15 حرفًا، ويتم استخدام المحدد :<10 لمحاذاة عمود العمر إلى اليسار بعرض 10 حرفًا. يتم استخدام المحدد :${:<10,.2f} لتنسيق عمود الراتب كرقم عائم بـ 2 أرقام عشرية وإضافة فواصل لفصل الآلاف. يمكنك تعديل عرض ومحددي التنسيق حسب الحاجة الخاصة بك.

يمكنك استخدام الدالة format بما يناسب البرنامج لديك

تم التعديل في بواسطة عبدالباسط ابراهيم
خطأ إملائي
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك بالإضافة إلى ما ذكره زميلي استعمال مكتبات تضيف تنسيقاً أفضل من أي تنسيق يدوي.

مثلاً المكتبة tabulate تسهل عليك القيام بذلك، كمثال على ذلك:

from tabulate import tabulate

table = [['col 1', 'col 2', 'col 3', 'col 4'], [1, 2222, 30, 500], [4, 55, 6777, 1]]
print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))

و يكون الخرج كما يلي:

image.png.3e9bb398774fea35fb1f983193df65a6.png

يفضل دائماً استعمال طرق كهذه، حيث أنه في الطريقة اليدوية يجب علينا أن نعرف ما أقصى عدد من المحارف لقيمة في عمود ما، و هذا ليس دائماً ممكن.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لطباعة جدول بشكل مرتب في بايثون، هناك أكثر من طريقة يمكن استخدامها.

إحدى الطرق هي استخدام الوحدة tabulate

والتي تسمح بتنسيق البيانات في شكل جدولي بسهولة.لاستخدام هذه الوحدة، لاستخدام هذه الوحدة، يجب تثبيتها أولاً من خلال كتابه هذا الأمر في سطر الأوامر:

pip install tabulate

ثم يمكن استيرادها في البرنامج باستخدام الأمر:

from tabulate import tabulate

لطباعة جدول، يجب تحديد قائمة من القوائم تحتوي على البيانات، وتمريرها إلى دالة tabulate مع بعض المعاملات الاختيارية، مثل headers لتحديد عناوين الأعمدة، وtablefmt لتحديد شكل الجدول. مثال على ذلك:

# استيراد وحدة tabulate
from tabulate import tabulate

# تحديد قائمة من القوائم تحتوي على بيانات الطلاب
data = [
    ["Ahmed", 90, 85, 95],
    ["Fatima", 80, 75, 88],
    ["Ali", 92, 81, 89],
    ["Sara", 86, 79, 91]
]

# طباعة جدول باستخدام دالة tabulate
print(tabulate.tabulate(data, headers=["Name", "Math", "Science", "English"], tablefmt="grid"))

# ناتج الطباعة
+--------+------+---------+---------+
| Name   | Math | Science | English |
+========+======+=========+=========+
| Ahmed  |   90 |      85 |      95 |
+--------+------+---------+---------+
| Fatima |   80 |      75 |      88 |
+--------+------+---------+---------+
| Ali    |   92 |      81 |      89 |
+--------+------+---------+---------+
| Sara   |   86 |      79 |      91 |
+--------+------+---------+---------+

طريقة أخرى لطباعة جدول بشكل مرتب في بايثون هي استخدام وحدة prettytable

والتي توفر كلاس PrettyTable لإنشاء وتنسيق جداول,لاستخدام هذه الوحدة، يجب تثبيتها أولاً من خلال كتابه هذا الأمر في سطر الأوامر:

pip install prettytable

ثم يمكن استيرادها في البرنامج باستخدام الأمر:

from prettytable import PrettyTable

لطباعة جدول، يجب إنشاء كائن من كلاس PrettyTable، وإضافة عناوين الأعمدة باستخدام خاصية field_names، وإضافة صفوف البيانات باستخدام دالة add_row أو add_rows. مثال على ذلك:

# استيراد وحدة prettytable
from prettytable import PrettyTable

# إنشاء كائن من كلاس PrettyTable
table = PrettyTable()

# إضافة عناوين الأعمدة
table.field_names = ["Name", "Math", "Science", "English"]

# إضافة صفوف البيانات
table.add_row(["Ahmed", 90, 85, 95])
table.add_row(["Fatima", 80, 75, 88])
table.add_row(["Ali", 92, 81, 89])
table.add_row(["Sara", 86, 79, 91])

#طباعة الجدول باستخدام الكائن table
print(table)

# ناتج الطباعة
+--------+------+---------+---------+
|  Name  | Math | Science | English |
+--------+------+---------+---------+
| Ahmed  |  90  |    85   |    95   |
| Fatima |  80  |    75   |    88   |
|  Ali   |  92  |    81   |    89   |
|  Sara  |  86  |    79   |    91   |
+--------+------+---------+---------+
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...