إبدأ مع بايثون

17 Followers
15 Following
13 Posts
هلموا لنبدأ تعلّم لغة بايثون معاً، خطوة بخطوة وباللغة العربية.
نقدّم شرحاً مبسّطاً لتعليم لغة بايثون لأغلب الناس حتى وإن كانوا مبتدئين.
الصورة المرفقة هي ملخّص الدرس، فاحتفظ بها.

@simou_dz
جزاكم الله كل خير

أسأل الله أن يوفقني لتقديم نا من شأنه رفعة المجتمع العربي

الدرس (9)
🚀 عوامل بايثون: الأدوات التي تحرك الشيفرة (الجزء 2)

2. عوامل المقارنة (Comparison Operators)
تُستخدم هذه العوامل لإجراء مقارنة بين اثنين من مختلف القيم والفحص عن ارتباط معينٍ بينهما، فإذا كانت الارتباط متحقّقاً كان الناتج قيمة "True" وإلا كانت القيمة "False"، إذ تستخدم هذه العوامل لفحص التالي:
" == " للتساوي، و" != " لعدم التساوي، و" > " للأكبر من، و" < " للأصغر، و" >= " للأكبر من أو التساوي، و" <= " للأصغر من أو التساوي.
تذكير، إذا لاحظت حصول شقلبة في عوامل الأكبر والأصغر في هذا النصّ فإنّ السبب يرجع إلى طريقة تعامل الأنظمة الكمبيوترية مع العلامات عند مزجها مع اللغة العربية، وعليه فأنصحك باتّباع الأسلوب الذي كنّا نتبعه في مرحلة الابتدائي، وهي أنّ الزاوية الحادة في العلامة واقعة بجانب القيمة المفترض كونها الأصغر😅.

#python
#programming_languages
#بايثون
#لغات_برمجة

الدرس (8)
🚀 عوامل بايثون: الأدوات التي تحرك الشيفرة (الجزء 1)
العوامل (Operators) في لغة بايثون هي رموز أو دوالّ تمثّل عمليات حسابية
فهي اللبنات الأساسية التي تسمح لنا بتنفيذ الإجراءات على أنواع مختلفة من البيانات، سواء كانت أعداداً أو قيماً منطقية،
وإليك الأنواع الأربعة الأولى من العوامل التي تحتاجها في برمجة بايثون:
1. العوامل الحسابية (Arithmetic Operators)
تُستخدم هذه العوامل لإجراء العمليات الرياضية على القيم العددية، وهي:
" + " للجمع و " - " للطرح و " * " للضرب و " / " للقسمة وقد يكون الناتج كسراً
و " = " لإسناد القيمة الموجودة على اليمين إلى المتغير الموجود على اليسار
و " ** " لتكرار ضرب العدد الموجود على اليسار بعدد القيمة الموجودة على اليمين
و " // " لحساب خارج القسمة أي أكبر عدد صحيح يقبل المقسوم القسمة عليه
و " % " لحساب الباقي في القسمة ولا يكون إلا أقل من المقسوم عليه، أو قل هو بسط الكسر في العدد المركب الناتج عن القسمة
كما توجد العوامل الأحادية (Unary Operators)، سميّت بالأحادية لأنها تحتاج عاملاً واحداً فقط، فالأولى وهي "+" وليس لها تأثير لا على القيم الموجبة ولا على السالبة، إذ إنّ ناتجها هو حاصل ضرب المتغير في موجب واحد. والثاتية وهي "–" وتعطيك قيمة حاصل ضرب المتغير في سالب واحد، فإن كانت قيمة المتغير سالبة ستصبح موجبة والعكس بالعكس.

#python
#programming_languages
#بايثون
#لغات_برمجة

