تحويل الحروف إلى أرقام باستخدام دالة ord() في Python

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 21 سبتمبر 2024

محتوى المقال

تحويل الحروف إلى أرقام باستخدام دالة ord() في Python

تُعد دالة ord() في لغة Python إحدى الدوال المدمجة التي تُستخدم لتحويل الحروف إلى الأرقام المقابلة لها في جدول الترميز ASCII أو Unicode. يُستخدم هذا النوع من التحويل لفهم التمثيل الرقمي للحروف، الرموز، أو حتى الأرقام النصية. في هذا المقال، سنتناول كيفية استخدام دالة ord() لتحويل الحروف إلى أرقام، مع توضيح أمثلة عملية.

ما هي دالة ord()؟

دالة ord() هي دالة مدمجة في Python تُستخدم لتحويل حرف واحد (سواء كان حرفًا أو رقمًا أو رمزًا) إلى الرقم المقابل له في جدول ASCII أو Unicode. يتيح لك هذا التمثيل الرقمي التعامل مع الحروف كأرقام، مما يوفر مرونة في معالجة النصوص والبيانات المشفرة.

على سبيل المثال، الحرف "A" يُمثل الرقم 65 في جدول ASCII، بينما الحرف "a" يُمثل الرقم 97. من خلال دالة ord()، يمكنك بسهولة معرفة هذا التمثيل الرقمي لأي حرف.

أبسط استخدام لدالة ord()

لنبدأ بمثال بسيط لتحويل الحرف "A" إلى الرقم المقابل له باستخدام دالة ord():

char = 'A'
ascii_value = ord(char)
print(ascii_value)
# الناتج: 65

في هذا المثال، تُرجع الدالة ord('A') الرقم 65، وهو التمثيل الرقمي للحرف "A" في جدول ASCII.

فهم ترميز ASCII

جدول ASCII (American Standard Code for Information Interchange) هو معيار قديم يُستخدم لتمثيل الحروف والرموز باستخدام أرقام. كل حرف أو رمز في جدول ASCII له رقم فريد يعبر عنه. على سبيل المثال:

  • 65: الحرف "A"
  • 66: الحرف "B"
  • 97: الحرف "a"
  • 98: الحرف "b"
  • 48: الرقم "0"
  • 49: الرقم "1"

دالة ord() تعتمد على هذه الأرقام لتقديم التمثيل الرقمي للحرف أو الرمز المُدخل.

أمثلة على استخدام ord() مع الحروف الكبيرة والصغيرة

لنقم بتطبيق بعض الأمثلة التي توضح كيفية استخدام ord() لتحويل الحروف الكبيرة والصغيرة إلى أرقام:

مثال: تحويل الحروف الكبيرة إلى أرقام

ascii_A = ord('A')
ascii_B = ord('B')
print(ascii_A, ascii_B)
# الناتج: 65 66

في هذا المثال، تم تحويل الحرفين "A" و "B" إلى الأرقام 65 و66 على التوالي.

مثال: تحويل الحروف الصغيرة إلى أرقام

ascii_a = ord('a')
ascii_b = ord('b')
print(ascii_a, ascii_b)
# الناتج: 97 98

في هذا المثال، تم تحويل الحرفين "a" و "b" إلى الأرقام 97 و98 على التوالي.

استخدام ord() مع الأرقام النصية والرموز

لا تقتصر دالة ord() على تحويل الحروف فقط، بل يمكنها أيضًا تحويل الأرقام النصية والرموز إلى أرقام ASCII. على سبيل المثال:

مثال: تحويل الأرقام النصية إلى ASCII

ascii_0 = ord('0') # الرقم "0" النصي
ascii_1 = ord('1') # الرقم "1" النصي
print(ascii_0, ascii_1)
# الناتج: 48 49

في هذا المثال، تم تحويل الرقمين النصيين "0" و"1" إلى الأرقام 48 و49 في جدول ASCII.

مثال: تحويل الرموز إلى ASCII

ascii_dollar = ord('$')
ascii_star = ord('*')
print(ascii_dollar, ascii_star)
# الناتج: 36 42

في هذا المثال، تم تحويل الرمزين "$" و"*" إلى الأرقام 36 و42 في جدول ASCII.

الجمع بين ord() و chr()

في Python، هناك دالة أخرى تُسمى chr() تقوم بالعكس تمامًا لما تفعله ord(). بينما تقوم ord() بتحويل الحروف إلى أرقام، تقوم chr() بتحويل الأرقام إلى الحروف المقابلة لها. يمكن الجمع بينهما لتنفيذ عمليات معقدة على الحروف والأرقام.

مثال: تحويل الحروف إلى أرقام ثم إعادتها إلى حروف

char = 'A'
ascii_value = ord(char)
back_to_char = chr(ascii_value)
print(ascii_value) # الناتج: 65
print(back_to_char) # الناتج: A

في هذا المثال، قمنا أولاً بتحويل الحرف "A" إلى رقمه المقابل باستخدام ord()، ثم استخدمنا chr() لإعادة الرقم إلى الحرف الأصلي.

تحويل سلسلة نصية كاملة إلى أرقام باستخدام ord()

يمكن استخدام ord() لتحويل سلسلة نصية كاملة إلى أرقام ASCII. في هذه الحالة، نحتاج إلى استخدام الحلقات أو الفهم القائم على القوائم.

مثال: تحويل سلسلة نصية إلى أرقام ASCII

text = "Hello"
ascii_values = [ord(char) for char in text]
print(ascii_values)
# الناتج: [72, 101, 108, 108, 111]

في هذا المثال، قمنا بتحويل كل حرف من السلسلة النصية "Hello" إلى الرقم المقابل له في جدول ASCII باستخدام ord().

تحويل قائمة من الأرقام إلى حروف باستخدام chr()

بعد تحويل السلسلة النصية إلى أرقام، يمكنك بسهولة إعادة تحويلها إلى حروف باستخدام chr(). لنرى مثالاً على ذلك:

ascii_values = [72, 101, 108, 108, 111]
chars = [chr(num) for num in ascii_values]
print(''.join(chars))
# الناتج: Hello

في هذا المثال، تم إعادة تحويل الأرقام إلى حروف باستخدام chr()، ومن ثم قمنا بدمج الحروف معًا للحصول على السلسلة النصية "Hello".

حدود استخدام دالة ord()

تعمل دالة ord() فقط مع حرف واحد. إذا حاولت تمرير سلسلة نصية تحتوي على أكثر من حرف، ستظهر رسالة خطأ. دعونا نرى مثالاً على ذلك:

مثال: استخدام ord() مع سلسلة نصية تحتوي على أكثر من حرف

try:
    ascii_value = ord("Hello")
except TypeError as e:
    print(e) # الناتج: ord() expected a character, but string of length 5 found

كما ترى، تظهر رسالة خطأ لأن ord() لا تقبل سوى حرف واحد.

الخلاصة

تُعد دالة ord() في Python أداة قوية لتحويل الحروف إلى أرقام بناءً على ترميز ASCII أو Unicode. من خلال فهم كيفية عمل ord() والجمع بينها وبين دالة chr()، يمكنك بسهولة التعامل مع النصوص والرموز بمرونة وكفاءة. سواء كنت تعمل على تحليل النصوص أو ترميز البيانات، فإن دالة ord() تُعتبر جزءًا مهمًا من الأدوات التي تقدمها Python.

طور مهاراتك: مقالات يجب قراءتها في البرمجة