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

مفهوم الحلقات في بايثون

حلقة: تعني Loop في اللغة الإنجليزية. نستخدم الحلقات لعدم تكرار نفس الكود عدة مرات, إذاً أي كود نريده أن يتنفذ عدة مرات, نقوم بكتابته داخل حلقة فتقوم هي بإعادة تنفيذ الكود قدر ما شئنا ضمن شروط معينة نقوم نحن بتحديدها.


طريقة تنفيذ الأوامر و الحلقات في الذاكرة

الأوامر في العادة تتنفذ بتسلسل وراء بعضها, و لكن الحلقات تجعل سهم تنفيذ الأوامر يقف عندها فيقوم بتنفيذ الأوامر التي بداخلها عدة مرات, و بعد أن يخرج من الحلقة يعود و يكمل تنفيذ باقي الأوامر التي تليها, كما في الصورة التالية:

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

إسم الحلقة دواعي الإستخدام
For Loop تستخدم الحلقة for للمرور على جميع عناصر السلسلة أو المصفوفة بسهولة بدون الحاجة لتعريف عداد و تحديد أين يبدأ و أين ينتهي.
و تستخدم لتنفيذ الكود عدة مرات محددة.
يتبع»
While Loop تستخدم الحلقة while لتنفيذ الكود عدة مرات غير محددة و يتوقف التنفيذ إذا تحقق شرط معين, لأن هذه الحلقة يتم توقيفها إذا تحقق الشرط الذي نضعه بين القوسين.
يتبع »

جمل التحكم في الحلقات في بايثون

جمل التحكم تعني Control Statements بالإنجليزية, و نستخدمهم للتحكم في سير تنفيذ الحلقات.

جملة التحكم تعريفها
Break Statement الجملة break تستخدم بشكل عام لإيقاف الحلقة في حال تحقق شرط معين. ثم تنتقل للكود الذي يليها في البرنامج.
يتبع »
Continue Statement الجملة continue تستخدم بشكل عام لإيقاف الدورة الحالية في الحلقة و الإنتقال إلى الدورة التالية فيها في حال تحقق شرط معين.
يتبع»

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

في أغلب لغات البرمجة لا يمكن الوصول للأشياء التي تم تعريفها داخل الحلقة من الخارج, أما في بايثون فإنه بإمكانك الوصول لهم.

مثال

Test.py
# بعدها سيتم عرضه .n هنا قمنا بإنشاء سلسلة من الأرقام الموجودة بين 1 إلى 5. في كل دورة في الحلقة سيتم جلب رقم من هذه السلسلة و تخزينه في المتغير
		for n in range(1, 6):
		print(n)

		# بعد أن توقفت الحلقة n هنا عرضنا القيمة الموجودة في المتغير
		print('n contains:', n )
	  

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

1
2
3
4
5
n contains: 5

إذاً لاحظنا أننا استطعنا معرفة القيمة الأخيرة التي تم وضعها في المتغير n الذي تم تعريفه في الأساس بداخل الحلقة for خارجها.

الحلقة for في بايثون

تعريف الحلقة for في بايثون

نستخدم الحلقة for للمرور على جميع عناصر السلسلة أو المصفوفة بسهولة بدون الحاجة لتعريف عداد و تحديد أين يبدأ و أين ينتهي.
تستخدم لتنفيذ الكود عدة مرات محددة.


طريقة إستخدامها

for element in sequence:
    statements

  • element: هو متغير عادي نقوم بتعريفه بداخل الحلقة. في كل دورة سيتم جلب قيمة من قيم السلسلة الموضوعة بعده و وضعها فيه.

  • sequence: هي السلسلة أو المصفوفة التي نريد الوصول لجميع عناصرها.

  • statements: هي جميع الأوامر الموضوعة في الحلقة و هي تتنفذ في كل دورة.

إذاً هنا تقوم الحلقة بالمرور على جميع عناصر المصفوفة بالترتيب من العنصر الأول إلى العنصر الأخير, و في كل دورة تقوم بتخزين قيمة العنصر في المتغير الذي قمنا بتعريفه.



معلومة تقنية

الحلقة for في بايثون تعمل كما تعمل الحلقة ForEach في لغات البرمجة الأخرى.

أمثلة حول الحلقة for في بايثون

سنقوم الآن بكتابة برنامج بسيط يعرض قيم جميع عناصر مصفوفة باستخدام الحلقة for.

المثال الأول

Test.py
                    # تحتوي على 7 عناصر days هنا قمنا بتعريف مصفوفة إسمها
		days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

		# بعدها سيتم عرض قيمته ,day في المتغير days هنا في كل دورة سيتم تخزين قيمة عنصر جديد من عناصر المصفوفة
		for day in days:
		print(day)
	  

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

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

سنقوم الآن بكتابة برنامج يمر على أحرف النص و يعرضهم حرفاً حرفاً باستخدام الحلقة for.
معلومة: النص بطبيعته يمثل سلسلة من الأحرف لذلك بايثون تتيح لك فعل هذا بسهولة.

المثال الثاني

Test.py
                    # هنا منا بتعريف متغير يحتوي على نص, أي يحتوي على سلسلة من الأحرف
		sentence = 'Python is amazing'

		# بعدها سيتم عرضه .letter في كل دورة في الحلقة سيتم جلب حرف من هذا النص و تخزينه في المتغير
		for letter in sentence:
		print(letter)
	  

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

P
y
t
h
o
n

i
s

a
m
a
z
i
n
g

الدالة range() في بايثون

سنستخدم الدالة range() في الأمثلة التالية لأنها ترجع سلسلة من الأرقام.
عند إستدعاء هذه الدالة يجب تمرير قيمة, أو قيمتين, أو ثلاث قيم لها كـ Arguments.

في حال مررت لها قيمة واحدة مثل range(5) فإنها سترجع سلسلة من الأرقام تبدأ من 0 إلى 4.
إذاً سترجع 0 ثم 1 ثم 2 ثم 3 ثم 4.

في حال مررت لها قيمتين مثل range(1, 5) فإنها سترجع سلسلة من الأرقام تبدأ من 1 إلى 4.
إذاً سترجع 1 ثم 2 ثم 3 ثم 4.