الدرس (7)
تحويل نوع المتغيّر
تقدّم في الدرس (4) أن نوع المتغيّر قد يتحوّل أثناء تشغيل البرنامج وذلك تبعاً للقيمة التي يمثّلها، وهذا الأمر واضح في المثال التالي:
x=5; y=2; x= x/y
فإنّ المتغير "x" كان من نوع العدد الصحيح "int" ولكن بعد أن أعطيناه قيمة ناتج قسمته على 2 سيتحوّل نوعه ليصبح عدداً عشرياً "float". ولكن، هذا ليس كافياً في بعض الصور، لذا كانت الحاجة إلى وجود دوال لتحويل أنواع المتغيّرات بين بعضها البعض، وتسمى "دوال تحويل النوع".

- دوال تحويل النوع (type conversion functions):
هي دوال تُستخدم لتحويل البيانات بين الأنواع الأساسية (مثل int, float, str) والهياكل البيانية (مثل list, tuple, set, dict). وفيما يلي سنذكر هذه الدوال مع بعض التوصيات المهمّة في استخدامها، ويمكنك مشاهدة الصور المرفقة للتعرّف على جميع الصور الممكنة.
الدوال المدمجة لتحويل الأنواع هي:
دالة int(x): تحويل إلى عدد صحيح (integer)
دالة float(x): تحويل إلى عدد عشري (float)
دالة str(x): تحويل إلى نص (string)
دالة bool(x): تحويل إلى قيمة منطقية (True/False)
دالة list(x): تحويل إلى قائمة (list)
دالة tuple(x): تحويل إلى مترابطة بيانية (tuple)
دالة set(x): تحويل إلى مجموعة (set)
دالة dict(x): تحويل إلى قاموس (dictionary)

* توصيات لتجنب الأخطاء
تحقق من صلاحية البيانات: تأكد أن النص يحتوي على أرقام صالحة قبل تحويله إلى int أو float.
التكرار مطلوب: لتحويل إلى list، tuple، أو set، يجب أن يكون المدخل iterable (مثل قائمة، نص، ولا يمكن أن يكون int أو float مباشرة).
المفاتيح في dict: يجب أن تكون المفاتيح غير قابلة للتغيير (مثل str، int، tuple).
اقرأ رسائل الخطأ: إذا حصلت على ValueError (بيانات غير صالحة للتحويل) أو TypeError (نوع غير متوافق)، تحقق من نوع المدخل وصحته.

* تذكّر!!!:
ليست كل التحويلات ممكنة (مثل تحويل نص غير رقمي إلى int يسبب ValueError).
التحويل يعتمد على محتوى البيانات (مثل تحويل "5.5" إلى float ممكن، لكن إلى int يتطلب تحويل وسيط).
#python
#programming_languages
#بايثون
#لغات_برمجة

@m_aljaafari
لاحظ المثال التالي ثم سأبيّن المقصود:

g = """This Text Contains both 'single quotations' and "double quotations"."""

المقصود هو أن النص المشتمل على علامات التنصيص من قبيل " " أو ' '، يجب أن تجعل علامة تنصيصه مغايرة للعلامات الموجودة داخل النص:
- إما من ناحية العدد: فإذا اشتمل النص على مزدوجة منفردة" " عليك أن تجعل علامة التنصيص الخارجية مزدوجة ثلاثية """ """، وإذا اشتمل النص على مفردة منفردة ' ' فعليك أن تجعل علامة التنصيص الخارجية مفردة ثلاثية ''' ''' .
أو من ناحية النوع، فإذا كانت علامات التنصيص داخل النص مفردة عليك أن تجعل علامة التنصيص الخارجية مزدوجة، وهكذا.

الدرس (6)
أنواع المتغيرات في لغة بايثون - القسم الثاني:

