في هذا الدرس، سنتعلم كيفية تحويل سلسلة بيانات Python إلى عدد صحيح وعدد صحيح إلى سلسلة بيانات في Python. في الدرس السابق، تعلمنا حول وظيفة إضافة عنصر إلى قائمة Python.
تحويل سلسلة بيانات Python إلى عدد صحيح
إذا قرأت دروسنا السابقة، فقد تلاحظ أننا استخدمنا هذا التحويل في بعض الأحيان. في الواقع، هذا ضروري في العديد من الحالات. على سبيل المثال، إذا كنت تقرأ بعض البيانات من ملف، فسيكون في تنسيق سلسلة بيانات وسيتعين عليك تحويل السلسلة إلى عدد صحيح. الآن، سننتقل مباشرةً إلى الشفرة. إذا كنت ترغب في تحويل رقم يتم تمثيله في صورة سلسلة بيانات إلى عدد صحيح، يجب عليك استخدام وظيفة int()
للقيام بذلك. راجع المثال التالي:
num = '123' # string data
# قم بطباعة النوع
print('Type of num is :', type(num))
# قم بالتحويل باستخدام int()
num = int(num)
# قم بطباعة النوع again
print('Now, type of num is :', type(num))
سيكون ناتج الشفرة التالية
Type of num is : <class 'str'>
Now, type of num is : <class 'int'>

تحويل سلسلة بيانات إلى عدد صحيح من قاعدة مختلفة
إذا كانت السلسلة التي تريد تحويلها إلى عدد صحيح تنتمي إلى قاعدة عددية مختلفة عن القاعدة 10، يمكنك تحديد القاعدة للتحويل. ولكن تذكر أن العدد الصحيح الناتج دائمًا في القاعدة 10. شيء آخر يجب أن تتذكره هو أن القاعدة المعطاة يجب أن تكون بين 2 و 36. انظر إلى المثال التالي لفهم التحويل من سلسلة إلى عدد صحيح باستخدام القاعدة.
num = '123'
# اطبع السلسلة الأصلية
print('The original string :', num)
# بالنظر إلى '123' في القاعدة 10، قم بتحويلها إلى القاعدة 10
print('Base 10 to base 10:', int(num))
# بالنظر إلى '123' في القاعدة 8، قم بتحويلها إلى القاعدة 10
print('Base 8 to base 10 :', int(num, base=8))
# بالنظر إلى '123' في القاعدة 6، قم بتحويلها إلى القاعدة 10
print('Base 6 to base 10 :', int(num, base=6))
سيكون الإخراج من الكود التالي

قيمة الخطأ عند تحويل السلسلة إلى عدد صحيح
أثناء تحويل السلسلة إلى عدد صحيح، قد تحدث استثناء ValueError
. يحدث هذا الاستثناء إذا لم تُمثل السلسلة التي تريد تحويلها أي أرقام. لنفترض أنك تريد تحويل عددٍ عشري عشري إلى عدد صحيح، لكنك لم تمرر الوسيط base=16 في وظيفة int(). سيثير هذا استثناء ValueError
إذا كان هناك أي رقم لا ينتمي إلى نظام العد العشري. سيوضح المثال التالي هذا الاستثناء أثناء تحويل سلسلة إلى عدد صحيح.
"""
Scenario 1: The interpreter will not raise any exception but you get wrong data
"""
num = '12' # this is a hexadecimal value
# يعتبر المتغير كقيمة عشرية أثناء التحويل
print('The value is :', int(num))
# يعتبر المتغير كقيمة سداسي عشرية أثناء التحويل
print('Actual value is :', int(num, base=16))
"""
Scenario 2: The interpreter will raise ValueError exception
"""
num = '1e' # this is a hexadecimal value
# يعتبر المتغير كقيمة سداسي عشرية أثناء التحويل
print('Actual value of \'1e\' is :', int(num, base=16))
# يعتبر المتغير كقيمة عشرية أثناء التحويل
print('The value is :', int(num)) # this will raise exception
سيكون إخراج الشيفرة أعلاه:
The value is : 12
Actual value is : 18
Actual value of '1e' is : 30
Traceback (most recent call last):
File "/home/imtiaz/Desktop/str2int_exception.py", line 22, in
print('The value is :', int(num)) # this will raise exception
ValueError: invalid literal for int() with base 10: '1e'

تحويل العدد الصحيح في Python إلى سلسلة
لا يتطلب تحويل العدد الصحيح إلى سلسلة أي جهد أو فحص. يمكنك فقط استخدام وظيفة str()
للقيام بالتحويل. انظر إلى المثال التالي.
hexadecimalValue = 0x1eff
print('Type of hexadecimalValue :', type(hexadecimalValue))
hexadecimalValue = str(hexadecimalValue)
print('Type of hexadecimalValue now :', type(hexadecimalValue))
سيكون إخراج الشيفرة التالية:
Type of hexadecimalValue : <class 'int'>
Type of hexadecimalValue now : <class 'str'>

هذا كل شيء عن تحويل سلسلة Python إلى عدد صحيح وتحويل العدد الصحيح إلى سلسلة. المرجع: وثائق Python الرسمية
Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string