في حال مررت لها ثلاث قيم مثل range(1, 5, 2) فإنها سترجع سلسلة من الأرقام تبدأ من 1 إلى 4 و تزيد إثنين كل مرة.
إذاً سترجع 1 ثم 3.

طريقة إستخدام الدالة range() مع الحلقة for في بايثون

المثال التالي يشرح طريقة إستخدام الدالة range() لجعل الحلقة for كأنها تعدّ.

المثال الأول

Test.py
                    # بعدها سيتم عرضه .n هنا قمنا بإنشاء سلسلة من الأرقام الموجودة بين 1 إلى 5. في كل دورة في الحلقة سيتم جلب رقم من هذه السلسلة و تخزينه في المتغير
		for n in range(1, 6, 1):
		print(n)
	  

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

1
2
3
4
5

ملاحظة: هنا كان يمكننا كتابة range(1, 6) بدلاً من كتابة range(1, 6, 1) و الحصول على نفس النتيجة.


المثال التالي يشرح طريقة إستخدام الدالة range() لجعل الحلقة for كأنها تعدّ بشكل عكسي, أي تبدأ من أكبر عدد فيها إلى أصغر عدد فيها.

المثال الثاني

Test.py
                    # بعدها سيتم عرضه .n هنا قمنا بإنشاء سلسلة من الأرقام الموجودة بين 5 إلى 1. في كل دورة في الحلقة سيتم جلب رقم من هذه السلسلة و تخزينه في المتغير
		for n in range(5, 0, -1):
		print(n)
	  

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

5
4
3
2
1

الـ -1 الموضوعة في الدالة range() تعني أن سلسلة الأرقام تقل واحداً في كل مرة.
لهذا السبب وجدنا أن الدالة range() أرجعت سلسلة الأرقام التالية: 5, 4, 3, 2, 1.

الحلقة while في بايثون

تعريف الحلقة while في بايثون

نستخدم الحلقة while إذا كنا نريد تنفيذ الكود عدة مرات, ولكننا لا نعرف كم مرة بالتحديد لأننا نريد إيقاف التنفيذ إذا تحقق شرط معين.
هذه الحلقة تتوقف عن تكرار نفسها إذا تحقق الشرط الذي وضعناه لها.

هنا كأننا نقول: " طالما أن الشرط لم يتحقق إستمر في تكرار الكود ".


طريقة إستخدامها

initialisation;

while condition:
    statements
    increment أو decrement;

  • initialisation:   هي أول خطوة تتنفذ في الحلقة و هي تتنفذ مرة واحدة فقط على عكس جميع العناصر الموجودة في الحلقة.
    في هذه الخطوة نقوم بتعريف متغير ( يسمى عداد ).


  • condition:   هي ثاني خطوة تتنفذ في الحلقة و هي تتنفذ في كل دورة.
    في هذه الخطوة نقوم بوضع شرط يحدد متى تتوقف الحلقة, في كل دورة يتم التأكد أولاً إذا تحقق هذا الشرط أم لا.
    هنا طالما أن نتيجة الشرط تساوي true سيعيد تكرار الكود.


  • statements:   هي الخطوة الثالثة, و تعني تنفيذ جميع الأوامر الموجودة في الحلقة و هي تتنفذ في كل دورة.


  • (decrement أو increment):   هي الخطوة الرابعة و الأخيرة, و هي تتنفذ في كل دورة.
    هنا نحدد كيف تزداد أو تنقص قيمة العداد.


تذكر فقط أن جميع هذه الخطوات تتكرر في كل دورة ما عدا أول خطوة, و السبب أننا لا نحتاج إلى تعريف عداد جديد في كل دورة, بل نستعمل العداد القديم و الذي من خلاله نعرف في أي دورة أصبحنا.

مثال حول الحلقة while في بايثون

في المثال التالي قمنا بتعريف حلقة تطبع جميع الأرقام من 1 إلى 10.
في البداية قمنا بتعريف متغير إسمه i و أعطينها القيمة 1 لأننا سنستخدمه كعداد في الحلقة.
بعدها قمنا بإنشاء حلقة while تظل تنفذ الأوامر الموضوعة فيها طالما أن قيمة العداد i لا تزال أصغر أو تساوي 10.
في كل دورة في هذه الحلقة سيتم طباعة قيمة العداد i ثم إضافة 1 على قيمته.

مثال

Test.py
                    i = 1

		while i <= 10:
		print(i)
		i += 1
	  

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

1
2
3
4
5
6
7
8
9
10

مثال حول إستخدام الجملة الشرطية else مع الحلقة while في بايثون

يمكنك وضع الجملة الشرطية else مباشرةً بعد الحلقة while لتنفيذ بلوك من الكود ( مجموعة أوامر ) مباشرةً عندما تتوقف الحلقة عن إعادة تنفيذ الكود الموضوع فيها, أي عندما يصبح جواب الشرط الذي يجعلها تستمر في إعادتها نفسها طالما هو True يساوي False.

مثال

Test.py
                    i = 1

		while i <= 10:
		print(i)
		i += 1
		else:
		print('This block is executed when the condition return False!')
	  

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

1
2
3
4
5
6
7
8
9
10
This block is executed when the condition return False!

تذكر: الكود الموضوع في بلوك الجملة else سيتنفذ دائماً بعد أن تتوقف الحلقة عن العمل, و سيتنفذ أيضاً حتى لو تتنفذ الحلقة من الأساس.
لتتأكد من هذا الأمر, قم بإعطاء المتغير i القيمة 100 بدل القيمة 1 و لاحظ أيضاً أنه سينفذ أمر الطباعة الموضوع في البلوك else.

طريقة إنشاء حلقة لا تتوقف (Infinite Loop) في بايثون


تحذير

قبل تجربة الأمثلة التالية على الحاسوب عليك معرفة أن الـ (Infinite Loop) قد تجعله يعلّق أو قد تسبب في حرق المعالج إذا لم يتم إيقاف الكود يدوياً خلال وقت قصير.


الصورة التالية توضح طريقة إيقاف أي برنامج يدوياً بعد أن يتم تشغيله.

