القائمة الرئيسية

الصفحات

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

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

دالة: تعني Method او Function في اللغة الإنجليزية, و هي عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها.
كما أن بايثون تحتوي على مجموعة كبيرة جداً من الدوال الجاهزة التي سبق أن إستخدامنا بعضها مثل الدوال print() و min() و max() و غيرهم من الدوال التي تطرقنا إليها في دروس سابقة.


مصطلحات تقنية

الدوال الجاهزة في بايثون, يقال لها Built-in Functions.
الدوال التي يقوم المبرمج بتعريفها, يقال لها User-defined Functions.

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

الشكل الأساسي الذي يجب إتباعه عند تعريف أي دالة في بايثون هو التالي:

def functionname():
&nbsp &nbsp function_suite

def: تعني أنك تعرف دالة جديدة.
functionname: نضع مكانها الإسم الذي نعطيه للدالة, و الذي من خلاله يمكننا استدعاءها.
(): بداخل القوسين يمكنك وضع باراميترات و يجب أن تضع : مباشرةً بعد القوسين و من ثم تنزل على سطر جديد لتبدأ بكتابة الأوامر التي ستتنفذ عند إستدعاء الدالة.
function_suite: تعني الأوامر التي سنضعها في الدالة و التي ستتنفذ عند إستدعاءها.


إنتبه

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


في المثال التالي قمنا بتعريف دالة إسمها ">my_function وضعنا فيها أمر طباعة واحد فقط. بعدها قمنا باستدعائها.

المثال الأول

Test.py
# my_function هنا قمنا بتعريف دالة إسمها
def my_function():
    print('My first function is called')


# حتى يتنفذ الأمر الموضوع فيها my_function هنا قمنا باستدعاء الدالة
my_function()
		

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

My first function is called


جميع المعلومات التي يمكن ذكرها عند تعريف دالة جديدة

قبل قليل تكلمنا عن الأشياء الأساسية التي يجب أن تكون متوفرة عند تعريف أي دالة.
الآن, عليك معرفة أنه يمكنك وضع مزيد من التفاصيل بشرط أن تضيفها ضمن ترتيب محدد و ليس شرطاً أن تضيفها كلها.

def functionname(parameters):
&nbsp &nbsp """ function_docstring """
&nbsp &nbsp function_suite
&nbsp &nbsp return [expression]

def: تعني أنك تعرف دالة جديدة.
functionname: نضع مكانها الإسم الذي نعطيه للدالة, و الذي من خلاله يمكننا استدعاءها.
parameters: المقصود بها الباراميترات التي نمررها لها عند إستدعاءها ( وضع الباراميترات هو أمر إختياري ).
""" function_docstring """: نضع مكانها نص الهدف منه تفسير ما تفعله الدالة بشكل مختصر ( وضع التفسير هو أمر إختياري ).
function_suite: تعني الأوامر التي نضعها في الدالة.
return [expression]

: نضع مكانها ما يمكن أن ترجعه الدالة في المكان الذي تم إستدعاءها منه ( إرجاع قيمة هو أمر إختياري ).

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

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

Test.py
# تحتوي على باراميتر واحد. عند إستدعاءها نمرر لها إسم, فتطبع جملة ترحيب بإسم الشخص الذي نمرره لها greeting هنا قمنا بتعريف دالة إسمها
def greeting(name):
	""" This function print hello message based on the specified name """
    print('Hello '+name+', welcome to our company.')


# user هنا قمنا بتخزين إسم الشخص الذي سنمرره للدالة في المتغير
user = 'Ahmad'

# حتى تطبع رسالة ترحيب له user و تمرير إسم الشخص الذي قمنا بتخزينه في المتغير greeting() هنا قمنا باستدعاء الدالة
greeting(user)
		

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

Hello Ahmad, welcome to our company.


هنا قمنا بكتابة نفس الدالة السابقة لكننا قمنا هذه المرة بطباعة الشرح الموضوع في الدالة ( أي الـ doc string ) و ليس إستدعاءها.

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

Test.py
# تحتوي على باراميتر واحد. عند إستدعاءها نمرر لها إسم, فتطبع جملة ترحيب بإسم الشخص الذي نمرره لها greeting هنا قمنا بتعريف دالة إسمها
def greeting(name):
	""" This function print hello message based on the specified name """
    print('Hello '+name+', welcome to our company.')


# greeting() هنا قمنا بطباعة الشرح المرفق بالدالة
print(greeting.__doc__)
		

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

This function print hello message based on the specified name


في المثال التالي قمنا بتعريف دالة إسمها get_sum, عند إستدعاءها نمرر لها عددين فترجع لنا ناتج جمعهما.

