تحويل سلسلة عدد str إلى عدد int ، تعويم في Python

اعمال

إذا كنت تريد تحويل سلسلة من الأرقام إلى قيم رقمية في Python ، فاستخدم int () للتحويل إلى أعداد صحيحة و float () للتحويل إلى أرقام فاصلة عائمة.

يتم شرح ما يلي هنا ، جنبًا إلى جنب مع نموذج التعليمات البرمجية.

  • الاستخدام الأساسي
    • تحويل السلاسل الرقمية إلى أعداد صحيحة:int()
    • تحويل سلسلة من الأرقام إلى أرقام الفاصلة العائمة:float()
  • استخدام خاص
    • يحول السلاسل بالتدوين الثنائي والثماني والسداسي العشري إلى أرقام
    • يحول السلاسل في التدوين الأسي إلى قيم عددية
    • تحويل سلاسل الأرقام العربية ذات العرض الكامل إلى أرقام
    • تحويل سلسلة من الأحرف الصينية إلى أرقام

لتحويل قيمة رقمية إلى سلسلة ، استخدم str ().

إذا كنت تريد تحويل الأرقام أو السلاسل إلى تنسيقات مختلفة ، فاستخدم الدالة format () أو طريقة السلسلة str.format (). ثم يمكنك التحويل إلى 0-تعبئة ، وثنائي ، وثماني ، وست عشري ، وترميز أسي ، وما إلى ذلك ، راجع المقالة التالية للحصول على التفاصيل.

يمكنه أيضًا تحويل قائمة السلاسل إلى قائمة أرقام. راجع المقالة التالية للحصول على التفاصيل.

تحويل السلاسل الرقمية إلى أعداد صحيحة:int()

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

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

ستؤدي الأرقام العشرية ، بما في ذلك النقاط العشرية ، والسلاسل المفصولة بفاصلات إلى حدوث خطأ في القيمة.

# print(int('1.23'))
# ValueError: invalid literal for int() with base 10: '1.23'

# print(int('10,000'))
# ValueError: invalid literal for int() with base 10: '10,000'

يمكن تحويل السلاسل المفصولة بفاصلة عن طريق إزالة الفاصلة (استبدالها بسلسلة فارغة) باستخدام طريقة الاستبدال ().

print(int('10,000'.replace(',', '')))
# 10000

تحويل سلسلة من الأرقام إلى أرقام الفاصلة العائمة:float()

يمكن استخدام float () لتحويل سلسلة من الأرقام إلى نوع رقم الفاصلة العائمة.

print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>

يتم تحويل السلاسل التي تحتوي على الجزء الصحيح الذي تم حذفه من خلال استكمال جزء العدد الصحيح بـ 0.

print(float('.23'))
# 0.23

يتم أيضًا تحويل السلاسل الصحيحة إلى أرقام ذات فاصلة عائمة.

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

يحول السلاسل بالتدوين الثنائي والثماني والسداسي العشري إلى أرقام

إذا تم تحديد الجذر باعتباره الوسيطة الثانية لـ int () ، فيمكن تحويل السلسلة إلى عدد صحيح int من خلال اعتباره ثنائيًا أو ثمانيًا أو سداسيًا عشريًا ، إلخ.

print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256

كما في الأمثلة السابقة ، إذا تم حذفها ، فسيتم اعتبار الرقم رقمًا عشريًا.

print(int('100', 10))
print(int('100'))
# 100
# 100

إذا تم ضبط الجذر على 0 ، فإن التحويل يعتمد على بادئة السلسلة. انظر أدناه للحصول على بادئات السلسلة.

  • 0b
    • 0B
  • 0o
    • 0O
  • 0x
    • 0X
print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256

قد تكون البادئات والأبجديات السداسية إما كبيرة أو صغيرة.

print(int('FF', 16))
print(int('ff', 16))
# 255
# 255

print(int('0xFF', 0))
print(int('0XFF', 0))
print(int('0xff', 0))
print(int('0Xff', 0))
# 255
# 255
# 255
# 255

راجع المقالة التالية للحصول على معلومات حول التحويل البيني للأرقام والسلاسل الثنائية والثنائية والسداسية العشرية.

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

يمكن تحويل السلاسل في التدوين الأسي مباشرة إلى نوع عائم باستخدام float ().

print(float('1.23e-4'))
print(type(float('1.23e-4')))
# 0.000123
# <class 'float'>

print(float('1.23e4'))
print(type(float('1.23e4')))
# 12300.0
# <class 'float'>

يمكن أيضًا كتابة حرف e الصغير بحروف كبيرة E.

print(float('1.23E-4'))
# 0.000123

تحويل سلاسل الأرقام العربية ذات العرض الكامل إلى أرقام

يمكن تحويل الأرقام العربية كاملة العرض مباشرة إلى أرقام عن طريق int () أو عائم ().

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

ومع ذلك ، إذا كانت الرموز مثل الفترات السالبة والعشرية عبارة عن أحرف ذات عرض كامل ، فسيتم إنشاء خطأ في القيمة.

# print(float('ー1.23'))
# ValueError: could not convert string to float: '1.23'

يمكن تحويل الأرقام دون مشاكل إذا كانت أحرفًا كاملة العرض ، لكن السالب والنقاط العشرية عبارة عن أحرف بنصف العرض. التحويل ممكن عن طريق استبدال الرموز كاملة العرض برموز نصف العرض باستخدام طريقة replace ().

print(float('-1.23'))
# -1.23

print(float('ー1.23'.replace('ー', '-').replace('.', '.')))
# -1.23

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

يمكن استخدام الدالة unicodedata.numeric () في الوحدة النمطية unicodedata لتحويل حرف Unicode صيني واحد إلى رقم نوع رقم الفاصلة العائمة.

إذا لم يكن حرفًا واحدًا ، فسيحدث خطأ. أيضًا ، ستتسبب الأحرف غير الرقمية في حدوث خطأ.

import unicodedata

print(unicodedata.numeric('五'))
print(type(unicodedata.numeric('五')))
# 5.0
# <class 'float'>

print(unicodedata.numeric('十'))
# 10.0

print(unicodedata.numeric('参'))
# 3.0

print(unicodedata.numeric('億'))
# 100000000.0

# print(unicodedata.numeric('五十'))
# TypeError: numeric() argument 1 must be a unicode character, not str

# print(unicodedata.numeric('漢'))
# ValueError: not a numeric character