طريقة إنشاء حلقة لا تتوقف عن استداعاء نفسها.

المثال الأول

Test.py
                    while 1 == 1:
		print('I am stuck!')
	  

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

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

طريقة إنشاء حلقة لا تتوقف عن استداعاء نفسها.

المثال الثاني

Test.py
                    while True:
		print('I am stuck!')
	  

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

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

طريقة إنشاء حلقة لا تتوقف عن استداعاء نفسها.

المثال الثالث

Test.py
                    flag = True

		while flag = True:
		print('I am stuck!')
	  

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

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

جملة التحكم break في بايثون

مفهوم الجملة break في بايثون

الجملة break تستخدم بشكل عام لإيقاف الحلقة في حال تحقق شرط معين. ثم تنتقل للكود الذي يليها في البرنامج.


طريقة إستخدامها

تتألف هذه الجملة من أمر واحد و يكتب على سطر منفرد.

break

أمثلة حول طريقة استخدام جملة التحكم break في بايثون


في المثال التالي قمنا بتعريف حلقة while كانت ستطبع جميع الأرقام من 1 إلى 10 لولا أننا إستخدمنا الجملة break لجعل الحلقة تتوقف عندما تصبح قيمة العداد counter تساوي 5.

المثال الأول

Test.py
                    counter = 1

		while counter <= 10:
		print(counter)
		if counter == 5:
		break
		counter += 1

		print('The loop was stopped when counter =', counter)
	  

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

1
2
3
4
5
The loop was stopped when counter = 5

إذاً الجملة break جعلت الحلقة تتوقف عندما أصبحت قيمة العداد counter تساوي 5.



في المثال التالي قمنا بتعريف حلقة for كانت ستطبع جميع الأرقام من 1 إلى 10 لولا أننا إستخدمنا الجملة break لجعل الحلقة تتوقف عندما تصبح قيمة الـ n تساوي 5.

المثال الثاني

Test.py
                    for n in range(1, 11):
		print(n)
		if n == 5:
		break

		print('The loop was stopped when n =', n)
	  

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

1
2
3
4
5
The loop was stopped when n = 5

إذاً الجملة break جعلت الحلقة تتوقف عندما أصبحت قيمة المتغير n تساوي 5.

جملة التحكم continue في بايثون

مفهوم الجملة continue في بايثون

الجملة continue تستخدم بشكل عام لإيقاف الدورة الحالية في الحلقة و الإنتقال إلى الدورة التالية فيها في حال تحقق شرط معين.


طريقة إستخدامها

تتألف هذه الجملة من أمر واحد و يكتب على سطر منفرد.

continue

أمثلة حول طريقة استخدام جملة التحكم continue في بايثون


في المثال التالي قمنا بتعريف حلقة for كانت ستطبع جميع الأرقام من 1 إلى 5 لولا أننا إستخدمنا الجملة continue لجعل الحلقة تنتقل للدورة التالية عندما تصبح قيمة n تساوي 3.

المثال الأول

Test.py
                    for n in range(1, 6):
		if n == 3:
		continue
		print(n)
	  

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

1
2
4
5

إذاً الجملة continue جعلت الحلقة تنتقل للدورة التالي عندما أصبحت قيمة المتغير n تساوي 3.



في المثال التالي قمنا بتعريف حلقة تطبع جميع الأرقام المفردة من 1 إلى 10.
إستخدمنا الجملة continue لجعل الحلقة تتجاوز كل دورة تكون فيها قيمة المتغير n عبارة عن عدد مزدوج.

المثال الثاني

Test.py
                    for n in range(1, 11):
		if n % 2 == 0:
		continue
		print(n)
	  

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

1
3
5
7
9

إذاً الجملة continue جعلت الحلقة تتجاوز كل دورة كانت فيها قيمة المتغير n عبارة عن عدد مفرد.



في المثال التالي قمنا بتعريف حلقة تمر على جميع أحرف النص المخزن في المتغير sentence.
في هذه الحلقة إستخدمنا الجملة continue لتجاوز كل دورة تكون فيها قيمة المتغير n تساوي الحرف a.

المثال الثالث

Test.py
                    sentence = 'harmash'

		for c in sentence:
		if c == 'a':
		continue
		print(c)
	  

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

h
r
m
s
h

إذاً الجملة continue جعلت الحلقة تتجاوز كل دورة كانت فيها قيمة المتغير n تساوي الحرف a.

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

في البداية, أعداد تعني 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.

دوال و ثوابت الموديل 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 يحتوي أيضاً على الثوابت التالية التي تتعلق بالرياضيات.

إسم الثابت تعريفه
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 فتبدل أماكن عناصرها بشكل عشوائي.
تابع القراءة »

بايثون الدالة int(x)

تعريفها

هذه الدالة موجودة جاهزة في بايثون, و هي تحول القيمة التي نمررها لها مكان الباراميتر x لعدد صحيح (int) و ترجعها.


بناؤها

                  class int(x=0)
	

باراميترات

x يمكن أن تكون كائن من أي نوع بشرط أن يكون يمثل قيمة عددية.
ملاحظة: يمكن أن تكون قيمة x عبارة عن عدد أو نص يمثل عدد صحيح بشرط أن لا يحتوي على أي رمز أو مسافة فارغة, مثال: '20'.


قيمة الإرجاع

ترجع القيمة التي نمررها لها مكان الباراميتر x كعدد صحيح (int).


مثال

Test.py
                    x = 5.5           # ( float أي ) قيمته عبارة عن عدد عشري x هنا قمنا بتعريف متغير إسمه
		y = int(x)        # y ثم وضعناها في متغير جديد إسمه ( int أي ) إلى قيمة صحيحة x هنا قمنا بتحويل قيمة المتغير

		print('x =', x)   # x هنا قمنا بعرض قيمة المتغير
		print('y =', y)   # y هنا قمنا بعرض قيمة المتغير
	  

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

x = 5.5
y = 5

بايثون الدالة int(x, base)

تعريفها

هذه الدالة موجودة جاهزة في بايثون, و هي تحول القيمة النصية التي نمررها لها مكان الباراميتر x لعدد صحيح (int) بناءاً على قيمة المتغير base و ترجعها.


