الفرق بين المراجعتين لصفحة: «Python/int»

من موسوعة حسوب
إنشاء صفحة الأعداد الصحيحة في بايثون
 
 
(12 مراجعة متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:الأعداد الصحيحة في بايثون}}</noinclude>
= الأعداد الصحيحة في بايثون =
العدد الصحيح integer هو أي عدد موجب أو سالب لا يتضمن فاصلة عشرية، ويمكن تمثيله بالنظام العشري (decimal، الأساس <code>10</code>) والست عشري (hexadecimal، الأساس <code>16</code>) والثماني (octal، الأساس <code>8</code>) والثنائي (binary، الأساس <code>2</code>).
العديد الصحيح integer هو أي عدد موجب أو سالب لا يتضمن فاصلة عشرية، ويمكن تمثيله بالنظام العشري (decimal، أي ذو الأساس <code>10</code>) والست عشري (hexadecimal، الأساس <code>16</code>) والثماني (octal، الأساس <code>8</code>) والثنائي (binary، الأساس <code>2</code>).


يجب أن يكون العدد الصحيح مسبوقًا بالقيمة <code>0o</code> لاستخدامه في النظام الثماني، وبالقيمة <code>0x</code> لاستخدامه في النظام الست عشري، وبالقيمة <code>0b</code> لاستخدامه في النظام الثنائي، وفيما يلي مجموعة من الأمثلة:<syntaxhighlight lang="python3">
يجب أن يكون العدد الصحيح مسبوقًا بالقيمة <code>0o</code> لاستخدامه في النظام الثماني، وبالقيمة <code>0x</code> لاستخدامه في النظام الست عشري، وبالقيمة <code>0b</code> لاستخدامه في النظام الثنائي، وفيما يلي مجموعة من الأمثلة:<syntaxhighlight lang="python3">
>>> q = 3571 # عدد صحيح في النظام العشري
>>> q = 3571       # عدد صحيح في النظام العشري
 
>>> q = -424       # عدد صحيح سالب
>>> q = -424 # عدد صحيح سالب
>>> q = 0o675     # في النظام الثماني
 
>>> q = 0xAB23     # في النظام الست عشري
>>> q = 0o675 # في النظام الثماني
 
>>> q = 0xAB23 # في النظام الست عشري
 
>>> q = 0b11001010 # في النظام الثنائي
>>> q = 0b11001010 # في النظام الثنائي
 
>>> type(q)       # التحقق من نوع المتغير
>>> type(q) # التحقق من نوع المتغير
 
<class 'int'>
<class 'int'>
</syntaxhighlight>
</syntaxhighlight>


سطر 25: سطر 17:
يمكن استخدام الدالة الداخلية <code>int()</code>‎ لتحويل الأنواع المختلفة إلى أعداد صحيحة، وتعيد الدالة القيمة <code>0</code> في حال عدم وجود وسائط.
يمكن استخدام الدالة الداخلية <code>int()</code>‎ لتحويل الأنواع المختلفة إلى أعداد صحيحة، وتعيد الدالة القيمة <code>0</code> في حال عدم وجود وسائط.


إن كان المتغيّر <code>x</code> يحمل قيمة عددية تعيد الدالة التابع <code>x.__int__()‎</code>، أما الأعداد العشرية (ذات النقطة العائمة floating point) فتختصر باتجاه الصفر.
إن كان المتغيّر <code>x</code> يحمل قيمة عددية تعيد الدالةُ <code>int()‎</code> التابعَ <code>x.__int__()‎</code>، أما الأعداد العشرية (ذات النقطة العائمة floating point) فتختصر باتجاه الصفر.


أمثلة:<syntaxhighlight lang="python3">
أمثلة:<syntaxhighlight lang="python3">
>>> x = 3.9
>>> x = 3.9
>>> int(x)
>>> int(x)
3
3
>>> y = -4.3
>>> y = -4.3
>>> int(y)
>>> int(y)
4
4
>>> int() # تعيد الدالة القيمة صفر عند غياب الوسائط
>>> int() # تعيد الدالة القيمة صفر عند غياب الوسائط
0
0
>>> x = -4.3
>>> x = -4.3
>>> x.__int__()
>>> x.__int__()
-4
-4
>>> x = -4.9
>>> x = -4.9
>>> x.__int__()
>>> x.__int__()
-4
-4
>>> x = 4.9
>>> x = 4.9
>>> x.__int__()
>>> x.__int__()
4
4
</syntaxhighlight>
</syntaxhighlight>


