Skip to content

Latest commit

 

History

History
528 lines (375 loc) · 29.4 KB

readme.md

File metadata and controls

528 lines (375 loc) · 29.4 KB

🐍 30 يومًا من بايثون

# اليوم الموضوع
01 مقدمة
02 المتغيرات والدوال المضمنة
03 العوامل (Operators)
04 النصوص (Strings)
05 القوائم (Lists)
06 التوبل (Tuples)
07 المجموعات (Sets)
08 القواميس (Dictionaries)
09 الجمل الشرطية
10 الحلقات التكرارية
11 الدوال (Functions)
12 الوحدات (Modules)
13 تعبيرات القوائم (List Comprehension)
14 دوال الرتبة العليا (Higher Order Functions)
15 أخطاء الأنواع في بايثون
16 التاريخ والوقت في بايثون
17 معالجة الاستثناءات
18 التعبيرات المنتظمة (Regular Expressions)
19 معالجة الملفات
20 مدير حزم بايثون
21 الكائنات (Classes and Objects)
22 استخراج بيانات الويب (Web Scraping)
23 البيئة الافتراضية (Virtual Environment)
24 الإحصاء (Statistics)
25 Pandas
26 بايثون للويب
27 بايثون مع MongoDB
28 API
29 بناء API
30 الاستنتاجات

🇸🇦 الترجمة العربية : عربي

🧡🧡🧡 كود بسعادة 🧡🧡🧡


💖 الداعمون (Sponsors)

داعمونا الرائعون لدعم مساهمتي مفتوحة المصدر وسلسلة تحدي 30 يومًا!

الداعمون الحاليون




🙌 كن داعمًا (Become a Sponsor)

يمكنك دعم هذا المشروع من خلال أن تصبح داعمًا على GitHub Sponsors أو عبر PayPal.

كل مساهمة، كبيرة كانت أم صغيرة، تُحدث فرقًا كبيرًا. شكرًا لدعمك! 🌟


30 يومًا من بايثون: اليوم 1 - مقدمة

Twitter Follow

المؤلف: Asabeneh Yetayeh
الطبعة الثانية: يوليو 2021

🇬🇧 English 🇧🇷 Portuguese 🇨🇳 中文

>> اليوم 2

30DaysOfPython

📘 اليوم 1

الترحيب

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

إذا كنت ترغب في المشاركة بنشاط في التحدي، يمكنك الانضمام إلى مجموعة تلغرام تحدي 30DaysOfPython.

مقدمة

بايثون هي لغة برمجة عالية المستوى للأغراض العامة. إنها لغة برمجة مفتوحة المصدر، مُفسَّرة (interpreted)، وكائنية التوجه (object-oriented). تم إنشاء بايثون بواسطة مبرمج هولندي، Guido van Rossum. اشتق اسم لغة برمجة بايثون من مسلسل كوميدي بريطاني، Monty Python's Flying Circus. تم إصدار النسخة الأولى في 20 فبراير 1991. سيساعدك هذا التحدي المكون من 30 يومًا في تعلم أحدث إصدار من بايثون، Python 3، خطوة بخطوة. المواضيع مقسمة إلى 30 يومًا، حيث يحتوي كل يوم على عدة مواضيع مع شروحات سهلة الفهم، وأمثلة من العالم الحقيقي، والعديد من التمارين والمشاريع العملية.

صُمم هذا التحدي للمبتدئين والمحترفين الذين يرغبون في تعلم لغة برمجة بايثون. قد يستغرق إكمال التحدي من 30 إلى 100 يوم. الأشخاص الذين يشاركون بنشاط في مجموعة تلغرام لديهم احتمالية عالية لإكمال التحدي.

هذا التحدي سهل القراءة، مكتوب بلغة إنجليزية محادثاتية، جذاب، محفز، وفي نفس الوقت متطلب جدًا. تحتاج إلى تخصيص وقت كافٍ لإنهاء هذا التحدي. إذا كنت متعلمًا بصريًا، يمكنك الحصول على الدروس المرئية على قناة يوتيوب Washera. يمكنك البدء من فيديو بايثون للمبتدئين المطلقين. اشترك في القناة، وعلق واسأل أسئلة على فيديوهات يوتيوب وكن نشطًا، سيلاحظك المؤلف في النهاية.

يحب المؤلف سماع رأيك حول التحدي، شارك المؤلف بالتعبير عن أفكارك حول تحدي 30DaysOfPython. يمكنك ترك شهادتك على هذا الرابط

لماذا بايثون؟

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

إعداد البيئة

تثبيت بايثون

لتشغيل سكريبت بايثون، تحتاج إلى تثبيت بايثون. دعنا نحمّل بايثون. إذا كنت مستخدم ويندوز، انقر على الزر المُحاط باللون الأحمر.

