الأعداد في بايثون | Python numbers

 الأعداد في بايثون

في البداية, أعداد تعني numbers في اللغة الإنجليزية.
في هذا الدرس ستتعرف على أنواع الأعداد و الدوال الجاهزة في بايثون للتعامل معها.

 

معلومة تقنية الاعداد في بايثون

المتغيرات العددية في بايثون تعتبر كلها Immutable, و هذا يعني أنك عندما تقوم بتعريف أي متغير و تعطيه قيمة عددية فإن هذه القيمة يحجز لها مكان في الذاكرة.
لكن إذا قمت بإعطاء قيمة جديدة لهذا المتغير فإنه سيتم حذف القيمة القديمة من الذاكرة و إنشاء مكان جديد في الذاكرة و وضع القيمة الجديدة فيه لأنه لا يمكن تعديل نفس القيمة في نفس المكان في الذاكرة.

 

  

   أنواع الأعداد في بايثون

عند تعريف متغير و تخزين عدد فيه, فإن مفسّر لغة بايثون سيقوم بشكل تلقائي بتحديد نوع هذا المتغير بناءاً على نوع القيمة العددية التي تم إسنادها إليه.
فإذا وضعت فيه عدد صحيح, يصبح نوعه int. و إذا وضعت فيه عدد عشري ( أي يحتوي على فاصلة ), يصبح نوعه float و هكذا.


أنواع الأعداد في بايثون تنقسم إلى 3 أنواع كما في الجدول التالي.

النوع إستخدامه مثال
int يستخدم لتخزين أعداد صحيحة. x = 3
float يستخدم لتخزين أعداد تحتوي على فاصلة عشرية. x = 1.5
complex يستخدم لتخزين أعداد مركبة (Complex Number) و التي غالباً ما يحتاجها المهندسون عند إجراء عمليات حاسبية معقدة.
ملاحظة: هنا يجب وضع الحرف J أو j مباشرةً بعد العدد حتى يعرف مفسّر بايثون أنك تقصد عدد مركب و ليس عدد عادي.
x = 4J

في المثال التالي قمنا بتعريف ثلاث متغيرات و كل متغير وضعنا فيه قيمة عددية مختلفة في النوع و القيمة. بعدها قمنا بعرض نوع كل متغير منهم.

مثال

Test.py
x = 3            # قيمته عبارة عن عدد صحيح ,x هنا قمنا بتعريف متغير إسمه
y = 1.5          #  قيمته عبارة عن عدد عشري ,y هنا قمنا بتعريف متغير إسمه
z = 4J           #   قيمته عبارة عن عدد مركب ,z هنا قمنا بتعريف متغير إسمه

print(type(x))   # x هنا طبعنا نوع قيمة المتغير
print(type(y))   # y هنا طبعنا نوع قيمة المتغير
print(type(z))   # z هنا طبعنا نوع قيمة المتغير
		

سنحصل على النتيجة التالية عند التشغيل.

<class 'int'>
<class 'float'>
<class 'complex'>

طريقة عرض الأعداد الصحيحة بأشكال مختلفة في بايثون

في بايثون يمكنك حفظ أعداد صحيحة بشكل Hexa-Decimal و بشكل Octal.
ملاحظة: لست مضطراً أن تفهم الكود التالي لأن عرض الأعداد بأشكال مختلفة تتعلمه في مادة تسمى عمارة الحاسب و في مادة الشبكات.

 

مثال

Test.py
a = 0xA03                         # Hexa-decimal قيمته عبارة عن عدد صحيح لكننا كتبناها كـ ,a هنا قمنا بتعريف متغير إسمه
b = 0o42                          # Octal قيمته عبارة عن عدد صحيح لكننا كتبناها كـ ,b هنا قمنا بتعريف متغير إسمه

print('a =', a)                   # a هنا قمنا بطباعة قيمة المتغير
print('b =', b)                   # b هنا قمنا بطباعة قيمة المتغير

print('type of a is:', type(a))   # a هنا قمنا بطباعة نوع قيمة المتغير
print('type of b is:', type(b))   # b هنا قمنا بطباعة نوع قيمة المتغير
		

