English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي لـ Python

تحكم في عملية Python

الوظائف في بايثون

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

عمليات ملفات Python

أوبجكتس و كلاس في Python

تاريخ وتوقيت Python

معرفة متقدمة لـ Python

دليل Python

قائمة الكلمات المفتاحية لـ Python و أمثلة

هذا الدليل يقدم معلومات مختصرة عن جميع الكلمات المفتاحية المستخدمة في Python

الكلمات المفتاحية هي الكلمات المحفوظة في Python. لا يمكننا استخدام الكلمات المفتاحية كأسماء متغيرات، أو أسماء وظائف أو أي معرف آخر.

هذه هي قائمة جميع الكلمات المفتاحية في برمجة Python

الكلمات المفتاحية في لغة البرمجة Python
Falseawaitelseimportالسماح بالمرور
لا شيءbreakexceptinraise
Trueclassfinallyisreturn
andcontinueforlambdatry
asdefمنnonlocalwhile
assertdelglobalلاwith
asyncelifإذاأوyield

الكلمات المفتاحية المذكورة قد تتغير في إصدارات مختلفة من Python. قد يتم إضافة بعض المعلومات الإضافية أو حذف بعض المعلومات. يمكنك دائمًا الحصول على قائمة الكلمات المفتاحية الحالية باستخدام الطريقة التالية.