- القائمة (List):
هي مجموعة مرتبة ومتغيرة (قابلة للتعديل) من العناصر. يمكن أن تحتوي على عناصر من أنواع مختلفة (مثل أرقام، نصوص، أو حتى قوائم أخرى). تُمثل بأقواس مربعة [ ].
* خصائصها:
**مرتبة: يمكن الوصول إلى العناصر مباشرة عبر فهرس (index) يبدأ من 0.
**قابلة للتعديل: يمكن إضافة عناصر وحذفها وتغييرها.
**تسمح بالتكرار: يمكن وجود عناصر مكررة.
**غير مضمونة السرعة في عمليات البحث إذا كانت كبيرة.
ويمكن أيضاً الاكتفاء بتعريف نوع القائمة وعدد عناصرها، ثم إضافة العناصر في مرحلة لاحقة:

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

- المجموعة (Set):
هي مجموعة غير مرتبة وغير مكررة من العناصر الفريدة. لا تحتوي على فهرس، وتُستخدم للعمليات الرياضية مثل التقاطع أو الفرق. تُمثل بأقواس متعرجة {} أو عبر دالة set.
* خصائصها:
**غير مرتبة: لا يمكن الوصول عبر فهرس (لا index).
**قابلة للتعديل: يمكن إضافة أو حذف عناصر.
**لا تسمح بالتكرار: العناصر المتشابهة تُحذف تلقائيًا.
**سريعة في عمليات التحقق من الوجود (مثل "هل هذا العنصر موجود؟").

- القاموس (Dictionary):
هي مجموعة غير مرتبة تقليديًا (في بايثون 3.7 وما بعده، تحافظ على ترتيب الإدراج) من أزواج مفتاح-قيمة، حيث يكون كل مفتاح فريدًا ومرتبطًا بقيمة. تُمثل بأقواس متعرجة {}، وتُشبه قاموسًا حقيقيًا حيث "key" هو الكلمة و"value" هي التعريف.
الخصائص الرئيسية:

**مرتبة في 3.7+: الوصول يعتمد على المفتاح (key).
**قابلة للتعديل: يمكن إضافة، حذف، أو تغيير أزواج "مفتاح-قيمة".
**المفاتيح لا تتكرر: المفاتيح فريدة غير قابلة للتغيير (مثل str, int, tuple)، أما القيم يمكن تكرارها.
**سريعة في البحث عبر المفتاح.
#python
#programming_languages
#بايثون
#لغات_برمجة

الدرس (5)
أنواع المتغيرات في لغة بايثون - القسم الأول:
ذكرنا سابقاً أنّ بايثون لا يطلب من المبرمج تحديد نوع المتغير، بل يكفي عليه الالتزام بإسناد قيمة له، وسيقوم بايثون بتحديد النوع تلقائياً. كما أنّ المتغيرات في لغة بايثون هي كائنات (أي أنها معرفة بمكتبات ويمكن إجراء مجموعة من الدوال عليها)، وتنقسم إلى سبعة أقسام أساسية:

- المتغيرات العددية (Numbers):
وتشمل ثلاثة أنواع:
الأعداد الصحيحة (int): x = 5
الأعداد العشرية (float): y = 1.2
الأعداد المركّبة (complex): z = 8J

- المتغيرات النصية (Strings)
يمكن تعريف المتغيرات النصية للقيم غير المشتملة على أسطر بطريقين:
a = "five"
b = 'name'
أما المتغيرات النصية للقيم المشتملة على أسطر فيتم تعريفها بالطريقة التالية:
c = """First Line.
Second Line."""
d = '''First Paragraph
Second Paragraph'''
لا يوجد أي مشكلة في استعمال نفس علامات التنصيص في نفس النص بشرط أن تكون مختلفة عن علامة التنصيص الأصلية (الخارجية) في النوع أو في العدد:
e = 'This Text Contains "double quotations".'
f = "This Text Contains 'single quotations'."

- المتغيرات المنطقية (Logical):
هذه المتغيرات تقبل إحدى قيمتين: (True) أو (False).
is_odd = True
is_even = False
وفي الواقع القيمة (True) تساوي 1 و القيمة (False) تساوي 0 ، ويمكن استعمالهما بدلاً عنهما بل لعله يكون أفضل.
is_odd = True
if is_odd:
print('This number is odd')
else:
print('This number is even')