التثبيت على ويندوز

إذا كنت مستخدم macOS، انقر على الزر المُحاط باللون الأحمر.

التثبيت على macOS

للتحقق من تثبيت بايثون، اكتب الأمر التالي في terminal جهازك.

python3 --version

إصدار بايثون

كما ترى من 'terminal'، أنا أستخدم إصدار 'Python 3.7.5' حاليًا. قد يكون إصدار بايثون الخاص بك مختلفًا عن إصداراي ولكن يجب أن يكون 3.6 أو أعلى. إذا تمكنت من رؤية إصدار بايثون، أحسنت. تم تثبيت بايثون على جهازك. تابع إلى القسم التالي.

شل بايثون

بايثون هي لغة برمجة مفسَّرة (interpreted scripting language)، لذا فهي لا تحتاج إلى التجميع (compile). هذا يعني أنها تنفذ الكود سطرًا سطرًا. تأتي بايثون مع شل بايثون (Python Interactive Shell). يُستخدم لتنفيذ أمر بايثون واحد والحصول على النتيجة.

شل بايثون ينتظر كود بايثون من المستخدم. عندما تدخل الكود، يفسره ويعرض النتيجة في السطر التالي. افتح terminal أو موجه الأوامر (cmd) واكتب:

python

شل بايثون البرمجي

تم فتح شل بايثون التفاعلي وهو في انتظارك لكتابة كود بايثون (سكريبت بايثون). ستكتب سكريبت بايثون الخاص بك بجانب هذا الرمز >>> ثم تضغط Enter. دعنا نكتب أول سكريبت لنا في شل بايثون البرمجي.

سكريبت بايثون على شل بايثون

أحسنت، لقد كتبت أول سكريبت بايثون في شل بايثون التفاعلي. كيف نغلق شل بايثون التفاعلي؟ لإغلاق الشل، بجانب هذا الرمز >>> اكتب الأمر exit() واضغط Enter.

الخروج من شل بايثون

الآن، أنت تعرف كيفية فتح شل بايثون التفاعلي وكيفية الخروج منه.

سيعطيك بايثون نتائج إذا كتبت سكريبتات يفهمها بايثون، وإلا فإنه يرجع أخطاء. دعنا نرتكب خطأً متعمدًا ونرى ماذا سيرجع بايثون.

خطأ صياغة غير صالح

كما ترى من الخطأ المرتجع، بايثون ذكي جدًا لدرجة أنه يعرف الخطأ الذي ارتكبناه وكان Syntax Error: invalid syntax. استخدام x كعلامة ضرب في بايثون هو خطأ صياغة لأن (x) ليست صياغة صالحة في بايثون. بدلاً من (x) نستخدم العلامة النجمية (*) للضرب. يوضح الخطأ المرتجع بوضوح ما يجب إصلاحه.

عملية تحديد وإزالة الأخطاء من البرنامج تسمى التنقيح (debugging). دعنا ننقحه بوضع * مكان x.

إصلاح خطأ الصياغة

تم إصلاح الخلل، وعمل الكود وحصلنا على النتيجة التي كنا نتوقعها. كمبرمج سترى هذا النوع من الأخطاء بشكل يومي. من الجيد أن تعرف كيفية التنقيح. لتكون جيدًا في التنقيح يجب أن تفهم أنواع الأخطاء التي تواجهها. بعض أخطاء بايثون التي قد تواجهها هي 'SyntaxError'، 'IndexError'، 'NameError'، 'ModuleNotFoundError'، 'KeyError'، 'ImportError'، 'AttributeError'، 'TypeError'، 'ValueError'، 'ZeroDivisionError' وغيرها. سنرى المزيد عن أنواع أخطاء بايثون المختلفة في أقسام لاحقة.

دعنا نتدرب أكثر على كيفية استخدام شل بايثون التفاعلي. اذهب إلى terminal أو موجه الأوامر واكتب كلمة python.

شل بايثون البرمجي

تم فتح شل بايثون التفاعلي. دعنا نقوم ببعض العمليات الحسابية الأساسية (جمع، طرح، ضرب، قسمة، باقي القسمة، الأس).

دعنا نقوم ببعض العمليات الحسابية أولاً قبل أن نكتب أي كود بايثون:

  • 2 + 3 = 5
  • 3 - 2 = 1
  • 3 * 2 = 6
  • 3 / 2 = 1.5
  • 3 ** 2 = 3 x 3 = 9

في بايثون، لدينا العمليات الإضافية التالية:

  • 3 % 2 = 1 => والتي تعني إيجاد الباقي
  • 3 // 2 = 1 => والتي تعني إزالة الباقي

دعنا نحول التعبيرات الرياضية أعلاه إلى كود بايثون. تم فتح شل بايثون ودعنا نكتب تعليقًا (comment) في بداية الشل.

