نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

وحدات التحكّم (Controllers) في Laravel

مقدمة بدلًا من تعريف كامل منطق معالجة طلباتك (request handling logic) على أنّها نطاقات مغلقة (‎(Closures في ملفّات المسارات، قد ترغب في تنظيم هذا السلوك (behavior) باستخدام أصناف ووحدات التحكّم. تستطيع وحدات التحكّم جمع منطق معالجة الطلبات ذي الصلة في صنف واحد. تخزّن وحدات التحكّم في المجلّد app/Http/Controllers. وحدات التحكّم الأساسية تعريف وحدات التحكّم تجد أدناه مثالًا عن وحدة تحكّم بسيطة. لاحظ أن وحدة التحكّم تُوسّع صنف وحدة التحكّم الأساسية المُحتواة في Laravel. يوفّر الصنف الأساسي عددًا من التوابع المفيدة ...

عبارة pass في بايثون

لا تؤدي عبارة pass أي عمل على الإطلاق، ويمكن استخدامها عندما تكون عبارة معيّنة مطلوبة لغويًّا ولكنّها لا تؤدّي وظيفة معينة. فعلى سبيل المثال يؤدي تنفيذ الشيفرة التالية إلى جعل مفسّر بايثون مشغولًا وبانتظار قطع عملية التنفيذ عن طريق الضغط على مفتاحي Ctrl+C: >>> while True: ...     pass ... تستخدم هذه العبارة عادة في إنشاء أصناف مصغّرة: >>> class MyEmptyClass: ...     pass ... يمكن استخدام عبارة pass أيضًا كنصّ بديل مؤقت لدالة أو جملة شرطية معيّنة عند العمل على شيفرة جديدة، الأمر الذي ...

التحكم بالتدفق (Control Flow) في Kotlin

كما في أيّة لغة برمجة فإن لغة Kotlin تحتوي على تعابير للتحكم بالتدفق، وهي: تعبير if، وتعبير when، وحلقة for، وحلقة while. وتدعم كذلك الكلمتين المفتاحيّتَين continue و break المستخدَمتَين في الحلقات (راجع أوامر الرجوع والقفز returns and jump). تعبير if يُعدُّ الشرط if في لغة Kotlin تعبيرًا يعيد قيمة، وبالتالي لا حاجة للصيغة condition ? then : else لأن تعبير if يقوم بهذا الدور كما في الشيفرة الآتية: // الاستخدام الاعتيادي var max = a if (a < b) max = b // ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...

إزالة رايات التحكم (Remove Control Flag)

المشكلة لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة. الحل استخدم الكلمات المفتاحية break و continue و return بدلًا من هذه المتغيرات. لم إعادة التصميم؟ تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة). لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة مثل: break: إيقاف الحلقة. continue: ...

الوحدة webbrowser في بايثون

تقدّم وحدة webbrowser واجهة متطوّرة تسمح بعرض مستندات الويب على المستخدمين. في أغلب الحالات يكفي استدعاء الدالة open()‎ ببساطة للقيام بكلّ شيء على نحو سليم. تكون متصفّحات الويب الرسومية graphical browser مفضّلة مع محرّك العرض X11، ولكنّ تستخدم الوحدة المتصفّحات النصية text-mode browsers إن كانت المتصفّحات الرسومية غير متوفّرة، أو كان محرّك العرض X11 غير متاح لاستخدام. وعند استخدام المتصفّحات النصية تتوقّف عملية الاستدعاء إلى حين خروج المستخدم من المتصفّح. إن كان متغيّر البيئة BROWSER موجودًا، فإنّه سيفسّر كقائمة os.pathsep ...

for في بايثون

تختلف عبارة for قليلًا في بايثون عن نظيرتها في لغتي C أو Pascal، فبدلًا من تكرار الحلقة استنادًا إلى عملية حسابية (مثل لغة Pascal) أو منح المستخدم القدرة على تعريف عدد مرات التكرار والشرط الذي يؤدي إلى إيقاف عمل الحلقة (كما في لغة C)، فإنّ عبارة for في بايثون تمرّ على عناصر أي تسلسل (قائمة أو سلسلة نصية) معتمدة في ذلك على ترتيب تلك العناصر في ذلك التسلسل. بنية عبارة for >>> # معرفة أطوال السلاسل النصية: ... words = ['cat', ...

for في بايثون

تختلف عبارة for قليلًا في بايثون عن نظيرتها في لغتي C أو Pascal، فبدلًا من تكرار الحلقة استنادًا إلى عملية حسابية (مثل لغة Pascal) أو منح المستخدم القدرة على تعريف عدد مرات التكرار والشرط الذي يؤدي إلى إيقاف عمل الحلقة (كما في لغة C)، فإنّ عبارة for في بايثون تمرّ على عناصر أي تسلسل (قائمة أو سلسلة نصية) معتمدة في ذلك على ترتيب تلك العناصر في ذلك التسلسل. بنية عبارة for >>> # معرفة أطوال السلاسل النصية: ... words = ['cat', ...

صيغة بديلة لبنى التحكم في PHP

(PHP 4, PHP 5, PHP 7) تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي if و while و for و foreach و switch. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (:) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة endif;‎ أو endwhile;‎ أو endfor;‎ أوendforeach; ‎ أو endswitch;‎ في النهاية حسب الحاجة. <?php if ($a == 5): ?> A is equal to 5 <?php endif; ?> في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A ...

صيغة بديلة لبنى التحكم في PHP

(PHP 4, PHP 5, PHP 7) تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي if و while و for و foreach و switch. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (:) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة endif;‎ أو endwhile;‎ أو endfor;‎ أوendforeach; ‎ أو endswitch;‎ في النهاية حسب الحاجة. <?php if ($a == 5): ?> A is equal to 5 <?php endif; ?> في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A ...

التابع list.clear()‎ في بايثون

يحذف هذا التابع جميع عناصر القائمة. البنية العامة l.clear() القيمة المعادة يعيد هذا التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام هذا التابع: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.clear() >>> fruits [] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة عنصر إلى نهاية القائمة. التابع list.extend()‎: إضافة مجموعة من العناصر إلى نهاية القائمة. التابع list.insert()‎: إضافة عنصر إلى القائمة في الموقع ...

التابع list.reverse()‎ في بايثون

يقلب هذا التابع ترتيب عناصر القائمة في مكانها. البنية العامة l.reverse() القيمة المعادة يعيد هذا التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام هذا التابع: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.reverse() >>> fruits ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange'] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة عنصر إلى نهاية القائمة. التابع list.extend()‎: إضافة مجموعة من العناصر إلى نهاية القائمة. ...

التابع list.count()‎ في بايثون

يُحدِّد هذا التابع عدد مرات تكرار العنصر الذي يحدّده المستخدم في القائمة. البنية العامة l.count() المعاملات x العنصر المراد معرفة عدد مرات تكراره. القيمة المعادة تعيد الدالة عدد مرات تكرار العنصر. أمثلة يبين المثال التالي كيفية استخدام هذا التابع: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.count('apple') 2 >>> fruits.count('tangerine') 0 انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة عنصر إلى نهاية القائمة. التابع list.extend()‎: ...

الدالة webbrowser.register()‎‎ في بايثون

تسجّل الدالة نوع المتصفّح المعطى، وبعد تسجيل نوع المتصفّح باستخدام هذه الدالة يصبح بإمكان الدالة get()‎ أن تعيد متحكّمًا لنوع المتصفّح المسجَّل. البنية العامة webbrowser.register(name, constructor, instance=None, *, preferred=False) المعاملات ‎instance إن لم يكن هذا المعامل موجودًا، أو أخذ القيمة None، المعامل constructor سيستدعى دون أيّ معاملات وذلك لإنشاء نسخة عند الحاجة. أما إذا أخذ المعامل قيمة معيّنة، فإنّ المعامل constructor لن يستدعى إطلاقًا، وقد يحمل القيمة None. preferred يؤدي تعيين القيمة True لهذا المعامل إلى جعل هذا المتصفّح النتيجةَ ...

التابع list.append()‎ في بايثون

يضيف هذا التابع عنصرًا إلى نهاية القائمة. البنية العامة l.append() المعاملات x العنصر المراد إضافته إلى نهاية القائمة. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام التابع append لإضافة عناصر إلى القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.append('grapse') >>> fruits ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana', 'grapse'] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.extend()‎: إضافة مجموعة من العناصر إلى ...

التابع list.copy()‎ في بايثون

يصنع هذا التابع نسخة سطحية عن القائمة. هذا التابع مكافئٌ للتعبير ‎a[:]‎. البنية العامة l.copy() القيمة المعادة يعيد عذا التابع نسخة سطحية عن القائمة الأصلية. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لإنشاء نسخة من قائمة: >>> list = [1, 4, 8, 9] >>> new_list = list.copy() >>> new_list.append(10) >>> list [1, 4, 8, 9] >>> new_list [1, 4, 8, 9, 10] انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط. التابع list.append()‎: إضافة ...

الدالة webbrowser.get()‎‎ في بايثون

تعيد الدالة كائن controller لنوع المتصفّح المعطى. البنية العامة webbrowser.get(using=None) المعاملات ‎using إن أخذ هذا المعامل القيمة None فإنّ الدالة ستعيد كائنًا للمتصفّح الافتراضي يكون ملائمًا لبيئة الاستدعاء. هناك عددٌ من أنواع المتصفّحات المعرّفة مسبقًا، ويبين الجدول التالي أسماء هذه الأنواع والتي يمكن تمريرها إلى الدالة get()‎ وإنشاء أصناف ذات أنواع مختلفة: اسم المتصفح الصنف ملاحظات 'mozilla' Mozilla('mozilla')‎   'firefox' Mozilla('mozilla')‎   'netscape' Mozilla('netscape')‎   'galeon' Galeon('galeon')‎   'epiphany' Galeon('epiphany')‎   'skipstone' BackgroundBrowser('skipstone')‎   'kfmclient' Konqueror()‎ (1) 'konqueror' Konqueror()‎ (1) ...

التابع list.pop()‎ في بايثون

يحذف هذا التابع العنصر في الموقع المحدّد من قبل المستخدم. البنية العامة l.pop() المعاملات i معامل اختياري، يحدّد موقع العنصر المراد حذفه من القائمة. في حال عدم تعيين قيمة لهذا المعامل فسيحذف التابع العنصر الأخير في القائمة. القيمة المعادة يعيد هذا التابع العنصر المحذوف من القائمة. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لحذف العناصر من القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.pop(2) 'pear' >>> fruits.pop() 'banana' >>> انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في ...

التابع list.remove()‎ في بايثون

يحذف هذا التابع أول عنصر في القائمة تساوي قيمته القيمة التي يحدّدها المستخدم. البنية العامة l.remove() المعاملات x العنصر المراد حذفه من القائمة. القيمة المعادة يعيد هذا التابع القيمة None، ويُطلِق الخطأ ValueError إن كان العنصر المراد حذفه غير موجودٍ في القائمة. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لحذف العناصر من القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.remove('banana') >>> fruits ['orange', 'apple', 'pear', 'kiwi', 'apple', 'banana'] >>> fruits.remove('watermelon') Traceback (most recent call last): File "<input>", line ...

بنى التحكم في PHP

تتكون جميع شيفرات PHP من سلسلة من العبارات (statements)، ويمكن للعبارة أن تكون إسنادًا (assignment) أو استدعاءً لدالّة، أو حلقة تكرارية، أو عبارة شرطية أو حتى عبارة لا تقوم بأي عمل على الإطلاق (عبارة فارغة). تنتهي العبارات عادة بالفاصلة المنقوطة (;)، ويمكن تجميع العبارات بإحاطتها بالأقواس المعقوفة ({}) لتصبح مجموعة عبارات (statement-group)، والتي تعدّ بدورها عبارات أيضًا. سنفصل الحديث في هذا الفصل عن أنواع متعددة من العبارات. if بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات ...

التابع list.extend()‎ في بايثون

يضيف هذا التابع مجموعة من العناصر إلى نهاية القائمة. البنية العامة l.extend() المعاملات iterable كائن قابل للتكرار (قائمة، أو صف، أو مجموعة) تُضاف عناصره إلى نهاية القائمة. القيمة المعادة يعيد هذا التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لإضافة عناصر إلى القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> summer_fruits = ['watermelon', 'honeymelon'] >>> winter_fruits = ('grapefruit', 'lemon', 'lime') >>> fruits.extend(summer_fruits) # إضافة عناصر قائمة أخرى إلى القائمة >>> fruits ['orange', 'apple', 'pear', 'banana', 'kiwi', ...

الدوال المساعدة في الحلقات التكرارية

تقدّم بايثون مجموعة من الدوال والتوابع التي تسهّل عملية إنشاء الحلقات التكرارية والاستفادة منها بصورة فعّالة في القواميس والقوائم وغيرها. التابع items()‎ عند المرور على عناصر قاموس، يمكن الحصول على المفتاح والقيمة المرتبطة به في نفس الوقت باستخدام التابع items()‎: >>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k, v in knights.items(): ...     print(k, v) ... gallahad the pure robin the brave الدالة enumerate()‎ يمكن الحصول على موقع الفهرس والقيمة المرتبطة به في نفس الوقت عند المرور على عناصر تسلسل معيّن ...

الدالة ()os.ctermid في بايثون

تُعيد الدالة اسم ملف الطرفية المتحكمة بالعملية. البنية العامة ctermid() الدالة متوافرة في أنظمة يونكس. القيمة المعادة تُعيد الدالة اسم ملف الطرفية المتحكمة (controlling terminal) بالعملية. أمثلة >>> from os import ctermid >>> ctermid() '/dev/tty' مصادر قسم الوحدة os في توثيق بايثون الرسمي.

التابع list.index()‎ في بايثون

يحدد هذا التابع موقع العنصر ضمن القائمة. البنية العامة l.index() المعاملات x العنصر المراد تحديد موقعه في القائمة. start معامل اختياري يحدّد الموقع الذي تبدأ منه الدالة عملية البحث. end معامل اختياري يحدّد الموقع الذي تنهي فيه الدالة عملية البحث. القيمة المعادة يعيد التابع موقع أول ظهور للعنصر في القائمة. يأخذ العنصر الأول في القائمة الموقع 0، والعنصر الثاني الموقع 1 وهكذا دواليك. جدير بالذكر أنّ قيمة موقع العنصر المعادة تحدّد بالنسبة إلى بداية القائمة وليس الموقع الذي يبدأ منه ...

التابع controller.open_new()‎‎ في بايثون

يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. البنية العامة controller.open_new(url) المعاملات url العنوان المراد فتحه بواسطة التابع. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> firefox = webbrowser.get('firefox') >>> firefox.open_new("https://wiki.hsoub.com") انظر أيضًا التابع controller.open()‎: يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. التابع controller.open_new_tab()‎: يفتح التابع العنوان المعطى في تبويب جديد في المتصفّح الذي يتحكّم به هذا المتحكّم، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون الرسمي.

التابع controller.open_new_tab()‎‎ في بايثون

يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. البنية العامة controller.open_new_tab(url) المعاملات url العنوان المراد فتحه بواسطة التابع. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> firefox = webbrowser.get('firefox') >>> firefox.open_new_tab("https://wiki.hsoub.com") انظر أيضًا التابع controller.open()‎: يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. التابع controller.open_new()‎: يفتح التابع العنوان المعطى في نافذة جديدة في المتصفّح الذي يتحكّم به هذا المتحكّم، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون الرسمي.

التابع list.insert()‎ في بايثون

يضيف التابع عنصرًا إلى القائمة في الموقع الذي يحدّده المستخدم. البنية العامة l.insert() المعاملات i موقع العنصر في القائمة الأصلية والذي سيدرج التابع العنصر الجديد قبله. يدرج التعبير a.insert(0, x)‎ العنصر x في بداية القائمة، أما التعبير a.insert(len(a), x)‎ فيدرج العنصر الجديد في نهاية القائمة وبهذا يصبح عمل التابع في هذه الحالة مكافئًا لعمل التابع a.append(x)‎. x العنصر المراد إضافته إلى القائمة. القيمة المعادة يعيد هذا التابع القيمة None. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لإضافة عناصر إلى ...

الدالة webbrowser.open_new_tab()‎‎ في بايثون

تفتح الدالة العنوان المعطى في تبويب جديد (tab) في المتصفّح الافتراضي، إن كان ذلك ممكنًا، وإلّا فإنّ الدالة تكون مكافئة للدالة webbrowser.open_new()‎. البنية العامة webbrowser.open_new_tab(url) المعاملات ‎url العنوان المراد فتحه في المتصفّح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> webbrowser.open_new_tab("http://wiki.hsoub.com") انظر أيضًا الدالة webbrowser.open()‎: تعرض الدالة العنوان المعطى في المتصفّح الافتراضي. الدالة webbrowser.open_new()‎: تفتح الدالة العنوان المعطى في نافذة جديدة في المتصفّح الافتراضي، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون الرسمي.

الدالة webbrowser.open_new()‎‎ في بايثون

تفتح الدالة العنوان المعطى في نافذة جديدة في المتصفّح الافتراضي، إن كان ذلك ممكنًا، وإلا فإنّها ستفتح العنوان المعطى في النافذة الموجودة فقط. البنية العامة webbrowser.open_new(url) المعاملات ‎url العنوان المراد فتحه في المتصفّح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> webbrowser.open_new("http://wiki.hsoub.com") انظر أيضًا الدالة webbrowser.open()‎: تعرض الدالة العنوان المعطى في المتصفّح الافتراضي. الدالة webbrowser.open_new_tab()‎: تفتح الدالة العنوان المعطى في تبويب جديد (tab) في المتصفّح الافتراضي، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون ...

التابع controller.open()‎‎ في بايثون

يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. البنية العامة controller.open(url, new=0, autoraise=True) المعاملات new إذا كانت قيمة هذا المعامل هي 1 فإنّ التابع يفتح نافذة متصفّح جديدة إن كان ذلك ممكنًا، وإن كانت قيمة المعامل هي 2 فإنّ التابع يفتح في تبويب tab جديد إن كان ذلك ممكنًا. autoraise إن أخذ هذا المعامل القيمة True، فإنّ نافذة المتصفّح ستُعرض في الواجهة الأمامية (لاحظ أنّ هذا هو السلوك الافتراضي في معظم أنظمة إدارة النوافذ، وتعيين قيمة لهذا ...

while في بايثون

تستخدم عبارة while لتكرار عملية التنفيذ ما دام الشرط المقدّم إلى هذه العبارة صحيحًا، وتأخذ عبارة while الصيغة التالية: while expression: statement مثال: >>> a, b = 0, 1 >>> while b < 10: ...     print(b) ...     a, b = b, a+b ... 1 1 2 3 5 8 تستمر هذه العبارة في تكرار تنفيذ الشيفرة ما دام الشرط صحيحًا True، أما إذا كان نتيجة الشرط خطأً False (قد يحدث ذلك في الدورة الأولى من الحلقة) فستنتقل عملية التنفيذ إلى عبارة else في حال وجودها، وتوقف اللغة ...

تعابير lambda في بايثون

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية: lambda arguments: expression تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية: def <lambda>(arguments): return expression على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها: lambda a, b: a+b يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال ...

تعابير lambda في بايثون

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية: lambda arguments: expression تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية: def <lambda>(arguments): return expression على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها: lambda a, b: a+b يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال ...

الدالة webbrowser.open()‎‎ في بايثون

تعرض الدالة العنوان المعطى في المتصفّح الافتراضي. البنية العامة webbrowser.open(url, new=0, autoraise=True) ‎ المعاملات ‎url العنوان المراد فتحه في المتصفّح. new معامل اختياري، يمكن أن يأخذ القيمة 0 وحينئذٍ يُفتح العنوان المعطى في نفس نافذة المتصفّح إن كان ذلك ممكنًا. وإن أخذ القيمة 1، تفتح الدالة نافذة متصفّح جديدة إن كان ذلك ممكنًا، وإن أخذ المعامل القيمة 2 فإنّ الدالة تفتح صفحة متصفّح (tab) جديدة إن كان ذلك ممكنًا. autoraise إن أخذ هذا المعامل القيمة True، فإنّ نافذة المتصفّح ستُعرض ...

القواميس dict في بايثون

القواميس هي مجاميع غير مرتّبة من أزواج (مفتاح: قيمة) (key: value) مع اشتراط كون المفاتيح ذات قيم فريدة (ضمن القاموس الواحد). يمكن استخدام الأقواس المعقوفة {} لإنشاء قاموس فارغ. >>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'sape': 4139, 'guido': 4127, 'jack': 4098} >>> tel['jack'] 4098 تأخذ القواميس مسمّيات مختلفة في لغات البرمجة الأخرى، مثل الذواكر الترابطية (associative memories) أو المصفوفات الترابطية (associative arrays). تختلف القواميس عن أنواع التسلسلات الأخرى في طريقة الفهرسة، فالقوائم والمجموعات تكون مفهرسة بواسطة مدى محدد ...

التساوي (Equality) في لغة Kotlin

تحتوي لغة Kotlin على نوعين من التساوي: التساوي البنيويّ (structural equality): يكون التحقُّق فيه عبر الدالة equals()‎. التساوي المرجعيّ (referential equality): وهو التحقُّق من الإشارة إلى نفس الكائن (object). التساوي البنيويّ (Structural Equality) يعتمد التساوي البنيويّ على المعامل == ونفيه =! ، إذ يُترجَم التعبير a == b إلى الصيغة: a?.equals(b) ?: (b === null) فإن لم يحتوِ المتغيِّر a على القيمة الفارغة null فستُستدعَى الدالةequals(Any?)‎ ، أما إن كانت قيمته null فيجري التحقُّق من أنّ b مساوٍ -مرجعيًّا- للقيمة null. ...

سلاسل التوثيق النصية في بايثون

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

سلاسل التوثيق النصية في بايثون

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

تنسيق الشيفرات البرمجية في بايثون

يمكن كتابة (أو بعبارة أدق، تنسيق) معظم اللغات البرمجية بتنسيقات مختلفة، يكون بعضها مقروءًا أكثر من الآخر. وينصح دائمًا بكتابة شيفرات برمجية يمكن للأشخاص الآخرين قراءتها بسهولة، وأفضل طريقة لتحقيق ذلك هي اتباع تنسيق جميل في كتاب الشيفرات البرمجية. تتّبع معظم المشاريع المكتوبة بلغة بايثون دليل التنسيق PEP 8، والذي يشجّع على اعتماد تنسيق يمتاز بالمقروئية العالية والمظهر الجميل. يجب على كل مطوّر بلغة بايثون أن يطّلع على هذا الدليل، وندرج فيما يلي بعض النقاط المهمّة المستخلصة من هذا الدليل: ...

سطر أوامر ريلز

بعد قراءة هذا الدّليل، ستتمكّن من: إنشاء تطبيق ريلز. توليد النماذج، ووحدات التحكّم، وتهجيرات قاعدة البيانات (database migrations)، ووحدات الاختبار. بدء الخادم الإنتاجي. كيفية تجربة الكائنات من خلال صدفة تفاعليّة (interactive shell) يفترض هذا الدليل أن لديك معرفة أساسية بإطار العمل ريلز من قراءة دليل البدء مع ريلز. أساسيات سطر الأوامر هناك بضعة أوامر تُعتبر حاسمة للغاية لاستخدامك اليومي لإطار العمل ريلز. هذا الأوامر مرتّبة حسب كثرة استخدامها تقريبًا بالشكل التالي: rails console rails server bin/rails rails generate rails dbconsole ...

المجموعات (Collections): القائمة (List) والمجموعة (Set) و الخارطة (Map) في لغة Kotlin

تُميِّز لغة Kotlin (على خلاف العديد من لغات البرمجة) بين المجموعة المتغيّرة (mutable) والثابتة (immutable)، وتساهم قدرتُها على التحكُّم الدقيق في الحالات التي يُسمَح فيها بتعديل المجموعات في التقليل من الأخطاء البرمجية (bugs) وتحقيق تصميمٍ أفضل لواجهات API. ومن المهمِّ معرفة الفوارق ما بين العرض (view) الثابت للقراءة فقط (read-only) للمجموعة المتغيّرة والمجموعة الثابتة الفعليّة، إذ من السهل إنشاء كلِّ منهما ولكن نظام الأنواع في Kotlin لا يوضّح الفرق بينهما، ويقع ذلك على عاتق المتعلِّم. يُعدُّ النوع List<out T>‎ في ...

المجموعات set في بايثون

المجموعة (set) هي مجموعة من الكائنات غير المرتّبة وغير المكرّرة وغير القابلة للتعديل (immutable). تستخدم المجموعات عادة لاختبار وجود العناصر وللتخلص من المدخلات المكرّرة. تدعم كائنات المجموعات العمليات الرياضية مثل الاتحاد (union)، التقاطع (intersection)، الاختلاف (difference)، والاختلاف المتناظر (symmetric difference) (راجع عمليات المجموعات في بايثون). إنشاء مجموعة جديدة تستخدم الأقواس المعقوفة {} أو الدالة set()‎ لإنشاء مجموعة جديدة: >>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >>> print(basket)                      # تحذف ...

التابع Struct.new‎ في روبي

ينشئ التابع new صنفًا فرعيًّا جديدًا أو نسخةً جديدةً من الصنف Struct. البنية العامة new([class_name] [, member_name]+)→ StructClass new([class_name] [, member_name]+, keyword_init: true) → StructClass new([class_name] [, member_name]+) {|StructClass| block } → StructClass new(value, ...) → object StructClass[value, ...]→ object‎ يُستخدم الشكلان الأولان من التابع new لإنشاء صنف فرعي جديد من Struct يحمل الاسم class_name، والذي يمكن أن يحتوي قيمةً مقابل كل وسيط member_name. يمكن استخدام هذا الصنف الفرعي لإنشاء نسخ من البنية مثل أي صنف آخر. إذا لم يُعطَ الوسيط class_name، فسيُنشِئ التابع ...

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

تُعرَّف الدوال باستخدام الكلمة المفتاحية def يتبعها اسم الدالة ثم قائمة بالمعاملات محاطة بالأقواس. أما الكتلة الرئيسية للدالة فتبدأ في السطر التالي لسطر التعريف، ويجب أن تزاح بمقدار إزاحة واحدة. مثال >>> def fib(n): # دالة لإنشاء متسلسلة فابيوناتشي ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=' ') ... ...

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

تُعرَّف الدوال باستخدام الكلمة المفتاحية def يتبعها اسم الدالة ثم قائمة بالمعاملات محاطة بالأقواس. أما الكتلة الرئيسية للدالة فتبدأ في السطر التالي لسطر التعريف، ويجب أن تزاح بمقدار إزاحة واحدة. مثال >>> def fib(n): # دالة لإنشاء متسلسلة فابيوناتشي ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=' ') ... ...

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

تُعرَّف الدوال باستخدام الكلمة المفتاحية def يتبعها اسم الدالة ثم قائمة بالمعاملات محاطة بالأقواس. أما الكتلة الرئيسية للدالة فتبدأ في السطر التالي لسطر التعريف، ويجب أن تزاح بمقدار إزاحة واحدة. مثال >>> def fib(n): # دالة لإنشاء متسلسلة فابيوناتشي ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=' ') ... ...

الاستثناءات في بايثون

قد تكون التعابير البرمجية في الشيفرة صحيحة من ناحية الصيغة، لكن قد يؤدي تنفيذ تلك الشيفرة إلى التسبب في حدوث الأخطاء. تسمّى الأخطاء المُكتشفة أثناء تنفيذ الشيفرة بالاستثناءات (exceptions) وقد تتسبب في إيقاف عمل البرنامج (fatal) في بعض الأحيان. صيغة الاستثناءات تُنشئ الاستثناءات رسائل خطإٍ مماثلة لما يلي: >>> 10 * (1/0) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> 4 + spam*3 Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'spam' ...

الدالة contentEquals()‎ في Kotlin

تتحقَّق الدالة contentEquals()‎ من تساوي مصفوفتين بنيويًا (structurally equal)، أي إن كان لهما نفس العناصر وبنفس العدد والترتيب. البنية العامة inline infix fun <T> Array<out T>.contentEquals( other: Array<out T> ): Boolean inline infix fun ByteArray.contentEquals( other: ByteArray ): Boolean inline infix fun ShortArray.contentEquals( other: ShortArray ): Boolean inline infix fun IntArray.contentEquals( other: IntArray ): Boolean inline infix fun LongArray.contentEquals( other: LongArray ): Boolean inline infix fun FloatArray.contentEquals( other: ...

التابع str.splitlines()‎ في بايثون

يُقسِّم هذا التابع السلسلة النصية إلى قائمة من الأسطر. البنية العامة x.splitlines() المعاملات keepends قيمة منطقية (Boolean). تُدرج فواصل الأسطر في القائمة المعادة عندما يأخذ هذا المعامل القيمة True. القيمة المعادة يعيد التابع قائمة من الأسطر التي تكوّن السلسلة النصية، وتجري عملية التقسيم عند حدود الأسطر، ولا تُدرج فواصل الأسطر في القائمة المعادة إلا إذا أخذ المعامل keepends القيمة True. يقسم التابع السلاسل النصية عند حدود الأسطر التالية: الفاصل الوصف ‎\n محرف السطر الجديد (Line Feed). ‎\r محرف العودة إلى ...

عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).