معلومة تقنية

إفتراضياً, أي عدد نقوم بتعريفه يعتبر مبني على الـ Base 10 حتى إن لم نقم بتحديد ذلك بأنفسنا.
لهذا تلاحظ أن قيمة الباراميتر base تساوي 10 بشكل إفتراضي ما لم تقم بتحديدها.


بناؤها

class int(x, base=10)
	

باراميترات

  • x عبارة عن نص يمثل العدد الصحيح الذي سيتم تحويل قيمته و إرجاعها.

  • base عبارة عن عدد صحيح يمثل نوع الوحدة التي سيتم إعتمادها عند تحويل قيمة المتغير x.

    و بالتالي العدد الذي نضعه مكان الـbase يحدد نوع قيمة المتغير x و التي يمكن أن تكون binary - octal - decimal - hexadecimal.
    الـbase يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.


قيمة الإرجاع

ترجع القيمة التي نمررها لها مكان الباراميتر x كعدد صحيح (int).


مثال

Test.py
x = '101'         # ( string أي ) قيمته عبارة عن نص x هنا قمنا بتعريف متغير إسمه
		y = int(x, 2)     # y مبنية على الوحدة 2. ثم وضعناها في متغير جديد إسمه x و حددنا أن الـ ( int أي ) إلى قيمة صحيحة x هنا قمنا بتحويل قيمة المتغير

		print('x =', x)   # x هنا قمنا بعرض قيمة المتغير
		print('y =', y)   # y هنا قمنا بعرض قيمة المتغير
	  

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

x = 101
y = 5

بايثون الدالة float(x)

تعريفها

هذه الدالة موجودة جاهزة في بايثون, و هي تحول القيمة التي نمررها لها مكان الباراميتر x لعدد عشري (float) و ترجعها.


بناؤها

class float([x])
	

باراميترات

x يمكن أن تكون كائن من أي نوع بشرط أن يكون يمثل قيمة عددية.
ملاحظة: يمكن أن تكون قيمة x عبارة عن عدد أو نص يمثل عدد بشرط أن لا يحتوي على أي رمز أو مسافة فارغة, مثال: '5.2'.


قيمة الإرجاع

ترجع القيمة التي نمررها لها مكان الباراميتر x كعدد عشري (float).


مثال

Test.py
x = '10.5'        # ( float أي ) يمثل عدد عشري ( string أي ) قيمته عبارة عن نص x هنا قمنا بتعريف متغير إسمه
		y = float(x)      # y ثم وضعناها في متغير جديد إسمه ( float أي ) إلى قيمة عشرية x هنا قمنا بتحويل قيمة المتغير

		print('x =', x)   # x هنا قمنا بعرض قيمة المتغير
		print('y =', y)   # y هنا قمنا بعرض قيمة المتغير
	  

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

x = 10.5
y = 10.5

بايثون الدالة complex(real, imag)

تعريفها

هذه الدالة موجودة جاهزة في بايثون, و هي ترجع قيمة المتغير real و المتغير imag كعدد مركب (Complex Number).
العدد المركب بطبيعته يحتوي على قيمتين:
- الأولى هي قيمة المتغير real كالقيمة الحقيقية (Real Part).
- الثانية هي قيمة المتغير imag كقيمة الخيالية (Imaginary Part).

ملاحظة: في حال قمت بتمرير قيمة واحدة لها, فإنك هنا فعلياً تدخل القيمة الحقيقية للعدد المركب, و القيمة الوهمية تعتبر 0.


بناؤها

                  class complex([real[, imag]])
	

باراميترات

  • real عبارة عن عدد يمثل عدد صحيح أو بفاصلة عشرية.

  • imag عبارة عن عدد يمثل عدد صحيح أو بفاصلة عشرية.

ملاحظة: بدل وضع قيمتين منفصلتين, يمكنك تمرير نص يمثل قيمة المتغير real و المتغير imag بشرط أن لا يحتوي على أي رمز أو مسافة فارغة.
مثال: complex('1+2j').


قيمة الإرجاع

ترجع قيمة المتغير real و المتغير imag كعدد مركب (Complex Number).


مثال

Test.py
                    x = complex(1, 2)   # x و وضعنا العدد المركب الذي أرجعته بناءاً على هذين العددين في المتغير imag و 2 مكان الباراميتر real مع إعطائها 1 مكان الباراميتر complex هنا قمنا باستدعاء الدالة

		print('x =', x)     # و التي تمثل عدد مركب x هنا قمنا بعرض قيمة المتغير
	  

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

x = (1+2j)

بايثون الدالة abs()

تعريفها