المثال الرابع

Test.py
# عند إستدعاءها نمرر لها عددين فتقوم بإرجاع ناتج جمعهما get_sum هنا قمنا بتعريف دالة إسمها
def get_sum(a, b):
    """This method returns the sum of the numbers that you passed in a and b"""
    return a + b;


# x في المتغير get_sum() هنا قمنا بتخزين ناتج العددين 3 و 5 الذي سترجعه الدالة
x = get_sum(3, 5)

# و التي ستساوي 8 x هنا قمنا بعرض قيمة المتغير
print(x)
		

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

8

وضع قيم إفتراضية للباراميترات في بايثون

بايثون تتيح لك وضع قيم إفتراضية للباراميترات مما يجعلك عند إستدعاء الدالة مخيّر على تمرير قيم مكان الباراميترات بدل أن تكون مجبراً على ذلك.


مصطلحات تقنية

القيمة الإفتراضية التي نضعها للباراميتر يقال لها Default Argument.


في المثال التالي قمنا بتعريف دالة إسمها print_language.
هذه الدالة فيها باراميتر واحد إسمه language يملك النص 'English' كقيمة إفتراضية.
كل ما تفعله هذه الدالة عند إستدعاءها هو طباعة قيمة الباراميتر language.

ملاحظة: بما أن الباراميتر language يملك قيمة بشكل إفتراضية, فهذا يعني أنك لم تعد مجبر على تمرير قيمة له عند إستدعاء الدالة لأنه أصلاً يملك قيمة.

مثال

Test.py
# و يمكنك عدم تمرير قيمة لأنه أصلاً يملك قيمة language عند إستدعاءها يمكنك تمرير قيمة لها مكان الباراميتر .print_language هنا قمنا بتعريف دالة إسمها 
def print_language(language='English'):
    print('Your language is:', language)


# 'English' و بالتالي ستظل قيمته language بدون تمرير قيمة مكان الباراميتر print_language() هنا قمنا باستدعاء الدالة
print_language()

# 'Arabic' و بالتالي ستصبح قيمته language للباراميتر 'Arabic' مع تمرير القيمة print_language() هنا قمنا باستدعاء الدالة
print_language('Arabic')
		

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

Your language is: English
Your language is: Arabic

تحديد أسماء الباراميترات التي سيتم إعطاءها قيم في بايثون

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


في المثال التالي قمنا بتعريف دالة إسمها print_info تحتوي على باراميترين name و salary.
بعدها قمنا باستدعائها مرتين:
- في المرة الأولى, قمنا بتمرير قيم للباراميترات بالترتيب الذي تم وضعهم فيه.
- في المرة الثاني قمنا بتمرير نفس القيم للباراميترات و لكن بدون التقيد بالترتيب الموضوعين فيه.

مثال

Test.py
# salary و قيمة مكان الباراميتر name عند إستدعاءها يجب أن نمرر لها قيمة مكان الباراميتر print_info هنا قمنا بتعريف دالة إسمها
def print_info(name, salary):
    print('Name:', name)
    print('Salary:', salary)
    print('------------------')


# بنفس الترتيب الموضوعين فيه salary و الرقم 1500 للباراميتر name للباراميتر 'Nader' مع تمرير النص print_info هنا قمنا بإستدعاء الدالة
print_info('Nader', 1500)

# name سيتم وضعه في الباراميتر 'Nader' و النص salary مع تحديد أن الرقم 1500 سيتم وضعه في الباراميتر print_info هنا قمنا بإستدعاء الدالة
print_info(salary=1500, name='Nader')
		

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

Name: Nader
Salary: 1500
------------------
Name: Nader
Salary: 1500
------------------

بناء دوال تقبل عدد غير محدد من القيم عند إستدعاءها في بايثون

في بعض الأحيان قد تحتاج إلى بناء دالة تعالج عدد غير محدد من القيم عند استدعاءها. أي مهما كان عدد القيم التي ستمررها لها فإنها يجب أن تعالجهم كلهم.

لبناء دالة يمكن تمرير عدد غير محدد من القيم لها عند إستدعاءها عليك تجهيز باراميتر واحد لهذا الأمر.
ببساطة ضع * قبل إسم الباراميتر و عندها سيفهم مفسّر لغة بايثون أنه يمكنك تمرير عدد غير محدد من القيم لهذا الباراميتر. عندها سيتم تجميع كل القيم التي تمررها للدالة بداخل tuple مما يجعلك قادراً على التعامل معهم بكل سهولة.


مصطلحات تقنية

في حال كان عدد القيم التي يمكن تمريرها للباراميتر غير محدد يقال لهذه القيم Variable-length Arguments.