التعليق هو جزء من الكود لا يتم تنفيذه بواسطة بايثون. لذا يمكننا ترك بعض النصوص في كودنا لجعل كودنا أكثر قابلية للقراءة. بايثون لا يشغِّل جزء التعليق. التعليق في بايثون يبدأ برمز الهاشتاج (#). هذه هي كيفية كتابة تعليق في بايثون

 # التعليق يبدأ بالهاشتاج
 # هذا تعليق بايثون، لأنه يبدأ برمز (#)

العمليات الحسابية على شل بايثون

قبل أن ننتقل إلى القسم التالي، دعنا نتدرب أكثر على شل بايثون التفاعلي. أغلق الشل المفتوح بكتابة exit() في الشل وافتحه مرة أخرى ودعنا نتدرب على كيفية كتابة نص في شل بايثون.

كتابة نص على شل بايثون

تثبيت فيجوال ستوديو كود

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

فيجوال ستوديو كود

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

كيفية استخدام فيجوال ستوديو كود

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

فيجوال ستوديو كود

أنشئ مجلدًا باسم 30DaysOfPython على سطح المكتب. ثم افتحه باستخدام فيجوال ستوديو كود.

فتح مشروع على فيجوال ستوديو

فتح مشروع

بعد فتحه، سترى اختصارات لإنشاء الملفات والمجلدات داخل دليل مشروع 30DaysOfPython. كما ترى أدناه، لقد قمت بإنشاء أول ملف، helloworld.py. يمكنك فعل الشيء نفسه.

إنشاء ملف بايثون

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

إغلاق المشروع

تهانينا، لقد انتهيت من إعداد بيئة التطوير. دعنا نبدأ البرمجة.

أساسيات بايثون

صيغة بايثون

يمكن كتابة سكريبت بايثون في شل بايثون التفاعلي أو في محرر الأكواد. ملف بايثون له امتداد .py.

المسافات البادئة في بايثون

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

خطأ المسافة البادئة

التعليقات

تلعب التعليقات دورًا حاسمًا في تحسين قابلية قراءة الكود والسماح للمطورين بترك ملاحظات داخل كودهم. في بايثون، أي نص يسبقه رمز الهاشتاج (#) يُعتبر تعليقًا ولا يتم تنفيذه عند تشغيل الكود.

مثال: تعليق سطر واحد

    # هذا هو التعليق الأول
    # هذا هو التعليق الثاني
    # بايثون تلتهم العالم

مثال: تعليق متعدد الأسطر

يمكن استخدام علامة الاقتباس الثلاثية للتعليق متعدد الأسطر إذا لم يتم تعيينها لمتغير

"""هذا تعليق متعدد الأسطر
التعليق متعدد الأسطر يأخذ عدة أسطر.
بايثون تلتهم العالم
"""

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

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

العدد (Number)

  • عدد صحيح (Integer): أعداد صحيحة (سلبية، صفر، وإيجابية) مثال: ... -3, -2, -1, 0, 1, 2, 3 ...
  • عدد عشري (Float): رقم عشري مثال: ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
  • عدد مركب (Complex) مثال: 1 + j, 2 + 4j

النص (String)

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

مثال:

'Asabeneh'
'Finland'
'Python'
'I love teaching'
'I hope you are enjoying the first day of 30DaysOfPython Challenge'

القيم المنطقية (Booleans)

نوع البيانات المنطقية إما أن تكون قيمته True أو False. يجب أن تكون T و F دائمًا بأحرف كبيرة.

مثال:

    True  # هل الضوء مضاء؟ إذا كان مضاءً، فإن القيمة True
    False # هل الضوء مضاء؟ إذا كان مطفأً، فإن القيمة False

القائمة (List)

قائمة بايثون هي مجموعة مرتبة تسمح بتخزين عناصر من أنواع بيانات مختلفة. القائمة تشبه المصفوفة (array) في جافا سكريبت.

مثال:

[0, 1, 2, 3, 4, 5]  # كلها من نفس نوع البيانات - قائمة أرقام
['Banana', 'Orange', 'Mango', 'Avocado'] # كلها من نفس نوع البيانات - قائمة نصوص (فواكه)
['Finland','Estonia', 'Sweden','Norway'] # كلها من نفس نوع البيانات - قائمة نصوص (دول)
['Banana', 10, False, 9.81] # أنواع بيانات مختلفة في القائمة - نص، عدد صحيح، منطقي، وعشري

القاموس (Dictionary)

كائن القاموس في بايثون هو مجموعة غير مرتبة من البيانات بتنسيق زوج مفتاح-قيمة (key-value pair).

مثال:

{
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'country':'Finland',
'age':250,
'is_married':True,
'skills':['JS', 'React', 'Node', 'Python']
}

التوبل (Tuple)

التوبل هو مجموعة مرتبة من أنواع بيانات مختلفة مثل القائمة ولكن لا يمكن تعديل التوبل بمجرد إنشائها. إنها غير قابلة للتغيير (immutable).

مثال:

('Asabeneh', 'Pawel', 'Brook', 'Abraham', 'Lidiya') # أسماء
('Earth', 'Jupiter', 'Neptune', 'Mars', 'Venus', 'Saturn', 'Uranus', 'Mercury') # كواكب

المجموعة (Set)

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

في الأقسام اللاحقة، سنتعمق في كل نوع من أنواع بيانات بايثون.

مثال:

{2, 4, 3, 5}
{3.14, 9.81, 2.7} # الترتيب ليس مهمًا في المجموعة

التحقق من أنواع البيانات

للتحقق من نوع بيانات معينة/متغير نستخدم دالة type. في terminal التالي سترى أنواع بيانات بايثون المختلفة:

التحقق من أنواع البيانات

ملف بايثون

أولاً افتح مجلد مشروعك، 30DaysOfPython. إذا لم يكن لديك هذا المجلد، أنشئ مجلدًا باسم 30DaysOfPython. داخل هذا المجلد، أنشئ ملفًا باسم helloworld.py. الآن، دعنا نفعل ما فعلناه في شل بايثون التفاعلي باستخدام فيجوال ستوديو كود.

شل بايثون التفاعلي كان يطبع دون استخدام print ولكن في فيجوال ستوديو كود لرؤية نتيجتنا يجب أن نستخدم الدالة المضمنة 'print()'. الدالة المضمنة 'print()' تأخذ وسيطة واحدة أو أكثر كالتالي print('argument1', 'argument2', 'argument3'). انظر الأمثلة أدناه.

مثال:

اسم الملف هو helloworld.py

# اليوم 1 - تحدي 30DaysOfPython

print(2 + 3)             # جمع (+)
print(3 - 1)             # طرح (-)
print(2 * 3)             # ضرب (*)
print(3 / 2)             # قسمة (/)
print(3 ** 2)            # أس (**)
print(3 % 2)             # باقي القسمة (%)
print(3 // 2)            # قسمة الأرض (//)

# التحقق من أنواع البيانات
print(type(10))          # Int
print(type(3.14))        # Float
print(type(1 + 3j))      # Complex number
print(type('Asabeneh'))  # String
print(type([1, 2, 3]))   # List
print(type({'name':'Asabeneh'})) # Dictionary
print(type({9.8, 3.14, 2.7}))    # Set
print(type((9.8, 3.14, 2.7)))    # Tuple

لتشغيل ملف بايثون انظر إلى الصورة أدناه. يمكنك تشغيل ملف بايثون إما بالضغط على الزر الأخضر في فيجوال ستوديو كود أو بكتابة 'python helloworld.py' في 'terminal'.

تشغيل سكريبت بايثون

🌕 أنت رائع. لقد أكملت للتو تحدي اليوم الأول وأنت في طريقك إلى العظمة. الآن قم ببعض التمارين لعقلك وعضلاتك.

💻 تمارين - اليوم 1

تمرين: المستوى 1

  1. تحقق من إصدار بايثون الذي تستخدمه
  2. افتح شل بايثون التفاعلي وقم بالعمليات التالية. المعاملات (operands) هي 3 و 4.
    • جمع (+)
    • طرح (-)
    • ضرب (*)
    • باقي القسمة (%)
    • قسمة (/)
    • أس (**)
    • قسمة الأرض (//)
  3. اكتب نصوصًا في شل بايثون التفاعلي. النصوص هي التالية:
    • اسمك
    • اسم عائلتك
    • بلدك
    • أنا أستمتع بـ 30 يومًا من بايثون
  4. تحقق من أنواع البيانات التالية:
    • 10
    • 9.8
    • 3.14
    • 4 - 4j
    • ['Asabeneh', 'Python', 'Finland']
    • اسمك
    • اسم عائلتك
    • بلدك

تمرين: المستوى 2

  1. أنشئ مجلدًا باسم day_1 داخل مجلد 30DaysOfPython. داخل مجلد day_1، أنشئ ملف بايثون helloworld.py وكرر الأسئلة 1 و 2 و 3 و 4. تذكر استخدام 'print()' عندما تعمل على ملف بايثون. انتقل إلى الدليل حيث حفظت ملفك، وشغّله.

تمرين: المستوى 3

  1. اكتب مثالاً لأنواع بيانات بايثون المختلفة مثل رقم (صحيح، عشري، مركب)، نص، قيمة منطقية، قائمة، توبل، مجموعة وقاموس.
  2. احسب المسافة الإقليدية بين (2, 3) و (10, 8)

🎉 مبروك! 🎉

>> اليوم 2