>>> import keyword
>>> print(keyword.kwlist)
['False', 'لا', 'True', 'و', 'كما', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally',', '']
 ['for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

مثال على استخدام الكلمات المفتاحية في Python

True, False

True و False هي قيم الحقيقة والزيف في Python. إنها نتائج عمليات المقارنة أو العمليات المنطقية (ال布尔ية) في Python. مثلًا:

>>> 1 == 1
True
>>> 5 > 3
True
>>> True or False
True
>>> 10 <= 1
False
>>> 3 > 7
False
>>> True and False
False

في هذا يمكننا رؤية أن الثلاثة جمل الأولى صحيحة، لذلك يعود المفسر True، والثلاثة جمل الأخرى تعود False. True و False في Python مثل 1 و 0. يمكن إثبات ذلك بالأمثلة التالية:

>>> True == 1
True
>>> False == 0
True
>>> True + True
2

لا شيء

None هو ثابت خاص في Python يمثل عدم وجود قيمة أو قيمة فارغة.

إنه obj من نوع NoneType الخاص به. لا يمكننا إنشاء أكثر من obj None، لكن يمكننا تخصيصه لمعطيات. هذه المعطيات متساوية.

يجب أن نكون特别注意، None لا يعني False، 0 أو أي قائمة فارغة، أو قاموس، أو سلسلة نصية، إلخ. مثلًا:

>>> None == 0
False
>>> None == []
False
>>> None == False
False
>>> x = None
>>> y = None
>>> x == y
True

وظيفة فارغة لا تعود أي محتوى ستكون تلقائيًا تعود obj None. وظيفة لم تمر بجملة return ستكون أيضًا None. مثلًا:

def a_void_function():
    a = 1
    b = 2
    c = a + b
x = a_void_function()
print(x)

نتائج الإخراج

لا شيء

هذا البرنامج على الرغم من أنه يقوم ببعض العمليات الداخلية، إلا أن وظيفته لا تعود أي قيمة. لذلك، عندما نطبع x، نحصل على None التي تعود تلقائيًا (بصورة ضمنية). مثلًا، هذا مثال آخر:

def improper_return_function(a):
    if (a % 2) == 0:
        return True
x = improper_return_function(3)
print(x)

نتائج الإخراج

لا شيء

على الرغم من أن هذه الدالة تحتوي على إعلان return، إلا أن ليس في كل حالة يمكن تحقيقه. تعود الدالة True فقط إذا كان الإدخال زوجيًا.

إذا أعطينا الدالة عددًا غير زوجي، فإنها تعود None تلقائيًا.

and, or, not

and،or،not هي عمليات منطقية في بايثون. وسيكون الناتج True فقط إذا كانت كلا العناصرين True. جدول الحقائق لـ and كالتالي:

 and
ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

or إذا كان أي من العناصر المطلوبة True، فإن النتيجة ستكون True. جدول الحقائق لـ or كالتالي:

جدول الحقائق لـ or
ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

يستخدم عميل not لتحويل القيم الحقائق. جدول الحقائق لـ not كالتالي:

جدول الحقائق لـ not
Anot A
TrueFalse
FalseTrue

يقدم أدناه بعض الأمثلة على الاستخدام

>>> True and False
False
>>> True or False
True
>>> not False
True

as

as تستخدم لإنشاء أسماء بديلة عند استيراد الوحدات. هذا يعني أننا نعطي الوحدة اسمًا مختلفًا (محددًا من قبل المستخدم).

على سبيل المثال، يحتوي بايثون على مكتبة قياسية تسمى math. لنفترض أننا نريد استخدام اسم بديل لتحليل cos(pi). يمكننا القيام بذلك باستخدام الطريقة التالية as:

>>> import math as myAlias
>>> myAlias.cos(myAlias.pi)
-1.0

في هذا المكان، نستورد مكتبة math عن طريق تسمية الوحدة myAlias. الآن، يمكننا استخدام هذا الاسم للإشارة إلى الوحدة. باستخدام هذا الاسم، قمنا بحساب cos(pi) والحصول على إجابة -1.0.

assert

assert لغرض الت调试.

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

إذا كانت الشروط صحيحة، فإن لا شيء سيحدث. ولكن إذا كانت الشروط خطأ، فإنها تسبب AssertionError. على سبيل المثال:

>>> a = 4
>>> assert a < 5
>>> assert a > 5
السجلات (أحدث النداءات أولاً):
  ملف "<string>", السطر 301، في runcode
  ملف "<interactive input>", السطر 1، في <module>
AssertionError

لتحسين فهمنا، يمكننا أيضًا تقديم رسالة ستطبع مع AssertionError.

>>> a = 4
>>> assert a > 5, "قيمة a صغيرة جدًا"
السجلات (أحدث النداءات أولاً):
  ملف "<string>", السطر 301، في runcode
  ملف "<interactive input>", السطر 1، في <module>
AssertionError: قيمة a صغيرة جدًا

في هذا النقطة، يمكننا ملاحظة أن

assert condition, message

等价于

if not condition:
    raise AssertionError(message)

async, await

Python中的asyncio库提供了async和await关键字。它们用于在Python中编写并发代码。例如,

import asyncio
async def main():
    print('Hello')
    await asyncio.sleep(1)
    print('world')

要运行该程序,我们使用

asyncio.run(main())

在以上程序中,async关键字指定该函数将异步执行。

在这里,首先打印Hello。await关键字使得程序等待1秒。然后再打印world。

break, continue

break和continue在for和while循环内使用以更改其正常行为。

break将结束它所在的最小循环,而控制流将直接流到循环下的语句。continue导致结束循环的当前迭代,而不是整个循环。

这可以通过以下两个示例进行说明:

for i in range(1,11):
    if i == 5:
        break
    print(i)

نتائج الإخراج

1
2
3
4

在这里,for循环打算打印从1到10的数字。但是如果当i等于5 时就满足了条件,我们从循环中中断了。因此,仅打印范围1到4。

for i in range(1,11):
    if i == 5:
        continue
    print(i)

نتائج الإخراج

1
2
3
4
6
7
8
9
10

在这里,我们使用continue相同的程序。因此,当满足条件时,将跳过该迭代。但是我们不会退出循环。因此,将打印出除5以外的所有值。

تعرف علىPython break and Continue语句的المزيد من المعلومات.

class

class 用于在Python中定义新的用户定义类。

类是试图表示现实情况的相关属性和方法的集合。将数据和函数放在一个类中的想法对于面向对象编程(OOP)的概念至关重要。

可以在程序中的任何位置定义类。但是在模块中定义单个类是一个好习惯。以下是示例用法:

class ExampleClass:
    def function1(parameters):
        ...
    def function2(parameters):
        ...

تعرف علىPython objects and classesالمزيد من المعلومات.

def

def يستخدم لتعريف الوظيفة المحددة من قبل المستخدم.

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

استخدام def كما يلي:

def function_name(parameters):
    ...

تعرف علىوظائف Pythonالمزيد من المعلومات.

del

يستخدم del لإزالة مرجع إلى العنصر. كل شيء في Python هو عنصر. يمكننا استخدام del للإزالة من خلال المرجع:

>>> a = b = 5
>>> del a
>>> a
السجلات (أحدث النداءات أولاً):
  ملف "<string>", السطر 301، في runcode
  ملف "<interactive input>", السطر 1، في <module>
NameError: الاسم 'a' غير معرف
>>> b
5

في هذا يمكننا رؤية أن مرجع المتغير a قد تم إزالته. لذلك، لم يعد معرفًا. ولكن b ما زالت موجودة.

يستخدم del أيضًا لإزالة العناصر من القوائم أو المفاهيم:

>>> a = ['x','y','z']
>>> del a[1]
>>> a
['x', 'z']

استخدام if،else،elif

استخدام if،else،elif للفرز بين الحالات أو القرارات.

عندما نريد اختبار شرط وإجراء جزء من الكود فقط إذا كان الشرط صحيحًا، نستخدم if و elif. elif هي اختصار ل else if. else هو الجزء من الكود الذي يتم تنفيذه إذا كان الشرط خطأ. سيكون من الواضح من خلال المثال التالي:

def if_example(a):
    if a == 1:
        print('One')
    elif a == 2:
        print('Two')
    else:
        print('Something else')
if_example(2)
if_example(4)
if_example(1)

نتائج الإخراج

Two
Something else
One

في هذا السياق، يقوم الدالة بفحص الرقم المدخل (إذا كان 1 أو 2)، ويعطي النتيجة. وإلا، فإن أي مدخل يؤدي إلى تنفيذ جزء else من الكود.

تعرف علىاستخدام if و if ... else في Pythonالمزيد من المعلومات.

استخدام except،raise،try

استخدام except،raise،try مع الاستثناءات في Python.

الاستثناءات بشكل عام هي أخطاء، مما يشير إلى أن هناك مشكلة أثناء تنفيذ برامجنا. بعض أمثلة استثناءات Python هي IOError،ValueError،ZeroDivisionError،ImportError،NameError،TypeError وما إلى ذلك. استخدام try...except لتسجيل الاستثناءات في Python.

يمكننا استخدام كلمة المفتاح raise لإثارة استثناءات بشكل صريح. إليك مثال:

def reciprocal(num):
    try:
        r = 1/num
    except:
        print('استثناء محقق')
        return
    return r
print(reciprocal(10))
print(reciprocal(0))

نتائج الإخراج

0.1
استثناء محقق
لا شيء

في هذا، يعود الدالة reciprocal() بمعكوس الرقم المدخل.

عند إدخال 10، يكون الناتج العادي 0.1. ولكن، عند إدخال 0، يتم إثارة استثناء ZeroDivisionError تلقائيًا.

هذا هو الاستثناء الذي تم القبض عليه من قبل block try…except، نحن نرجع None. يمكننا أيضًا إثار ZeroDivisionError بشكل صريح عبر التحقق من الإدخال ومعالجته كما يلي:

if num == 0:
    raise ZeroDivisionError('cannot divide')

finally

استخدام finally مع blocks try…except لغلق موارد أو تدفق الملفات.

استخدام finally لضمان تنفيذ كود الكتلة حتى إذا كان هناك استثناءات لم يتم معالجتها. على سبيل المثال:

try:
    block Try
except exception1:
    block Exception1
except exception2:
    block Exception2
else:
    block Else
finally:
    block Finally

في هذا السياق، إذا كان هناك استثناء في block Try، يتم معالجته في block except أو else. ولكن، بغض النظر عن ترتيب التنفيذ، حتى في وجود أخطاء، يمكننا أن نكون مرتاحين للتنفيذ في block Finally. هذا مفيد جدًا للتنظيف.

تعرف علىمعالجة الاستثناءات في برمجة Pythonالمزيد من المعلومات.

for

for يستخدم في التكرار. عادةً، نستخدم for عندما نعرف عدد المرات التي سنكرر فيها.

في Python، يمكننا استخدامها مع أي نوع سلسلة (مثل قائمة أو نص). هذا مثال على استخدام for لمرور عبر قائمة names:

names = ['John','Monica','Steven','Robin']
for i in names:
    print('مرحباً '+i)

نتائج الإخراج

مرحبًا John
مرحبًا Monica
مرحبًا Steven
مرحبًا Robin

تعرف علىدورات for في Pythonالمزيد من المعلومات.

من، استورد

يستخدم keyword لاستورد المكتبات إلى النطاق الحالي. يتم استورد خصائص أو دوال معينة باستخدام from…import. على سبيل المثال:

من math استورد

يتم استورد مكتبة math. الآن يمكننا استخدام دالة cos() كـ math.cos(). ولكن، إذا كنت بحاجة إلى استورد دالة cos() فقط، يمكنك استخدام from لتحقيق ذلك

من math استورد cos

الآن يمكننا بسهولة استخدام الدالة cos() دون كتابة math.cos().

تعرف علىمعلومات إضافية عن وحدات Python و أوامر import..

global

يستخدم global لإعلان المتغيرات كمتغيرات عالمية داخل الوظيفة (خارج الوظيفة).

إذا كنت بحاجة إلى قراءة قيمة المتغير العالمي، لا تحتاج إلى تعريفها كglobal. هذا هو المكان الذي تحتاج إليه.

إذا كنت بحاجة إلى تعديل قيمة المتغير العالمي داخل الوظيفة، يجب استخدام إعلان global. وإلا سيتم إنشاء متغير محلي بهذا الاسم.

سيساعدنا هذا المثال على توضيح ذلك.

globvar = 10
تعريف read1():
    print(globvar)
تعريف write1():
    global globvar
    globvar = 5
تعريف write2():
    globvar = 15
read1()
write1()
read1()
write2()
read1()

نتائج الإخراج

10
5
5

في هذا المكان، وظيفة read1() تقرأ قيمة globvar. لذلك، لا نحتاج إلى إعلانها كglobal. ولكن وظيفة write1() تقوم بتعديل القيمة، لذا نحتاج إلى إعلان المتغير كglobal.

يمكننا رؤية في مخرجاتنا أن هناك تعديلًا تم إجراؤه (تم تغيير 10 إلى 5). يحاول write2() أيضًا تعديل هذه القيمة. لكننا لم نعدلها إلى global بعد.

لذلك، يتم إنشاء globvar متغيرًا محليًا جديدًا، لا يمكن رؤيته خارج هذه الوظيفة. على الرغم من أننا نعدل هذا المتغير المحلي إلى 15، إلا أن المتغير العالمي يظل كما هو. هذا واضح في مخرجاتنا.

in

يستخدم in لاختبار ما إذا كانت السلسلة تحتوي على القيمة. إذا كانت القيمة موجودة، فإنه يعود True، وإلا يعود False. على سبيل المثال:

>>> a = [1, 2, 3, 4, 5]
>>> 5 في a
True
>>> 10 في a
False

استخدام in ثانوي هو التدوير في الدورات for.

لـ i في 'hello':
    print(i)

نتائج الإخراج

h
e
l
l
o

is

is في Python يستخدم لتقييم هوية الكائن. عمودية == تستخدم لتقييم ما إذا كانت القيم متطابقة، بينما يستخدم عمودية is لتقييم ما إذا كانت القيم تشير إلى نفس الكائن.

يعود True إذا كان الكائنات متطابقة، وإلا يعود False.

>>> True is True
True
>>> False is False
True
>>> None is None
True

نحن نعلم أن هناك فقط True و False و None في Python، لذلك هم متطابقون.

>>> [] == []
True
>>> [] is []
False
>>> {} == {}
True
>>> {} is {}
False

قائمة فارغة أو قاموس فارغ يساوي قائمة أو قاموس فارغ آخر. ولكنهم ليسوا نفس الكائن، لأنهم موجودون في ذاكرة مختلفة. هذا لأن القوائم والقواميس قابلة للتغيير (يمكن تعديل القيم).

>>> '' == ''
True
>>> '' is ''
True
>>> () == ()
True
>>> () is ()
True

على عكس القوائم والقواميس، فإن الأحرف والجداول غير القابلة للتغيير (القيم لا يمكن تعديلها بعد تعريفها). لذلك، فإن الأحرف والجداول المتطابقة هي نفسها. إنها تشير إلى نفس موقع التخزين.

lambda

lambda تستخدم لإنشاء وظائف مجهولة الاسم (وظائف بدون اسم). إنها وظيفة داخليه لا تحتوي على جملة return. تتكون من تعبير يتم تقييمه وإرجاعه. على سبيل المثال:

a = lambda x: x * 2
لـ i في range(1, 6):
    print(a(i))

نتائج الإخراج

2
4
6
8
10

في هذا السياق، قمنا بإنشاء وظيفة داخليه، باستخدام جملة lambda لتكبيل القيم. نستخدمها لتكبيل القيم في قائمة تحتوي على أرقام من 1 إلى 5.

تعرف علىوظائف lamda في Pythonالمزيد من المعلومات.

nonlocal

استخدام كلمة المفتاح nonlocal يشبه كثيرًا كلمة المفتاح global. تستخدم nonlocal لتحديد متغيرات داخل وظيفة مرتبطة (وظيفة داخل وظيفة). هذا يعني أنها موجودة في وظيفة محكمة من الخارج. إذا كنت بحاجة إلى تعديل قيمة متغير غير محلي في وظيفة مرتبطة، يجب استخدام كلمة المفتاح nonlocal لتحديد ذلك. وإلا، سيتم إنشاء متغير محلي يحمل نفس الاسم داخل وظيفة المرتبطة. سيساعدنا المثال التالي على توضيح هذا النقطة.

تعريف outer_function():
    a = 5
    تعريف inner_function():
        nonlocal a
        a = 10
        print("وظيفة داخلية: ", a)
    inner_function()
    print("وظيفة خارجية: ", a)
outer_function()

نتائج الإخراج

وظيفة داخلية: 10
Outer function: 10

في هذا السياق، inner_function() مدمجة داخل outer_function.

مفهوم a موجود في outer_function(). لذلك، إذا كنت بحاجة إلى تعديل a في inner_function()، يجب أن يتم تعريفه كـ nonlocal. يرجى ملاحظة أن هذا a ليس متغيرًا عالميًا.

لذا، يمكننا رؤية من خلال المخرجات أن المتغير تم تعديله بنجاح داخل وظيفة inner_function() المحيطة. والنتيجة التي يتم الحصول عليها عند عدم استخدام كلمة المفتاح nonlocal هي كما يلي:

تعريف outer_function():
    a = 5
    تعريف inner_function():
        a = 10
        print("وظيفة داخلية: ", a)
    inner_function()
    print("وظيفة خارجية: ", a)
outer_function()

نتائج الإخراج

وظيفة داخلية: 10
وظيفة خارجية: 5

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

السماح بالمرور

الجملة pass هي جملة فارغة في بايثون. لا يحدث أي شيء عند تنفيذها. تستخدم كعلامة استبدال.

افترض أن لدينا وظيفة لم يتم تنفيذها بعد، لكننا نريد تنفيذها في المستقبل. يمكننا كتابتها ببساطة،

تعريف function(args):

سيكون لدينا خطأ IndentationError في منتصف البرنامج. بدلاً من ذلك، نستخدم جملة pass لإنشاء جسم فارغ.

تعريف function(args):
    السماح بالمرور

يمكننا أيضًا القيام بالشيء نفسه مع class فارغة.

تعريف class_example:
    السماح بالمرور

return

يستخدم جملة return لإنهاء العمل داخل الدالة وإرجاع القيمة.

إذا لم نعدل بشكل صريح على القيمة التي يتم العودة بها، فإن القيمة المعدلة تكون None. يبرهن هذا المثال على ذلك.

تعريف func_return():
    a = 10
    عد
تعريف func_no_return():
    a = 10
print(func_return())
print(no_return())

نتائج الإخراج

10
لا شيء

while

دائرة التكرار while تستخدم في بايثون.

تستمر التعليمات داخل دائرة التكرار while في التنفيذ حتى تكون نتائج شرط دائرة التكرار while هي False أو عند وجود جملة break. يوضح هذا البرنامج ذلك.

i = 5
while(i):
    print(i)
    i = i - 1

نتائج الإخراج

5
4
3
2
1

لاحظ أن 0 يساوي False.

تعرف علىدائرة التكرار while في بايثونالمزيد من المعلومات.

with

تستخدم جملة with لتغليف تنفيذ كود الفقرة المدمجة في مدير السياق.

مدير السياق هو فئة تحقق من __enter__ و __exit__. يمكن استخدام جملة with لضمان إتمام __exit__ عند نهاية الفقرة المدمجة. هذا المفهوم يشبه استخدام جملة try...finally. إليك مثال.

مع open('example.txt', 'w') as my_file:
    my_file.write('Hello world!')

في هذا المثال، سيتم كتابة النص Hello world! في ملف example.txt. يتم تعريف ملف الذاكرة في هذا المكان بواسطة جملة __enter__ و __exit__، لذا يُعتبران محايدين كمدبري النصوص.

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

yield

استخدام yield في وظيفة مثل جملة return. ولكن يُرجع yield جنيراتورًا.

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

>> g = (2**x for x in rang(100))

سيُنشأ جنيراتور g يولد قوى الثنائية حتى يتم إضافة 99. يمكننا استخدام next() كما في الدالة التالية لإنشاء هذه الأرقام.

>> next(g)
1
>> next(g)
2
>> next(g)
4
>> next(g)
8
>> next(g)
16

وإلى آخره...هذا النوع من الجنيراتورات يعود باستخدام جملة yield في وظيفة. هذا مثال.

تعريف generator():
    للمسلسل i في rang(6):
        توليد i*i
g = generator()
للمسلسل i في g:
    print(i)

نتائج الإخراج

0
1
4
9
16
25

في هذا المكان، يعود الدالة generator() بجنيرator يُولد مربعات الأرقام من 0 إلى 5. قم بطباعتها داخل حلقة for.