في المثال التالي قمنا بتعريف دالة إسمها print_args تقبل عدد غير محدد من القيم عند إستدعاءها بعدها تقوم فقط بعرض هذه القيم بواسطة الحلقة for.
جميع القيم التي سيتم تمريرها لها, سيتم تخزينها في باراميتر واحد إسمه *args.

المثال الأول

Test.py
# عند إستدعاءها يمكننا تمرير عدد غير محدد من القيم لها. بعدها ستقوم بطباعة القيم التي مررناها لها print_args هنا قمنا بتعريف دالة إسمها
def print_args(*args):
    for e in args:
		print(e)

		
# مع تمرير 10 قيم لها print_args() هنا قمنا بإستدعاء الدالة
print_args(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
		

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

1
2
3
4
5
6
7
8
9
10


في المثال التالي قمنا بتعريف دالة إسمها print_average تقبل عدد غير محدد من القيم عند إستدعاءها.
الهدف من هذه الدالة طباعة متوسط القيم التي تم تمريرها إليها و الذي يساوي ناتج جمع القيم التي تمريرها مقسوماً على عددهم.
جميع القيم التي سيتم تمريرها لها, سيتم تخزينها في باراميتر واحد إسمه *values.

ملاحظة: قمنا بالإعتماد على الدالتين sum() و len() الجاهزتين في بايثون لنحصل على ناتج جمع القيم التي تم تمريرها و عددهم.

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

Test.py
# عند إستدعاءها يمكننا تمرير عدد غير محدد من القيم لها. بعدها ستقوم بطباعة متوسط القيم التي مررناها لها print_average هنا قمنا بتعريف دالة إسمها
def print_average(*values):
    print(sum(values)/len(values))


# مع تمرير 4 قيم لها print_total() هنا قمنا بإستدعاء الدالة
print_average(1, 2, 3, 4)
		

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

2.5


في المثال التالي قمنا بتعريف دالة إسمها print_user_average, الهدف منها طباعة إسم الشخص و متوسط العلامات التي نالها.
إذاً, عند إستدعاءها يجب أن نمرر لها قيمتين على الأقل:
- القيمة الأولى تمثل إسم شخص و الذي سنقوم بتخزينه في باراميتر إسمه user.
- القيمة الثانية أو مجموعة القيم الثانية تمثل علامات هذا الشخص و التي سنقوم بتخزينها في باراميتر واحد إسمه *notes.

ملاحظة: قمنا بالإعتماد على الدالتين sum() و len() الجاهزتين في بايثون لنحصل على ناتج جمع القيم التي تم تمريرها و عددهم.

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

Test.py
# notes و علاماته مكان الباراميتر user عند إستدعاءها يجب أن نمرر لها إسم الشخص مكان الباراميتر .print_user_average هنا قمنا بتعريف دالة إسمها
# و عندها ستقوم بحساب معدل الشخص ( بناءاً على علاماته ) و من ثم عرض إسمه و معدله بشكل مرتب
def print_user_average(user, *notes):
    avg = sum(notes)/len(notes)
    print('The average of', user, 'is:', avg)


# مع تمرير إسم الشخص و 4 قيم ( و التي تمثل علامات الشخص ) لها print_user_average() هنا قمنا بإستدعاء الدالة
print_user_average('Ahmad', 1, 2, 3, 4)
		

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

The average of Ahmad is: 2.5

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

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


مصطلحات تقنية

المتغيرات التي يتم تعريفها بداخل الدوال, يقال لها Local Variables و هذه التسمية تعني أنه لا يمكن الوصول لها من خارج الدالة بشكل مباشر.
المتغيرات التي يتم تعريفها خارج الدوال, يقال لها Global Variables و هذه التسمية تعني أنه يمكن الوصول لها من أي مكان في الكود حتى من داخل الدوال.


في المثال التالي قمنا بتعريف متغير إسمه x, ثم قمنا بتعريف دالة إسمها test تقوم فقط بطباعة قيمته.

المثال الأول

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


# الذي تم تعريفه خارجها x تطبع قيمة المتغير test هنا قمنا بتعريف دالة إسمها
def test():
    print('Global x =', x)


# الذي تم تعريفه خارجها x و التي ستطبع قيمة المتغير test() هنا قمنا باستدعاء الدالة
test()
		

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

Global x = 1


في المثال التالي قمنا بتعريف متغير إسمه x, ثم قمنا بتعريف دالة إسمها test تحتوي أيضاً على متغير إسمه x تقوم فقط بطباعة قيمته.
تذكر: سيتم طباعة قيمة x الذي تم تعريفه بداخل الدالة و ليس الموجود خارجها لأن مفسّر لغة بايثون سيتجاهل المتغير الخارجي.

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

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


# الذي تم تعريفه بداخلها x تطبع قيمة المتغير test هنا قمنا بتعريف دالة إسمها
def test():
    x = 5
    print('Local x =', x)


# الذي تم تعريفه بداخلها x و التي ستطبع قيمة المتغير test() هنا قمنا باستدعاء الدالة
test()

# الموجود خارج الدالة. لاحظ أن قيمته لم تتغير x هنا قمنا بطباعة قيمة المتغير
print('Global x =', x)
		

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

Local x = 5
Global x = 1


في المثال التالي قمنا بتعريف متغير إسمه x قيمته 1, ثم قمنا بتعريف دالة إسمها test تقوم فقط بتغيير قيمته إلى 5.
تذكر: لتغيير قيمة متغير من داخل دالة لكنه في الأساس موجود خارجها يجب وضع الكلمة المفتاحية global قبل إسم المتغير و على سطر منفرد.

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

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


# الذي تم تعريفه خارجها x تقوم بتغير قيمة test هنا قمنا بتعريف دالة إسمها
def test():
    global x
    x = 5


# global الذي قمنا بتعريفه في الأساس خارجها و الذي وصلنا إليه بواسطة الكلمة x حتى تقوم بتغيير قيمة المتغير test() هنا قمنا باستدعاء الدالة
test()

# الموجودة في خارج الدالة. لاحظ أنها بقيت كما هي x هنا قمنا بطباعة قيمة
print('Global x =', x)
		

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

Global x = 5

تعريف دوال بأسلوب Lambda في بايثون

في حال كنت تريد تعريف دالة تتألف من سطر واحد فقط و ترجع قيمة عند إستدعاءها, يمكنك تعريفها كـ Anonymous Function. و عندها تستخدم الكلمة المفتاحية lambda لتعريفها و ليس الكلمة def.


الشكل الأساسي الذي يجب إتباعه عند تعريف دالة بأسلوب Lambda في بايثون هو التالي:

lambda [arg1 [,arg2,.....argn]]:expression

lambda: تعني أنك تعرف دالة جديدة ليس لها إسم.
[arg1 [,arg2,.....argn]]: يقصد منها فقط الباراميترات التي يمكنك وضعها للدالة مع الإشارة إلى أنه يجب وضع فاصلة بين كل باراميترين.
:expression: تعني الأمر الذي سيرجع القيمة عندما تتنفذ الدالة مع الإشارة إلى أنه يجب وضع الرمز : هو أمر إجباري.


ملاحظة

عندما تقوم بتعريف Anonymous Function فأنت فعلياً تقوم بتعريف دالة ليس لها إسم. و بما أنه لا يمكن إستدعاء دالة إلا من خلال مناداتها باسمها, فالحل هو أن تشير للدالة بإسم متغير. أي تقوم بتعريف متغير و تجعله يساوي الدالة التي قمت بتعريفها و عندها سيتم إعتبار إسم المتغير هو إسم الدالة الذي من خلاله يمكن مناداتها.


في المثال التالي قمنا بتعريف دالة كـ Anonymous Function عند استدعاءها نمرر لها عددين فترجع ناتج طرح العدد الأول من العدد الثاني.
قمنا بإسناد الدالة إلى كائن إسمه total_pay حتى نستطيع مناداته من خلالها.

مثال

Test.py
# total_pay هنا قمنا بتعريف دالة يجب أن نمرر لها قيمتين عند إستدعاءها حتى ترجع ناتج طرحهما و يمكن مناداتها بواسطة الكائن
total_pay = lambda price, tax: price - tax

# و كل ما ستفعله هو إرجاع ناتج طرح القيمة الاولى من القيمة الثانية total_pay هنا قمنا بإستدعاء الدالة بواسطة الكائن
print(total_pay(500, 40))
		

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

460

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

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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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 ) ترجع القيمة المطلقة للعدد الذي نمرره لها مكان الباراميتر x.

round( x [, n] ) ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x.

max( x1, x2, ... ) ترجع العدد الأكبر بين مجموعة الأعداد التي نمررها لها كـ Arguments.

min( x1, x2, ... ) ترجع العدد الأصغر بين مجموعة الأعداد التي نمررها لها كـ Arguments.

Python الدالة 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

Python الدالة 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 ) &nbsp&nbsp = 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

Python الدالة 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

Python الدالة 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

معنى كلمة 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.


Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Python الدالة 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

Pythonالدالة 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 في بايثون

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 فتبدل أماكن عناصرها بشكل عشوائي.

Python الدالة 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

Python الدالة 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: &nbsp &nbsp 4
Random character from the string: r

Python الدالة 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]

Python الدالة 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