سنحصل على النتيجة التالية عند التشغيل.

a = 2563
b = 34
type of a is: <class 'int'>
type of b is: <class 'int'>

نلاحظ أنه عند طباعة قيم المتغيرين a و b فإنها عرضت كأعداد صحيحة عادية و مفهومة.

و نلاحظ أيضاً أنه تم إعتبار قيم المتغيرين a و b هو أعداد صحيحة int.

   دوال تحويل أنواع الأعداد الموجودة في بايثون

الجدول التالي يحتوي على دوال جاهزة في بايثون تستخدم لتحويل أنواع الأعداد و لتحديد أنواع الأعداد التي نريد تخزينها بداخل المتغيرات.

 .

الدالة مع تعريفها
int( x ) ترجع قيمة العدد الذي نمرره لها مكان المتغير x كعدد صحيح نوعه int.
int( x, base ) ترجع قيمة النص الذي نمرره لها مكان المتغير x كعدد صحيح نوعه int.
مكان المتغير base نمرر عدد يمثل الطريقة التي نريد بها تحويل قيمة المتغير x.
float( x ) ترجع قيمة المتغير الذي نمرره لها مكان المتغير x كعدد عشري (أي يحتوي على فاصلة) نوعه float.
complex( real, imag ) ترجع قيمة المتغير real و المتغير imag كعدد مركب (Complex Number).
العدد المركب بطبيعته يحتوي على قيمتين:
- الأولى هي قيمة المتغير real كالقيمة الحقيقية (Real Part).
- الثانية هي قيمة المتغير imag كقيمة الخيالية (Imaginary Part).
ملاحظة: في حال قمت بتمرير قيمة واحدة لها, فإنك هنا فعلياً تدخل القيمة الحقيقية للعدد المركب, و القيمة الوهمية تعتبر 0.

  امثلة بالتفصيل على دوال تحويل أنواع الأعداد الموجودة في بايثون تابع القراءة »

 دوال التعامل مع الأعداد الموجودة في بايثون

في الجدول التالي ذكرنا بعض الدوال الجاهزة في بايثون و التي تستخدم للتعامل مع الأعداد.

 

الدالة مع تعريفها
abs( x ) ترجع القيمة المطلقة للعدد الذي نمرره لها مكان الباراميتر x.
round( x [, n] ) ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x.
max( x1, x2, ... ) ترجع العدد الأكبر بين مجموعة الأعداد التي نمررها لها كـ Arguments.
min( x1, x2, ... ) ترجع العدد الأصغر بين مجموعة الأعداد التي نمررها لها كـ Arguments.

أمثلة بالتفصيل على دوال التعامل مع الأعداد الموجودة في بايثون تابع القراءة »

معنى كلمة Module في بايثون

في بايثون , كلمة Module تعني ملف بايثون عادي يمكنه أن يحتوي على متغيرات, دوال, كلاسات إلخ..
لنستدعي هذا الملف ( أي الـ Module ) في برنامجنا بكل بساطة نفعل له import و هكذا نصبح قادرين على الوصول إلى الأشياء الموجودة فيه و استخدامها في برنامجنا.

كلمة Module تكتب موديل في اللغة العربية و سنعتمدها في الشروحات.

 

ملاحظة

سنشرح طريقة إنشاء Module و التعامل معه بتفصيل في درس خاص لاحقاً في هذه الدورة.
كما أنك ستتعرف في هذه الدورة على العديد من الـ Modules الموجودين في بايثون و سنتعرف في هذا الدرس على اثنين منهم هما math و random.

Note 

 

ماهي دوال و ثوابت الموديل math في بايثون

math هو موديل جاهز في بايثون يحتوي على دوال تستخدم في العمليات الحسابية و الهندسية, ذكرنا بعضها في هذا الجدول.

 .