ترجع القيمة المطلقة للعدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  abs(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع القيمة المطلقة للعدد الذي نمرره لها مكان الباراميتر x.


مثال

Test.py
                    x = -5                       # -قيمته 5 x هنا قمنا بتعريف متغير إسمه

		print('x =', x)              # كما هي x هنا قمنا بعرض قيمة المتغير
		print('abs(x) =', abs(x))    # abs() المطلقة التي أرجعتها الدالة x هنا قمنا بعرض قيمة المتغير
	  

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

x = -5
abs(x) = 5

بايثون الدالة round()

تعريفها

ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر number.


بناؤها

                  round(number[, ndigits])
	

باراميترات

  • number عبارة عن عدد ليس له نوع محدد.

  • ndigits هذا باراميتر إختياري أي لست مجبراً على تمرير قيمة مكانه, و هو عبارة عن عدد صحيح يمثل عند أي عدد بعض الفاصلة تريد أن يحدث التقريب Rounding.
    في حال مررت القيمة None أو لم تمرر قيمة مكان هذا الباراميتر, سيتم إعتبار أنك قمت بتمرير القيمة 0 له و بالتالي لن يتم إظهار أي عدد بعض الفاصلة.


قيمة الإرجاع

ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    x = 5.674                                 # قيمته 5.674 x هنا قمنا بتعريف متغير إسمه

		print('round(',x,')    =', round(x))      # x لترجع أقرب قيمة لقيمة المتغير round() هنا قمنا باستدعاء الدالة
		print('round(',x,', 1) =', round(x, 1))   # مع تجاهل أي عدد موجود بعد الفاصلة بعدد واحد x لترجع أقرب قيمة لقيمة المتغير round() هنا قمنا باستدعاء الدالة
		print('round(',x,', 2) =', round(x, 2))   # مع تجاهل أي عدد موجود بعد الفاصلة بعددين x لترجع أقرب قيمة لقيمة المتغير round() هنا قمنا باستدعاء الدالة
		print('round(',x,', 3) =', round(x, 3))   # مع تجاهل أي عدد موجود بعد الفاصلة بثلاثة أعداد x لترجع أقرب قيمة لقيمة المتغير round() هنا قمنا باستدعاء الدالة
		print('round(',x,', 4) =', round(x, 4))   # مع تجاهل أي عدد موجود بعد الفاصلة بأربعة أعداد x لترجع أقرب قيمة لقيمة المتغير round() هنا قمنا باستدعاء الدالة
	  

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

round( 5.674 )    = 6
round( 5.674 , 1) = 5.7
round( 5.674 , 2) = 5.67
round( 5.674 , 3) = 5.674
round( 5.674 , 4) = 5.674

بايثون الدالة max()

تعريفها

ترجع العدد الأكبر بين مجموعة الأعداد التي نمررها لها كـ Arguments.


بناؤها

                  # الشكل الأول
	  max(iterable, *[, key, default])

	  # الشكل الثاني
	  max(arg1, arg2, *args[, key])
	

باراميترات

يمكن إستدعاء هذه الدالة بطريقتين:

  • يمكن تمرير مصفوفة من الأعداد لها كـ Argument مع وضع عناصرها بين [] أو ().

  • و يمكن تمرير أي عدد من الأعداد لها كـ Arguments مع وضع فاصلة بين كل عددين.


قيمة الإرجاع

ترجع العدد الأكبر بين مجموعة الأعداد التي نمررها لها كـ Arguments.


المثال الأول

Test.py
                    # هنا قمنا بتعريف 3 متغيرات تحتوي على قيم مختلفة
		x = 1
		y = 7
		z = 4

		# max بواسطة الدالة z و y ,x هنا قمنا بعرض القيمة الأكبر بين القيم الموجودة في المتغيرات
		print('The biggest number is:', max(x, y, z))
	  

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

The biggest number is: 7

المثال الثاني

Test.py
                    # ( أي ككائن واحد يحتوي على مجموعة قيم ) iterable هنا قمنا بتعريف مصفوفة من الأعداد و وضعنا قيمها بداخل [] حتى تصبح كـ
		iterable = list([1, 4, 2, 9, 6, 5])

		# iterable هنا قمنا بعرض القيمة الأكبر بين القيم الموجودة في الكائن
		print('The biggest number is:', max(iterable)) 
	  

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

The biggest number is: 9

بايثون الدالة min()

تعريفها

ترجع العدد الأصغر بين مجموعة الأعداد التي نمررها لها كـ Arguments.


بناؤها

                  # الشكل الأول
	  min(iterable, *[, key, default])

	  # الشكل الثاني
	  min(arg1, arg2, *args[, key])
	

باراميترات

يمكن إستدعاء هذه الدالة بطريقتين:

  • يمكن تمرير مصفوفة من الأعداد لها كـ Argument مع وضع عناصرها بين [] أو ().

  • و يمكن تمرير أي عدد من الأعداد لها كـ Arguments مع وضع فاصلة بين كل عددين.


قيمة الإرجاع

ترجع العدد الأصغر بين مجموعة الأعداد التي نمررها لها كـ Arguments.


المثال الأول

Test.py
                    # هنا قمنا بتعريف 3 متغيرات تحتوي على قيم مختلفة
		x = 7
		y = 1
		z = 4

		# min بواسطة الدالة z و y ,x هنا قمنا بعرض القيمة الأصغر بين القيم الموجودة في المتغيرات
		print('The smallest number is:', min(x, y, z))
	  

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

The smallest number is: 1

المثال الثاني

Test.py
                    # ( أي ككائن واحد يحتوي على مجموعة قيم ) iterable هنا قمنا بتعريف مصفوفة من الأعداد و وضعنا قيمها بداخل [] حتى تصبح كـ
		iterable = list([1, 4, 2, 9, 6, 5])

		# iterable هنا قمنا بعرض القيمة الأصغر بين القيم الموجودة في الكائن
		print('The smallest number is:', min(iterable))
	  

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

The smallest number is: 1

بايثون الدالة ceil()

تعريفها

ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  ceil(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.


مثال

Test.py
                    # ceil() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# ceil() هنا قمنا بعرض العدد الصحيح الأكبر أو الذي يساوي 5.0 الذي أرجعته الدالة
		print('math.ceil(5.0) =', math.ceil(5.0))

		# ceil() هنا قمنا بعرض العدد الصحيح الأكبر أو الذي يساوي 5.3 الذي أرجعته الدالة
		print('math.ceil(5.3) =', math.ceil(5.3))

		# ceil() هنا قمنا بعرض العدد الصحيح الأكبر أو الذي يساوي 5.7 الذي أرجعته الدالة
		print('math.ceil(5.7) =', math.ceil(5.7))
	  

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

math.ceil(5.0) = 5
math.ceil(5.3) = 6
math.ceil(5.7) = 6

بايثون الدالة floor()

تعريفها

ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  floor(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.


مثال

Test.py
                    # floor() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# floor() هنا قمنا بعرض العدد الصحيح الأصغر أو الذي يساوي 5.0 الذي أرجعته الدالة
		print('math.floor(5.0) =', math.floor(5.0))

		# floor() هنا قمنا بعرض العدد الصحيح الأصغر أو الذي يساوي 5.3 الذي أرجعته الدالة
		print('math.floor(5.3) =', math.floor(5.3))

		# floor() هنا قمنا بعرض العدد الصحيح الأصغر أو الذي يساوي 5.7 الذي أرجعته الدالة
		print('math.floor(5.7) =', math.floor(5.7))
	  

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

math.floor(5.0) = 5
math.floor(5.3) = 5
math.floor(5.7) = 5

بايثون الدالة pow()

تعريفها

ترجع الناتج من مضاعفة قيمة العدد الذي نمرره لها مكان الباراميتر x مضاعف بقيمة الباراميتر y.
pow إختصار لكلمة power.


بناؤها

                  pow(x, y)
	

باراميترات

  • x عبارة عن عدد ليس له نوع محدد.

  • y عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع الناتج من مضاعفة قيمة العدد الذي نمرره لها مكان الباراميتر x مضاعف بقيمة الباراميتر y, ترجعه كـ float.


مثال

Test.py
                    # pow() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# pow() هنا قمنا بعرض ناتج مضاعفة العدد 5 مرتين الذي أرجعته الدالة
		print('pow(5, 2) =', math.pow(5, 2))
	  

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

pow(5, 2) = 25.0

بايثون الدالة sqrt()

تعريفها

ترجع قيمة الجزر التربيعي (square root) للعدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  sqrt(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الجزر التربيعي للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # sqrt() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# sqrt() هنا قمنا بعرض ناتج الجزر التربيعي للعدد 25 الذي أرجعته الدالة
		print('sqrt(25) =', math.sqrt(25))
	  

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

sqrt(25) = 5.0

بايثون الدالة exp()

تعريفها

ترجع قيمة الـ exponential للعدد الذي نمرره لها مكان الباراميتر x و التي تساوي e**x.
في الرياضيات يرمز للـ exponential بالحرف e و قيمته تساوي 2.718281828459045 و يمكننا الحصول عليها من الموديول math هكذا math.e.


بناؤها

                  exp(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ exponential للعدد الذي نضعه لها مكان الباراميتر x و التي تساوي قيمة e مضاعفة بقيمة x.


مثال

Test.py
                    # exp() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# exp() للعدد 5 التي أرجعتها الدالة exponential هنا قمنا بعرض قيمة الـ
		print('math.exp(5) =', math.exp(5))
	  

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

math.exp(5) = 148.4131591025766

بايثون الدالة log()

تعريفها

ترجع قيمة الـ Logarithm للعدد الذي نمرره لها مكان الباراميتر x مع إمكانية تحديد نوع الوحدة لهذا العدد.
يرمز له بـ log في الرياضيات.


بناؤها

                  log(x[, base])
	

باراميترات

  • x عبارة عن عدد ليس له نوع محدد.

  • base هذا باراميتر إختياري أي لست مجبراً على تمرير قيمة مكانه, و هو عبارة عن عدد صحيح يمثل وحدة الباراميتر x.
    في حال لم تمرر قيمة مكان هذا الباراميتر, سيتم إعتبار أنك قمت بتمرير قيمة الـ e مكانه.


قيمة الإرجاع

ترجع قيمة الـ Logarithm للعدد الذي نمرره لها مكان الباراميتر x.


مثال

Test.py
                    # log() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# log() التي أرجعتها الدالة ( e تساوي base للعدد 5 ( مع إعتبار أن الـ Logarithm هنا قمنا بعرض قيمة الـ
		print('log(5)     =', math.log(5))

		# log() و التي أرجعتها الدالة ( log base e للعدد 5 ( مع تحديد أننا نستخدم Logarithm هنا قمنا بعرض قيمة الـ
		print('log(5, e)  =', math.log(5, math.e))

		# log() و التي أرجعتها الدالة ( log base 2 للعدد 5 ( مع تحديد أننا نستخدم Logarithm هنا قمنا بعرض قيمة الـ
		print('log(5, 2)  =', math.log(5, 2))

		# log() و التي أرجعتها الدالة ( log base 10 للعدد 5 ( مع تحديد أننا نستخدم Logarithm هنا قمنا بعرض قيمة الـ
		print('log(5, 10) =', math.log(5, 10))
	  

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

log(5)     = 1.6094379124341003
log(5, e)  = 1.6094379124341003
log(5, 2)  = 2.321928094887362
log(5, 10) = 0.6989700043360187

بايثون الدالة log2()

تعريفها

ترجع قيمة الـ Logarithm Base 2 للعدد الذي نمرره لها مكان الباراميتر x.
يرمز له بـ log2 في الرياضيات.

هذه الدالة تعتبر بديل للدالة log(x, 2).

بناؤها

                  log2(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ Logarithm Base 2 للعدد الذي نمرره لها مكان الباراميتر x.


مثال

Test.py
                    # log2() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# log2() للعدد 5 و التي أرجعتها الدالة Logarithm Base 2 هنا قمنا بعرض قيمة الـ
		print('log2(5) =', math.log2(5))
	  

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

log2(5) = 2.321928094887362

بايثون الدالة log10()

تعريفها

ترجع قيمة الـ Logarithm Base 10 للعدد الذي نمرره لها مكان الباراميتر x.
يرمز له بـ log10 في الرياضيات.

هذه الدالة تعتبر بديل للدالة log(x, 10).

بناؤها

                  log10(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ Logarithm Base 10 للعدد الذي نمرره لها مكان الباراميتر x.


مثال

Test.py
                    # log10() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# log10() للعدد 5 و التي أرجعتها الدالة Logarithm Base 10 هنا قمنا بعرض قيمة الـ
		print('log10(5) =', math.log10(5))
	  

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

log10(5) = 0.6989700043360189

بايثون الدالة sin()

تعريفها

ترجع قيمة الـ sine للعدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  sin(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ sine للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # sin() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# sin() للعدد 25 الذي أرجعته الدالة sine هنا قمنا بعرض ناتج الـ
		print('sin(25) =', math.sin(25))
	  

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

sin(25) = -0.13235175009777303

بايثون الدالة cos()

تعريفها

ترجع قيمة الـ cosine للعدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  cos(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ cosine للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # cos() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# cos() للعدد 25 الذي أرجعته الدالة cosine هنا قمنا بعرض ناتج الـ
		print('cos(25) =', math.cos(25))
	  

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

cos(25) = 0.9912028118634736

بايثون الدالة tan()

تعريفها

ترجع قيمة الـ tangent للعدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  tan(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ tangent للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # tan() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# tan() للعدد 25 الذي أرجعته الدالة tangent هنا قمنا بعرض ناتج الـ
		print('tan(25) =', math.tan(25))
	  

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

tan(25) = -0.13352640702153587

بايثون الدالة asin()

تعريفها

ترجع قيمة الـ arc sine للعدد الذي نمرره لها مكان الباراميتر x.
القيمة التي نضعها يجب أن تكون بين 1- و 1.


بناؤها

                  asin(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ arc sine للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # asin() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# asin() للعدد 0.5 الذي أرجعته الدالة arc sine هنا قمنا بعرض ناتج الـ
		print('asin(0.5) =', math.asin(0.5))
	  

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

asin(0.5) = -0.13352640702153587

بايثون الدالة acos()

تعريفها

ترجع قيمة الـ arc cosine للعدد الذي نمرره لها مكان الباراميتر x.
القيمة التي نضعها يجب أن تكون بين 1- و 1.


بناؤها

                  acos(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ arc cosine للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # acos() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# acos() للعدد 0.5 الذي أرجعته الدالة arc cosine هنا قمنا بعرض ناتج الـ
		print('acos(0.5) =', math.acos(0.5))
	  

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

acos(0.5) = 1.0471975511965979

بايثون الدالة atan()

تعريفها

ترجع قيمة الـ arc tangent للعدد الذي نمرره لها مكان الباراميتر x.


بناؤها

                  atan(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ arc tangent للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # atan() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# atan() للعدد 40.5 الذي أرجعته الدالة arc tangent هنا قمنا بعرض ناتج الـ
		print('atan(40.5) =', math.atan(40.5))
	  

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

atan(40.5) = 1.5461099847392972

بايثون الدالة degrees()

تعريفها

تحول قيمة العدد الذي نمرره لها مكان الباراميتر x لـ Degrees.


بناؤها

                  degrees(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ Degrees للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # degrees() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# degrees() للعدد 15 الذي أرجعته الدالة Degrees هنا قمنا بعرض ناتج الـ
		print('degrees(15) =', math.degrees(15))
	  

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

degrees(15) = 859.4366926962348

بايثون الدالة radians()

تعريفها

تحول قيمة العدد الذي نمرره لها مكان الباراميتر x لـ Radians.


بناؤها

                  radians(x)
	

باراميترات

x عبارة عن عدد ليس له نوع محدد.


قيمة الإرجاع

ترجع قيمة الـ Radians للعدد الذي نمرره لها مكان الباراميتر x, ترجعه كـ float.


مثال

Test.py
                    # radians() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# radians() للعدد 15 الذي أرجعته الدالة Radians هنا قمنا بعرض ناتج الـ
		print('radians(15) =', math.radians(15))
	  

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

radians(15) = 0.2617993877991494

بايثون الدالة gcd()

تعريفها

ترجع عدد صحيح يمثل القاسم المشترك الأكبر (Greatest Common Divisor) بين العددين اللذين نمررهما لها مكان الباراميترين x و y.


بناؤها

                  gcd(x, y)
	

باراميترات

  • x عبارة عن عدد صحيح.

  • y عبارة عن عدد صحيح.


قيمة الإرجاع

ترجع عدد صحيح يمثل القاسم المشترك الأكبر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.


مثال

Test.py
                    # gcd() الذي يحتوي على الدالة math هنا قمنا باستدعاء الموديول
		import math

		# gcd() هنا قمنا بعرض العدد المشترك الأكبر بين العددين 36 و 45 الذي أرجعته الدالة
		print('gcd(36, 45) =', math.gcd(36, 45))
	  

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

gcd(36, 45) = 9

بايثون الدالة random()

تعريفها

ترجع عدد عشري عشوائي بين 0.0 و 1.0.

إذاً, نطاق الأعداد التي ترجعها هو: 0.0 <= N < 1.0.


بناؤها

                  random()
	

باراميترات

لا تقبل أي باراميتر.


قيمة الإرجاع

ترجع عدد عشري قيمته بين 0.0 و 1.0.


المثال الأول

Test.py
                    # random() الذي يحتوي على الدالة random هنا قمنا باستدعاء الموديول
		import random

		# random() هنا قمنا بعرض العدد الذي أرجعته الدالة
		print('Random Number = ', random.random())

		# random() هنا قمنا بعرض العدد الذي أرجعته الدالة
		print('Random Number = ', random.random())

		# random() هنا قمنا بعرض العدد الذي أرجعته الدالة
		print('Random Number = ', random.random())
	  

سنحصل على ثلاث قيم مختلفة بين 0.0 و 1.0 عند التشغيل.

Random Number = 0.8630498170020632
Random Number = 0.7316381331323908
Random Number = 0.9113637080594214

ملاحظة

يمكننا تغيير نطاق الأعداد التي يمكن أن ترجعها الدالة باستخدام العمليات الحسابية.
فمثلاً بكل بساطة نستطيع ضرب العدد الذي ترجعه الدالة بـ 10 و تحويل الناتج إلى int فيصبح النطاق بين 0 =< N < 10.


المثال الثاني

Test.py
                    # random() الذي يحتوي على الدالة random هنا قمنا باستدعاء الموديول
		import random

		# بعدها قمنا بعرضها int بـ 10 ثم حولنا الناتج إلى random() هنا قمنا بضرب العدد الذي أرجعته الدالة
		print('Random Number = ', int(random.random()*10))

		# بعدها قمنا بعرضها int بـ 10 ثم حولنا الناتج إلى random() هنا قمنا بضرب العدد الذي أرجعته الدالة
		print('Random Number = ', int(random.random()*10))

		# بعدها قمنا بعرضها int بـ 10 ثم حولنا الناتج إلى random() هنا قمنا بضرب العدد الذي أرجعته الدالة
		print('Random Number = ', int(random.random()*10))
	  

سنحصل على ثلاث قيم مختلفة بين 0.0 و 1.0 عند التشغيل.

Random Number = 8
Random Number = 5
Random Number = 1

بايثون الدالة uniform()

تعريفها

ترجع عدد عشري عشوائي بين القيمة التي نمررها لها مكان الباراميتر a و القيمة التي نمررها لها مكان الباراميتر b.

إذاً, نطاق الأعداد التي ترجعها هو: a <= N <= b.


بناؤها

                  uniform( a, b )
	

باراميترات

  • a عبارة عن عدد عشري يحدد أقل قيمة ممكن أن تولدها الدالة.

  • b عبارة عن عدد عشري يحدد القيمة القصوى التي لا يمكن أن ترجعها الدالة.


قيمة الإرجاع

ترجع عدد صحيح عشوائي بين القيمة التي نمررها لها مكان الباراميتر a و القيمة التي نمررها لها مكان الباراميتر b.


مثال

Test.py
                    # uniform() الذي يحتوي على الدالة random هنا قمنا باستدعاء الموديول
		import random

		# هنا قمنا بطباعة ثلاث أعداد عشوائية بين 1 و 10
		print('Random Number between [1-10] =', random.uniform(1, 10))
		print('Random Number between [1-10] =', random.uniform(1, 10))
		print('Random Number between [1-10] =', random.uniform(1, 10))
	  

سنحصل على ثلاث قيم مختلفة ضمن ثلاث نطاقات مختلفة عند التشغيل.

Random Number between [1-10] = 7.918523869665445
Random Number between [1-10] = 1.766162593475313
Random Number between [1-10] = 5.147901074651577

بايثون الدالة randrange()

تعريفها

ترجع عدد صحيح عشوائي بين 0 و القيمة التي نمررها لها مكان الباراميتر stop.
أو ترجع عدد صحيح عشوائي بين القيمة التي نمررها لها مكان الباراميتر start و القيمة التي نمررها لها مكان الباراميتر stop.

يمكن إستدعاء هذه الدالة بثلاث طرق, سنتعرف عليها لاحقاً في المثال.


بناؤها

                  randrange( [start,] stop [,step] )
	

باراميترات

  • start عبارة عن عدد صحيح يحدد أقل قيمة ممكن أن تولدها الدالة.
    إذا لم يتم تمرير قيمة مكان الباراميتر stop ستعتبر قيمته تساوي 0.

  • stop عبارة عن عدد صحيح يحدد القيمة القصوى التي لا يمكن أن ترجعها الدالة.

  • step عبارة عن عدد صحيح يحدد بكم ستضرب القيمة العشوائية التي سيتم إرجاعها مع الأخذ بعين الإعتبار أن الناتج يجب أن يكون ضمن النطاق الذي تم تحديده.


قيمة الإرجاع

ترجع عدد صحيح عشوائي بين 0 و القيمة التي نمررها لها مكان الباراميتر stop.
أو ترجع عدد صحيح عشوائي بين القيمة التي نمررها لها مكان الباراميتر start و القيمة التي نمررها لها مكان الباراميتر stop.


مثال

Test.py
                    # randrange() الذي يحتوي على الدالة random هنا قمنا باستدعاء الموديول
		import random

		# هنا قمنا عدد بطباعة عشوائي بين 0 و 10
		print('Random Number between [0-10] = ', random.randrange(10))

		# هنا قمنا عدد بطباعة عشوائي بين 1 و 50
		print('Random Number between [1-50] = ', random.randrange(1, 50))

		# هنا قمنا عدد بطباعة عشوائي بين 1 و 50 مع مع ضرب القيمة التي سترجع بـ 5
		print('Random Number between [1-50, step=5] = ', random.randrange(1, 50, 5))
	  

سنحصل على ثلاث قيم مختلفة ضمن ثلاث نطاقات مختلفة عند التشغيل.

Random Number between [0-10] = 4
Random Number between [1-50] = 20
Random Number between [1-50, step=5] = 35

بايثون الدالة choice()

تعريفها

ترجع قيمة عشوائية من بين عناصر أي سلسلة (Sequence) نمررها لها.

السلسلة ممكن أن تكون مصفوفة من الأعداد, أو نص عادي (أي سلسلة من الأحرف).
فمثلاً, إذا مررنا لها مصفوفة من الأعداد, ترجع عدد عشوائي من ضمن هذه المصفوفة. و إذا مررنا لها نص, ترجع حرف عشوائي من ضمن هذا النص.


بناؤها

                  choice( seq )
	

باراميترات

seq عبارة عن مصفوفة أو نص.


قيمة الإرجاع

  • إذا مررنا لها مصفوفة من الأعداد, ترجع عدد عشوائي من ضمن هذه المصفوفة.

  • إذا مررنا لها نص, ترجع حرف عشوائي من ضمن هذا النص.


مثال

Test.py
                    # choice() الذي يحتوي على الدالة random هنا قمنا باستدعاء الموديول
		import random

		# يحتوي على نص s هنا قمنا بتعريف متغير إسمه
		s = 'harmash'

		# lst هنا قمنا بتعريف مصفوفة تحتوي على أعداد إسمها
		lst = [1, 2, 3, 4, 9]

		# lst هنا قمنا بطباعة قيمة عنصر عشوائي من عناصر المصفوفة
		print('Random element from the list:    ', random.choice(lst))

		# s هنا قمنا بطباعة حرف عشوائي من أحرف المتغير
		print('Random character from the string:', random.choice(s))
	  

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

Random element from the list:     4
Random character from the string: r

بايثون الدالة shuffle()

تعريفها

نمرر لها مصفوفة مكان الباراميتر x فتبدل أماكن عناصرها بشكل عشوائي.


بناؤها

                  shuffle( x )
	

باراميترات

x عبارة عن مصفوفة ليس لها نوع محدد.


قيمة الإرجاع

لا ترجع قيمة.


مثال

Test.py
                    import random            # shuffle() الذي يحتوي على الدالة random هنا قمنا باستدعاء الموديول

		arr = [1, 2, 3, 4, 5]    # arr هنا قمنا بتعريف مصفوفة تحتوي على أعداد إسمها

		print('arr =', arr)      # arr هنا قمنا بطباعة قيم جميع عناصر المصفوفة

		random.shuffle(arr)      # shuffle() بشكل عشوائي بواسطة الدالة arr هنا قمنا بتبديل عناصر المصفوفة

		print('arr =', arr)      # من جديد لنلاحظ الفرق arr هنا قمنا بطباعة قيم جميع عناصر المصفوفة
	  

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

arr = [1, 2, 3, 4, 5]
arr = [3, 1, 4, 5, 2]