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

164 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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
`