تحويل السلسلة في Python إلى عدد صحيح وعكس العملية

في هذا الدرس، سنتعلم كيفية تحويل سلسلة بيانات 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'>
Python String To 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))

سيكون الإخراج من الكود التالي

Python Convert String To Int With Base

قيمة الخطأ عند تحويل السلسلة إلى عدد صحيح

أثناء تحويل السلسلة إلى عدد صحيح، قد تحدث استثناء 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 String To Int ValueError

تحويل العدد الصحيح في 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 Int To String Conversion

هذا كل شيء عن تحويل سلسلة Python إلى عدد صحيح وتحويل العدد الصحيح إلى سلسلة. المرجع: وثائق Python الرسمية

Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string