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

164 lines
5.8 KiB
Markdown
Raw Normal View History

---
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)
<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 "<stdin>", 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)
<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 "<stdin>", line 1, in <module>
TypeError: int() can't convert non-string with explicit base
`
يجب أن تكون السلسلة المستخدمة منشئ `int` مع قاعدة صريحة حاصية عدد صحيح صالحة لهذه القاعدة:
`>>> int('11', 2)
3
>>> int('12', 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
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 "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '0x1101'
`
إذا تم استخدام سلسلة مسبوقة والبقاعدة 0 ، فسيستخدم الكائن الصحيح الذي تم إنشاؤه الأساس المحدد بواسطة البادئة. إذا لم يتم استخدام البادئة ، فسيتم افتراض الأساس 10
`>>> int('100', 0)
100
>>> int('0b100', 0)
4
>>> int('0o100', 0)
64
`