English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
هذا الدليل يقدم معلومات مختصرة عن جميع الكلمات المفتاحية المستخدمة في Python
الكلمات المفتاحية هي الكلمات المحفوظة في Python. لا يمكننا استخدام الكلمات المفتاحية كأسماء متغيرات، أو أسماء وظائف أو أي معرف آخر.
هذه هي قائمة جميع الكلمات المفتاحية في برمجة Python
الكلمات المفتاحية المذكورة قد تتغير في إصدارات مختلفة من 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']
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 هي عمليات منطقية في بايثون. وسيكون الناتج True فقط إذا كانت كلا العناصرين True. جدول الحقائق لـ and كالتالي:
A | B | A and B |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
or إذا كان أي من العناصر المطلوبة True، فإن النتيجة ستكون True. جدول الحقائق لـ or كالتالي:
A | B | A or B |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
يستخدم عميل not لتحويل القيم الحقائق. جدول الحقائق لـ not كالتالي:
A | not A |
---|---|
True | False |
False | True |
يقدم أدناه بعض الأمثلة على الاستخدام
>>> True and False False >>> True or False True >>> not False True
as تستخدم لإنشاء أسماء بديلة عند استيراد الوحدات. هذا يعني أننا نعطي الوحدة اسمًا مختلفًا (محددًا من قبل المستخدم).
على سبيل المثال، يحتوي بايثون على مكتبة قياسية تسمى math. لنفترض أننا نريد استخدام اسم بديل لتحليل cos(pi). يمكننا القيام بذلك باستخدام الطريقة التالية as:
>>> import math as myAlias >>> myAlias.cos(myAlias.pi) -1.0
في هذا المكان، نستورد مكتبة math عن طريق تسمية الوحدة myAlias. الآن، يمكننا استخدام هذا الاسم للإشارة إلى الوحدة. باستخدام هذا الاسم، قمنا بحساب cos(pi) والحصول على إجابة -1.0.
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)
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在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 用于在Python中定义新的用户定义类。
类是试图表示现实情况的相关属性和方法的集合。将数据和函数放在一个类中的想法对于面向对象编程(OOP)的概念至关重要。
可以在程序中的任何位置定义类。但是在模块中定义单个类是一个好习惯。以下是示例用法:
class ExampleClass: def function1(parameters): ... def function2(parameters): ...
تعرف علىPython objects and classesالمزيد من المعلومات.
def يستخدم لتعريف الوظيفة المحددة من قبل المستخدم.
الوظيفة هي مجموعة من الأحكام ذات الصلة، التي تنفذ بعض المهام المحددة معًا. إنها تساعدنا في تنظيم الكود إلى قطع قابلة لإدارة وتحقيق المهام المتكررة.
استخدام def كما يلي:
def function_name(parameters): ...
تعرف علىوظائف Pythonالمزيد من المعلومات.
يستخدم 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 و 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 مع الاستثناءات في 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 مع 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 عندما نعرف عدد المرات التي سنكرر فيها.
في 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. وإلا سيتم إنشاء متغير محلي بهذا الاسم.
سيساعدنا هذا المثال على توضيح ذلك.
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 لاختبار ما إذا كانت السلسلة تحتوي على القيمة. إذا كانت القيمة موجودة، فإنه يعود 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 في 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 تستخدم لإنشاء وظائف مجهولة الاسم (وظائف بدون اسم). إنها وظيفة داخليه لا تحتوي على جملة return. تتكون من تعبير يتم تقييمه وإرجاعه. على سبيل المثال:
a = lambda x: x * 2 لـ i في range(1, 6): print(a(i))
نتائج الإخراج
2 4 6 8 10
في هذا السياق، قمنا بإنشاء وظيفة داخليه، باستخدام جملة lambda لتكبيل القيم. نستخدمها لتكبيل القيم في قائمة تحتوي على أرقام من 1 إلى 5.
تعرف علىوظائف lamda في Pythonالمزيد من المعلومات.
استخدام كلمة المفتاح 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 لإنهاء العمل داخل الدالة وإرجاع القيمة.
إذا لم نعدل بشكل صريح على القيمة التي يتم العودة بها، فإن القيمة المعدلة تكون None. يبرهن هذا المثال على ذلك.
تعريف func_return(): a = 10 عد تعريف func_no_return(): a = 10 print(func_return()) print(no_return())
نتائج الإخراج
10 لا شيء
دائرة التكرار while تستخدم في بايثون.
تستمر التعليمات داخل دائرة التكرار while في التنفيذ حتى تكون نتائج شرط دائرة التكرار while هي False أو عند وجود جملة break. يوضح هذا البرنامج ذلك.
i = 5 while(i): print(i) i = i - 1
نتائج الإخراج
5 4 3 2 1
لاحظ أن 0 يساوي False.
تعرف علىدائرة التكرار while في بايثونالمزيد من المعلومات.
تستخدم جملة 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 في وظيفة مثل جملة 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.