#python
#programming_languages
#بايثون
#لغات_برمجة

الدرس (4)
إعلان المتغير وتعيين نوعه
مقدّمة: المتغيرات ( variables ) عبارة عن أماكن يتم حجزها بشكل مؤقت في الذاكرة بهدف تخزين بيانات فيها أثناء تشغيل البرنامج. في لغة بايثون لا يطلب من المبرمج التصريح بنوع المتغيّر، بل يقوم المفسّر بذلك تلقائياً معتمداً على نوع القيمة التي يسندها المبرمج، ومن هنا يتّضح أنّ لغة بايثون لا تقبل أيّ متغيّر بدون إسناد قيمة له.
يكفي في تعريف متغيّر جديد: اختيار اسمٍ له ثم إسناد قيمة له، كما هو مبيّن في المثالين التاليين:
x = 12
var = "Ali"
في إسناد القيم النصية يمكنك استخدام رمز التنصيص الفردي 'النص' أو الزوجي "النص" و لا يوجد أي فارق بينهما. ولكنّ إذا أردت إسناد قيمة نصيّة مكوّنة من أكثر من سطر فيجب عليك استخدام علامة التنصيص الفردية أو الزوجية مكرّرة ثلاث مرات على كلا طرفي النص، هكذا: '''النص''' أو """النص"""

تتيح لغة بايثون تعريف عدّة متغيرات في وقت واحد بإسناد قيمة لها على هذا النوع:
a = b = c = 5
من الواضح أنّ نوع المتغيّر في لغة بايثون ليس ثايتاً، بل سيتغيّر بحسب نوع القيمة المسندة إليه، لاحظ المثال التالي، وسنستخدم في الدالةالمخصصة للطباعة على الشاشة لتجربة ذلك عملياً، ولمعرفة نوع المتغير سنستخدم الدالة "()type":
var = 8
print('The Type of var is: ', type(var))
var = 'Eight'
print('The Type of var is: ', type(var))
**الدالّة"()print" يقوم بطباعة المحتوى الموجود بين القوسين وإظهاره في الشاشة، إذا كان المحتوى المراد طباعته متعدّد النوع أو القيمة يجب الفصل بين كلّ منها بعلامة "," وإذا أردنا طباعة عبارة نصيّة كما هي فإننا نضعها بين إحدى علامات التنصيص المذكورة سابقاً.

#python
#programming_languages
#بايثون
#لغات_برمجة