إن لم يحمل المتغير قيمة عددية، فإنّ قيمته يجب أن تكون إمّا سلسلة نصية، أو بايت bytes أو مصفوفة بايتات bytearray يمثّل رموز الأرقام. يمكن أن تسبق هذه الرموز علامتا + أو - (دون إضافة فاصلة بين الرموز والعلامة) وأن تحاط بمسافات بيضاء. يتضمن الرمز ذو الأساس <code>n</code> أعدادًا من <code>0</code> إلى <code>n-1</code>، مع <code>a</code> إلى <code>z</code> (أو <code>A</code> إلى <code>Z</code>) والتي تمتلك القيم <code>10</code> إلى <code>35</code>. الأساس الافتراضي هو <code>10</code> والأرقام المسموح بها هي <code>0</code> و من <code>2</code> إلى <code>36</code>. يمكن لرموز الأرقام في النظام الثنائي والثماني والست عشري أن تكون مسبوقة اختياريًا بالقيم <code>0b/0B</code>, <code>0o/0O</code>, أو <code>0x/0X</code> على التوالي، كما هو الحال في رموز الأرقام المستخدمة في الشيفرة.
إن لم يحمل المتغيرُ قيمةً عدديةً، فإنّ قيمته يجب أن تكون إمّا [[Python/str|سلسلةً نصية]]، أو [[Python/bytes|بايت]] (bytesأو [[Python/bytearray|مصفوفة بايتات]] (bytearray) تُمثِّل رموز الأرقام. يمكن أن تسبق هذه الرموز علامتا + أو - (دون إضافة ما يفصل بين الرموز والعلامة) وأن تحاط بمسافات بيضاء. يتضمن الرمز ذو الأساس <code>n</code> (مثل أساس العد العشري، أو الثماني، أو الست عشري) أعدادًا من <code>0</code> إلى <code>n-1</code>، مع <code>a</code> إلى <code>z</code> (أو <code>A</code> إلى <code>Z</code>) والتي تمتلك القيم <code>10</code> إلى <code>35</code> إن لزم الأمر. الأساس الافتراضي هو <code>10</code> والأرقام المسموح بها هي <code>0</code> و من <code>2</code> إلى <code>36</code>. يمكن لرموز الأرقام في النظام الثنائي والثماني والست عشري أن تكون مسبوقة اختياريًا بالقيم <code>0b/0B</code>, <code>0o/0O</code>, أو <code>0x/0X</code> على التوالي، كما هو الحال في رموز الأرقام المستخدمة في الشيفرة.


يؤدي استخدام الأساس <code>0</code> إلى تفسير الناتج بنفس طريقة تفسير رموز الأرقام في الشيفرة، بحيث يكون الأساس الحقيقي هو <code>2</code>، <code>8</code>، <code>10</code> أو <code>16</code>، وهكذا تكون العبارة <code>int('010', 0)</code>‎ خاطئة، أما العبارتان <code>int('010')</code>‎ و <code>int('010', 8)</code>‎ فصحيحتان.
يؤدي استخدام الأساس <code>0</code> إلى تفسير الناتج بنفس طريقة تفسير رموز الأرقام في الشيفرة، بحيث يكون الأساس الحقيقي هو <code>2</code>، أو <code>8</code>، أو <code>10</code>، أو <code>16</code>، وهكذا تكون العبارة <code>int('010', 0)</code>‎ خطأ، أما العبارتان <code>int('010')</code>‎ و <code>int('010', 8)</code>‎ فصحيحتان.


== مثال ==
== أمثلة ==
<syntaxhighlight lang="python3">
أمثلة نموذجية عن إجراء عمليات على الأعداد الصحيحة، وتحويلها إلى أنظمة عدّ أخرى:<syntaxhighlight lang="python3">
>>> a = "12"
>>> a = "12"
>>> b = "13"
>>> b = "13"
>>> int(a) + int(b)
>>> int(a) + int(b)
25
25
>>> int('0xFF', 16)
>>> int('0xFF', 16)
255
>>> int('0o10', 8)
8
</syntaxhighlight>


255
== الدوال التابعة للكائن <code>int</code> ==


>>> int('0o10', 8)
=== <code>[[Python/int/bit_length|int.bit_length()‎]]</code> ===
تعيد الدالة عدد البتات المطلوبة لتمثيل عدد صحيح بالصيغة الثنائية، مع استثناء الإشارة والأصفار الأولية.


8
=== <code>[[Python/int/to_bytes|int.to_bytes()‎]]</code> ===
تعيد الدالة مصفوفة من البايتات تمثّل عددًا صحيحًا.


=== <code>[[Python/int/from_bytes|int.from_bytes()‎]]</code> ===
تعيد الدالة العدد الصحيح الذي تمثّله مصفوفة البايتات الممرّرة إلى الدالة.


</syntaxhighlight>
== انظر أيضًا ==
* [[Python/str|السلاسل النصية str في بايثون]].
* [[Python/float|الأعداد العشرية float في بايثون]].
* [[Python/fraction|الأعداد الكسرية في بايثون]].
* [[Python/complex|الأعداد المركبة في بايثون]].


== مصادر ==
== مصادر ==
صفحتا [https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex Built-in Types]  و [https://docs.python.org/3/library/functions.html#bool Built-in Functions] في توثيق بايثون الرسمي.
* صفحتا [https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex Built-in Types]  و [https://docs.python.org/3/library/functions.html#int Built-in Functions] في توثيق بايثون الرسمي.
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Types]]
[[تصنيف:Python Types]]
[[تصنيف:Python Int]]

المراجعة الحالية بتاريخ 06:49، 2 يونيو 2018

العدد الصحيح integer هو أي عدد موجب أو سالب لا يتضمن فاصلة عشرية، ويمكن تمثيله بالنظام العشري (decimal، الأساس 10) والست عشري (hexadecimal، الأساس 16) والثماني (octal، الأساس 8) والثنائي (binary، الأساس 2).

يجب أن يكون العدد الصحيح مسبوقًا بالقيمة 0o لاستخدامه في النظام الثماني، وبالقيمة 0x لاستخدامه في النظام الست عشري، وبالقيمة 0b لاستخدامه في النظام الثنائي، وفيما يلي مجموعة من الأمثلة:

>>> q = 3571       # عدد صحيح في النظام العشري
>>> q = -424       # عدد صحيح سالب
>>> q = 0o675      # في النظام الثماني
>>> q = 0xAB23     # في النظام الست عشري
>>> q = 0b11001010 # في النظام الثنائي
>>> type(q)        # التحقق من نوع المتغير
<class 'int'>

تمتلك الأعداد الصحيحة في بايثون دقّة غير محدودة unlimited precision (أي تعطي اللغة نتائج دقيقة عند استخدام أرقام كبيرة جدًّا).

التحويل إلى الأعداد الصحيحة

يمكن استخدام الدالة الداخلية int()‎ لتحويل الأنواع المختلفة إلى أعداد صحيحة، وتعيد الدالة القيمة 0 في حال عدم وجود وسائط.

إن كان المتغيّر x يحمل قيمة عددية تعيد الدالةُ int()‎ التابعَ x.__int__()‎، أما الأعداد العشرية (ذات النقطة العائمة floating point) فتختصر باتجاه الصفر.

أمثلة:

>>> x = 3.9
>>> int(x)
3
>>> y = -4.3
>>> int(y)
4
>>> int() # تعيد الدالة القيمة صفر عند غياب الوسائط
0
>>> x = -4.3
>>> x.__int__()
-4
>>> x = -4.9
>>> x.__int__()
-4
>>> x = 4.9
>>> x.__int__()
4

إن لم يحمل المتغيرُ قيمةً عدديةً، فإنّ قيمته يجب أن تكون إمّا سلسلةً نصية، أو بايت (bytes)، أو مصفوفة بايتات (bytearray) تُمثِّل رموز الأرقام. يمكن أن تسبق هذه الرموز علامتا + أو - (دون إضافة ما يفصل بين الرموز والعلامة) وأن تحاط بمسافات بيضاء. يتضمن الرمز ذو الأساس n (مثل أساس العد العشري، أو الثماني، أو الست عشري) أعدادًا من 0 إلى n-1، مع a إلى z (أو A إلى Z) والتي تمتلك القيم 10 إلى 35 إن لزم الأمر. الأساس الافتراضي هو 10 والأرقام المسموح بها هي 0 و من 2 إلى 36. يمكن لرموز الأرقام في النظام الثنائي والثماني والست عشري أن تكون مسبوقة اختياريًا بالقيم 0b/0B, 0o/0O, أو 0x/0X على التوالي، كما هو الحال في رموز الأرقام المستخدمة في الشيفرة.

يؤدي استخدام الأساس 0 إلى تفسير الناتج بنفس طريقة تفسير رموز الأرقام في الشيفرة، بحيث يكون الأساس الحقيقي هو 2، أو 8، أو 10، أو 16، وهكذا تكون العبارة int('010', 0)‎ خطأ، أما العبارتان int('010')‎ و int('010', 8)‎ فصحيحتان.

أمثلة

أمثلة نموذجية عن إجراء عمليات على الأعداد الصحيحة، وتحويلها إلى أنظمة عدّ أخرى:

>>> a = "12"
>>> b = "13"
>>> int(a) + int(b)
25
>>> int('0xFF', 16)
255
>>> int('0o10', 8)
8

الدوال التابعة للكائن int

int.bit_length()‎

تعيد الدالة عدد البتات المطلوبة لتمثيل عدد صحيح بالصيغة الثنائية، مع استثناء الإشارة والأصفار الأولية.

int.to_bytes()‎

تعيد الدالة مصفوفة من البايتات تمثّل عددًا صحيحًا.

int.from_bytes()‎

تعيد الدالة العدد الصحيح الذي تمثّله مصفوفة البايتات الممرّرة إلى الدالة.

انظر أيضًا

مصادر