freeCodeCamp/guide/arabic/python/data-structures/integers/index.md

5.8 KiB

title localeTitle
Python Integers بايثون الاعداد الصحيحه

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

في Python 2 ، كان هناك تمييز بين int ، والأرقام التي تتناسب مع 32 أو 64 بت C long ، وأرقام long محدودة بالذاكرة المتوفرة. بيثون 3 توحد بين نوعين في int فقط ، مزيد من المعلومات في PEP 237 .

إنشاء int باستخدام حرفية عدد صحيح

عدد صحيح

يمكن إنشاء كائنات عدد صحيح باستخدام استخدام عدد صحيح من القيم الحرفية. الأرقام غير المزينة بدون الكسور العشرية هي عدد صحيح من القيم الحرفية:

`>>> 1234567890 # Unadorned numbers are integer literals 1234567890

type(1234567890) <class 'int'> `

لا تحتوي القيم الحرفية الرقمية على إشارة ، ولكن إنشاء كائنات صحيحة سالبة ممكن عن طريق البدء بمعامِل وحيد - (ناقص) بدون فراغ قبل الحرفية:

`>>> -1234567890 -1234567890

type(-1234567890) <class 'int'> `

وبالمثل ، يمكن إنشاء كائنات صحيحة موجبة عن طريق بدء تشغيل عامل + (زائد) أحادي بدون فراغ قبل الأرقام. عادة ما يكون + هو:

>>> +1234 1234

يمكن إنشاء الأعداد الصحيحة ثنائية (قاعدة 2 ، البادئة: 0b أو 0B ) ، ثماني (قاعدة 8 ، البادئة: 0o أو 0O ) ، 0O السداسية العشرية (الأساس 16 ، البادئة: 0x أو 0X ) باستخدام القيم الحرفية الصحيحة:

`>>> 0b1, 0b10, 0b11 (1, 2, 3)

0o1, 0o10, 0o11 (1, 8, 9) 0x1, 0x10, 0x11 (1, 16, 17) `

تجدر الإشارة إلى أنه لا يُسمح بترك 0 من القيم الحرفية الصحيحة غير الصفرية:

`>>> 0 # Zero by itself is okay. 0

01 # Leading zero(s) cause SyntaxError. File "", line 1 01 ^ SyntaxError: invalid token `

المنشئ int طريقة أخرى لإنشاء كائنات عدد صحيح .

class int(x=0) class int(x, base=10)

يفضل إنشاء كائنات صحيحة ذات قيم حرفية صحيحة عند الإمكان:

`>>> a = 1 # Prefer integer literal when possible.

type(a) <class 'int'> b = int(1) # Works but unnecessary. type(b) <class 'int'> `

ومع ذلك ، يسمح المُنشئ بإنشاء كائنات صحيحة من أنواع الأعداد الأخرى:

`>>> a = 1.123

type(a) <class 'float'> print(a) 1.123 b = int(1.123) type(b) <class 'int'> print(b) 1 `

باستخدام int المنشئ لأرقام النقطة العائمة سيتم اقتطاع الرقم باتجاه صفر:

`>>> int(-1.23) -1

int(1.23) 1 `

الثوابت boolean المضمنة هي مثيلات من فئة bool ، وهي فئات فرعية لفئة int ، مما يجعلها نوعًا من النوع العددي:

`>>> type(True) <class 'bool'>

issubclass(bool, int) True `

إذا كان ذلك غير منطقي بالنسبة لك ، فلا تقلق. الآن فقط تذكر أن استدعاء منشئ int مع كائنات boolean سيتم إرجاع كائنات عدد صحيح :

`>>> int(True) 1

int(False) 0 `

سيقوم منشئ int أيضًا بإنشاء كائنات صحيحة من السلاسل:

`>>> a = "10"

type(a) <class 'str'> b = int("10") type(b) <class 'int'> `

يجب أن تمثل سلاسل منشئ int عددًا صحيحًا حرفيًا:

المعلمة الثانية من int هي تحديد أساس (الافتراضي: 10). القواعد الصالحة هي 0 و236.

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

`>>> int("111", 2) 7

int(111, 2) Traceback (most recent call last): File "", line 1, in TypeError: int() can't convert non-string with explicit base `

يجب أن تكون السلسلة المستخدمة منشئ int مع قاعدة صريحة حاصية عدد صحيح صالحة لهذه القاعدة:

`>>> int('11', 2) 3

int('12', 2) Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 2: '12' `

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

`>>> int('1101', 2) 13

int('0b1101', 2) 13 int('0x1101', 2) Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 2: '0x1101' `

إذا تم استخدام سلسلة مسبوقة والبقاعدة 0 ، فسيستخدم الكائن الصحيح الذي تم إنشاؤه الأساس المحدد بواسطة البادئة. إذا لم يتم استخدام البادئة ، فسيتم افتراض الأساس 10

`>>> int('100', 0) 100

int('0b100', 0) 4 int('0o100', 0) 64 `