الدرس (3)
أساسيات كتابة الكود
تعتمد كتابة أكواد لغات البرمجة على أساسيات يؤدّي تجاهلها إلى وقوع أخطاء في الصياغة (Syntax Error) التي تظهر في زمان ترجمة الكود المصدري (Source Code) وتحويله إلى كود الآلة (Machine Code)، ولذا فإنّ إجادة لغة ما يعتمد في الخطوة الأولى على التعرف على هذه الأساسيات والعمل على مراعاتها بحذافيرها. نعم، هناك أيضاً توصيات اختيارية غير إلزامية يأتي الحثّ على مراعاتها في إطار تحسين مقروئية الكود المصدري، وعدم مراعاة التوصيات لا يؤدّي إلى وقوع أخطاء صياغية.
ههنا سنذكر الأكثر أهمية من بين الأساسيات:
1- لغة بايثون تطبّق حساسية الأحرف (Case Sensitivity)، وهذا يعني أنّ كلمة average تختلف عن كلمة Average
2- تعتمد لغة بايثون على مبدأ التثليم (Indents) "أي وضع مسافة بادئة في أول السطر" وتستعملها في تعيين البلوكات البرمجية، لذا انتبه لاستعمالك (Tab) في بداية السطور.
3- لا نحتاج إلى ":" في آخر الأمر، ولكن إذا أردنا كتابة أكثر من أمر في سطر واحد وجب إفهام مفسّر لغة بايثون (Python Interpreter) ذلك بالفصل بينها بعلامة ":" بهذا الشكل: x = 1; y = 2; z = 3
4- إذا أردت أن تقسّم أمراً برمجياً وكتابته في أكثر من سطر، يجب عليك إدراج علامة "\" بين أجزائه عند نهاية كل سطر. ولكن يمكن تجاوز هذه القاعدة إذا كان الأمر البرمجي مما يشتمل على الرموز المزدوجة مثل: [] أو () أو {}.
total = item_1 + \
item_2 + \
item_3
5- لكل لغة برمجة طريقتها في إعلان المتغيرات، وقد سهّلت بايثون الأمر بعدم اشتراطها تعيين نوع المتغير حين إعلانه، ولكن يظلّ من الواجب أن يتمّ التصريح بالإعلان عن المتغير ولو بإعطائه قيمة قبل استعماله في البرنامج. فمثلاً الأوامر التالية صحيحة:
x=5
y=7
z=x+y
إذ إعلنت عن x وy بإعطائها قيم صريحة، وأما z فقد أعلنت عنه بإعطائه قيمة مستنبطة وهي ناتج الجمع.
7- تستخدم كل لغة برمجة مجموعة من الكلمات، فلا يُسمح باستخدامها كأسماء للمتغيّرات، وهذه الكلمات في لغة بايثون هي:
and, assert, break, class, continue, def, del, elif, else, except, exec, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, print, raise, return, True, try, while, with, yield.

#بايثون #لغات_برمجة #python #programming_languages

الدرس (2)
مصطلحات برمجية
بما أنّ هدفنا هو تعليم بايثون بإسلوب يناسب غالبية القرّاء، كان من الواجب تناول بيان بعض المصطلحات الأساسية في البرمجة. تذكّر لا يوجد حوجة لحفظ هذه المصطلحات ومعانيها بدقّة بل يكفي فهمها. فهلموا لنبدأ:

• الكود المصدري (Source Code): هو الكود الذي يكتبه المبرمج بلغة برمجية مثل بايثون، وهو قابل للقراءة من قبل البشر. على سبيل المثال، سطر مثل print("Hello World")
• كود الآلي (Machine Code): هو الشكل الثنائي (0 و1) الذي يفهمه الحاسوب مباشرة لتنفيذ البرنامج. لا يمكن قراءته بسهولة، ويتم انتاجه من source code عبر مترجم أو مفسر.
• خطأ في الصيغة (Syntax Error): خطأ يحدث عندما لا يتبع الكود قواعد اللغة البرمجية، مثل نسيان علامة اقتباس أو عدم إغلاق قوس أو عدم مراعاة أساسيات كتابة الكود. والغالب في لغات البرمجة لا سيما بايثون أنّها ستعطيك رسالة خطأ واضحة لمساعدتك في التصحيح.
• المترجم (Compiler): برنامج يحول الكود المصدري إلى كود آلي دفعة واحدة قبل الشروع في تشغيله (وهو مستخدم في بعض اللغات مثل C++) ومن مميّزاته أنّه يزيد من سرعة البرنامج، لكنه أقلّ مرونة في عملية الإصلاح والتصحيح.
• المفسر (Interpreter): برنامج يقرأ الكود المصدري سطراً بسطر ويترجمه أثناء التشغيل. وتعتمد لغة بايثون على مفسر، مما يجعله سريع التجربة للمبتدئين، لكنه أبطأ قليلاً في المشاريع الكبيرة.
• المتغير (Variable): مكان لتخزين البيانات، مثل x = 5 و y = “Hello”
• نوع البيانات (Data Type): يقصد بها نوع القيمة التي سنضعها داخل المتغير، [مرفق صورة لتوضيحها بالأمثلة]

#لغات_برمجة
#بايثون
#python
#programming_languages