الدالة مع تعريفها
ceil( x ) ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.
floor( x ) ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.
pow(x, y) ترجع الناتج من مضاعفة قيمة العدد الذي نمرره لها مكان الباراميتر x مضاعف بقيمة الباراميتر y.
sqrt( x ) ترجع قيمة الجزر التربيعي (square root) للعدد الذي نمرره لها مكان الباراميتر x.
exp( x ) ترجع قيمة الـ exponential للعدد الذي نمرره لها مكان الباراميتر x.
log( x [,base] ) ترجع قيمة الـ Logarithm للعدد الذي نمرره لها مكان الباراميتر x مع إمكانية تحديد نوع الوحدة لهذا العدد.
log2( x ) ترجع قيمة الـ Logarithm Base 2 للعدد الذي نمرره لها مكان الباراميتر x.
يمكن إستدعاء هذه الدالة بدل إستدعاء الدالة log(x, 2).
log10( x ) ترجع قيمة الـ Logarithm Base 10 للعدد الذي نمرره لها مكان الباراميتر x.
يمكن إستدعاء هذه الدالة بدل إستدعاء الدالة log(x, 10).
sin( x ) ترجع قيمة الـ sine للعدد الذي نمرره لها مكان الباراميتر x.
cos( x ) ترجع قيمة الـ cosine للعدد الذي نمرره لها مكان الباراميتر x.
tan( x ) ترجع قيمة الـ tangent للعدد الذي نمرره لها مكان الباراميتر x.
asin( x ) ترجع قيمة الـ arc sine للعدد الذي نمرره لها مكان الباراميتر x.
acos( x ) ترجع قيمة الـ arc cosine للعدد الذي نمرره لها مكان الباراميتر x.
atan( x ) ترجع قيمة الـ arc tangent للعدد الذي نمرره لها مكان الباراميتر x.
degrees( x ) تحول قيمة العدد الذي نمرره لها مكان الباراميتر x لـ Degrees.
radians( x ) تحول قيمة العدد الذي نمرره لها مكان الباراميتر x لـ Radians.
gcd( x, y ) ترجع عدد صحيح يمثل القاسم المشترك الأكبر (Greatest Common Divisor) بين العددين اللذين نمررهما لها مكان الباراميترين x و y.

أمثلة بالتفصيل على دوال التعامل مع الموديل math الموجودة في بايثون تابع القراءة »



الموديل math يحتوي أيضاً على الثوابت التالية التي تتعلق بالرياضيات.

إسم الثابت تعريفه
E يحتوي على قيمة الـ Exponential.
PI يحتوي على قيمة الـ PI.

  ماهي دوال الموديل random في بايثون

random هو موديل جاهز في بايثون يحتوي على دوال تستخدم في العمليات الحسابية و الهندسية, ذكرنا بعضها في هذا الجدول.

 

الدالة مع تعريفها
random() ترجع عدد عشري عشوائي بين 0.0 و 1.0.
uniform( a, b ) ترجع عدد عشري عشوائي بين القيمة التي نمررها لها مكان الباراميتر a و القيمة التي نمررها لها مكان الباراميتر b.
randrange ( [start,] stop [,step] ) ترجع عدد صحيح عشوائي بين 0 و القيمة التي نمررها لها مكان الباراميتر stop.
أو ترجع عدد صحيح عشوائي بين القيمة التي نمررها لها مكان الباراميتر start و القيمة التي نمررها لها مكان الباراميتر stop.
choice( seq ) ترجع قيمة عشوائية من بين عناصر أي سلسلة (Sequence) نمررها لها.
السلسلة ممكن أن تكون مصفوفة من الأعداد, أو نص عادي (أي سلسلة من الأحرف).
فمثلاً, إذا مررنا لها مصفوفة من الأعداد, ترجع عدد عشوائي من ضمن هذه المصفوفة. و إذا مررنا لها نص, ترجع حرف عشوائي من ضمن هذا النص.
shuffle( x ) نمرر لها مصفوفة مكان الباراميتر x فتبدل أماكن عناصرها بشكل عشوائي.

أمثلة بالتفصيل على دوال التعامل مع الموديل random الموجودة في بايثون تابع القراءة »