--- title: Python Integers localeTitle: بايثون الاعداد الصحيحه --- المجال النظري للأعداد الصحيحة في python هو إنفيني سلبي إلى ما لا نهاية. في الممارسة العملية ، يتم تحديد القيم الصحيحة بواسطة مقدار الذاكرة المتوفرة. في Python 2 ، كان هناك تمييز بين **`int`** ، والأرقام التي تتناسب مع 32 أو 64 بت _C_ **`long`** ، وأرقام **`long`** محدودة بالذاكرة المتوفرة. بيثون 3 توحد بين نوعين في **`int`** فقط ، مزيد من المعلومات في [PEP 237](https://www.python.org/dev/peps/pep-0237/) . **إنشاء `int` باستخدام حرفية عدد صحيح** [عدد صحيح](https://docs.python.org/3/reference/lexical_analysis.html#integer-literals) يمكن إنشاء _كائنات عدد صحيح_ باستخدام استخدام عدد صحيح من القيم الحرفية. الأرقام غير المزينة بدون الكسور العشرية هي عدد صحيح من القيم الحرفية: `>>> 1234567890 # Unadorned numbers are integer literals 1234567890 >>> type(1234567890) ` لا تحتوي القيم الحرفية الرقمية على إشارة ، ولكن إنشاء _كائنات صحيحة_ سالبة ممكن عن طريق البدء بمعامِل وحيد `-` (ناقص) بدون فراغ قبل الحرفية: `>>> -1234567890 -1234567890 >>> type(-1234567890) ` وبالمثل ، يمكن إنشاء كائنات صحيحة موجبة عن طريق بدء تشغيل عامل `+` (زائد) أحادي بدون فراغ قبل الأرقام. عادة ما يكون `+` هو: `>>> +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 ` [المنشئ](https://docs.python.org/3/library/functions.html#int) `int` طريقة أخرى لإنشاء _كائنات عدد صحيح_ . `class int(x=0) class int(x, base=10) ` يفضل إنشاء _كائنات صحيحة_ ذات قيم حرفية صحيحة عند الإمكان: `>>> a = 1 # Prefer integer literal when possible. >>> type(a) >>> b = int(1) # Works but unnecessary. >>> type(b) ` ومع ذلك ، يسمح المُنشئ بإنشاء _كائنات صحيحة_ من أنواع الأعداد الأخرى: `>>> a = 1.123 >>> type(a) >>> print(a) 1.123 >>> b = int(1.123) >>> type(b) >>> print(b) 1 ` باستخدام `int` المنشئ لأرقام النقطة العائمة سيتم اقتطاع الرقم باتجاه صفر: `>>> int(-1.23) -1 >>> int(1.23) 1 ` الثوابت `boolean` المضمنة هي مثيلات من فئة `bool` ، وهي فئات فرعية لفئة `int` ، مما يجعلها نوعًا من النوع العددي: `>>> type(True) >>> issubclass(bool, int) True ` إذا كان ذلك غير منطقي بالنسبة لك ، فلا تقلق. الآن فقط تذكر أن استدعاء منشئ int مع كائنات `boolean` سيتم إرجاع _كائنات عدد صحيح_ : `>>> int(True) 1 >>> int(False) 0 ` سيقوم منشئ `int` أيضًا بإنشاء _كائنات صحيحة_ من السلاسل: `>>> a = "10" >>> type(a) >>> b = int("10") >>> type(b) ` يجب أن تمثل _سلاسل_ منشئ `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 `