تحديد ما إذا كان الرقم عددًا صحيحًا أم رقمًا عشريًا في بايثون

اعمال

حدد ما إذا كان الرقم عددًا صحيحًا أم رقمًا عشريًا في بايثون.

الحالات التالية موضحة بأكواد العينة.

  • تحديد ما إذا كان الرقم هو عدد صحيح أم عدد عشري:isinstance()
  • تحديد ما إذا كان رقم النوع العائم عددًا صحيحًا (0 منازل عشرية):float.is_integer()
  • تحدد ما إذا كانت السلسلة الرقمية عددًا صحيحًا

للحصول على العدد الصحيح والقيم العشرية للرقم العشري ، راجع المقالة التالية.

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

تحدد ما إذا كان الرقم عددًا صحيحًا أم نوعًا فاصلة عائمة:isinstance()

يمكن الحصول على نوع الكائن باستخدام نوع الوظيفة المضمنة ().

i = 100
f = 1.23

print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>

isinstance(object, type)
يمكن استخدام هذه الوظيفة المضمنة لتحديد ما إذا كان الكائن من نوع معين. يمكن استخدام هذا لتحديد ما إذا كان الرقم هو عدد صحيح أو نوع النقطة العائمة.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

في هذه الحالة ، فإنه يحكم فقط على النوع ، لذلك لا يمكن الحكم على ما إذا كانت قيمة نوع العائمة عددًا صحيحًا (بعلامة عشرية 0) أم لا.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

تحديد ما إذا كان رقم النوع العائم عددًا صحيحًا (0 منازل عشرية):float.is_integer()

يتم توفير طريقة is_integer () للنوع العائم ، والتي تُرجع صحيحًا إذا كانت القيمة عددًا صحيحًا وخطأ في الحالات الأخرى.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

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

def is_integer_num(n):
    if isinstance(n, int):
        return True
    if isinstance(n, float):
        return n.is_integer()
    return False

print(is_integer_num(100))
# True

print(is_integer_num(1.23))
# False

print(is_integer_num(100.0))
# True

print(is_integer_num('100'))
# False

تحدد ما إذا كانت السلسلة الرقمية عددًا صحيحًا

إذا كنت تريد تحديد أن سلسلة الأرقام الصحيحة هي أيضًا عدد صحيح ، فإن الوظائف التالية ممكنة.

بالنسبة للقيم التي يمكن تحويلها إلى نوع عائم باستخدام float () ، يتم تطبيق طريقة is_integer () بعد التحويل إلى عدد عشري ويتم إرجاع النتيجة.

def is_integer(n):
    try:
        float(n)
    except ValueError:
        return False
    else:
        return float(n).is_integer()

print(is_integer(100))
# True

print(is_integer(100.0))
# True

print(is_integer(1.23))
# False

print(is_integer('100'))
# True

print(is_integer('100.0'))
# True

print(is_integer('1.23'))
# False

print(is_integer('string'))
# False

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

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

Copied title and URL