تعلم بايثون من الصفر، دليل عملي للطلاب الجامعيين

فريق زدني فريق زدني 06 يناير 2026
6 دقائق للقراءة
تعلم بايثون من الصفر، دليل عملي للطلاب الجامعيين

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

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

📋 ملخص سريع

  • لماذا بايثون هي اللغة المثالية للبداية
  • تثبيت بايثون وكتابة أول برنامج
  • المتغيرات وأنواع البيانات الأساسية
  • العمليات الحسابية والمنطقية
  • الشروط (if / elif / else) واتخاذ القرارات
  • الحلقات (for و while) وتكرار العمليات
  • الدوال (Functions) وتنظيم الكود
  • التعامل مع الملفات: القراءة والكتابة
  • القوائم (Lists) والقواميس (Dictionaries)
  • نصائح عملية لاجتياز مادة البرمجة بنجاح

لماذا بايثون تحديدًا

بايثون ليست مجرد لغة برمجة عادية. هي واحدة من أكثر اللغات استخدامًا في العالم، وهناك أسباب واضحة لذلك:

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

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

تثبيت بايثون وتجهيز البيئة

قبل ما تبدأ تكتب كود، تحتاج تثبّت بايثون على جهازك وتختار محرر أكواد مناسب.

تثبيت بايثون

خطوات التثبيت

  1. ادخل على الموقع الرسمي python.org
  2. حمّل آخر إصدار مستقر (Python 3.x)
  3. مهم: أثناء التثبيت على Windows، فعّل خيار “Add Python to PATH
  4. بعد التثبيت، افتح Terminal أو Command Prompt واكتب:
python --version

إذا ظهر رقم الإصدار (مثل Python 3.12.0)، فالتثبيت تم بنجاح.

⚠️ خطأ شائع عند التثبيت

إذا كتبت python --version وظهرت رسالة خطأ، فالأغلب أنك نسيت تفعيل خيار “Add Python to PATH” أثناء التثبيت. الحل: أعد تشغيل التثبيت واختر “Modify”، ثم فعّل الخيار. أو على Mac/Linux، جرّب python3 --version بدلًا من python.

اختيار محرر الأكواد

أشهر الخيارات للمبتدئين:

  • VS Code: مجاني، خفيف، وفيه إضافة Python ممتازة. هو الأكثر شيوعًا
  • PyCharm Community: بيئة تطوير متكاملة مخصصة لبايثون، مجاني للطلاب
  • Thonny: محرر بسيط جدًا مصمم خصيصًا للمبتدئين
  • IDLE: يأتي مع بايثون تلقائيًا، كافي للتجارب السريعة

نصيحة: إذا الدكتور يستخدم محرر معيّن في المحاضرات، استخدم نفس المحرر. لا تعقّد حياتك في البداية.

أول برنامج: Hello World

# أول برنامج لك بلغة بايثون
print("مرحبًا بالعالم!")

نعم، هذا كل شيء. سطر واحد فقط. هذا أحد أسباب شهرة بايثون: البساطة. لاحظ أنك لا تحتاج تعريف كلاس أو دالة main مثل جافا. تكتب الكود مباشرة وتشغّله.

لتشغيل البرنامج، احفظه في ملف باسم hello.py ثم نفّذه من Terminal:

python hello.py

المتغيرات وأنواع البيانات

المتغير (Variable) هو اسم تعطيه لقيمة معينة عشان تقدر ترجع لها لاحقًا. في بايثون، لا تحتاج تحدد نوع المتغير مسبقًا. بايثون تعرف النوع تلقائيًا.

# عدد صحيح (int)
age = 21

# عدد عشري (float)
gpa = 3.75

# نص (string)
name = "سارة"

# قيمة منطقية (boolean)
is_passed = True

# طباعة القيم
print("الاسم:", name)
print("العمر:", age)
print("المعدل:", gpa)
print("ناجح:", is_passed)

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

النوعالوصفمثال
intعدد صحيحx = 10
floatعدد عشريpi = 3.14
strنصname = "أحمد"
boolصح أو خطأflag = True
listقائمة (مصفوفة)grades = [90, 85, 78]
dictقاموس (مفتاح: قيمة)student = {"name": "أحمد"}

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

أحيانًا تحتاج تحوّل من نوع لآخر:

# تحويل نص إلى عدد
user_input = "25"
number = int(user_input)
print(number + 5)  # النتيجة: 30

# تحويل عدد إلى نص
age = 21
message = "عمري " + str(age) + " سنة"
print(message)  # النتيجة: عمري 21 سنة

# تحويل عدد صحيح إلى عشري
x = float(10)
print(x)  # النتيجة: 10.0

💡 نصيحة في تسمية المتغيرات

في بايثون، الاصطلاح المتّبع لتسمية المتغيرات هو استخدام الأحرف الصغيرة مع الشرطة السفلية بين الكلمات (snake_case). مثلًا: student_name بدل studentName. هذا ليس إجباريًا لكنه المعيار المتفق عليه في مجتمع بايثون (PEP 8)، واتباعه يجعل كودك أكثر وضوحًا.

العمليات الحسابية والمنطقية

a = 15
b = 4

# العمليات الحسابية
print("الجمع:", a + b)        # 19
print("الطرح:", a - b)        # 11
print("الضرب:", a * b)        # 60
print("القسمة:", a / b)       # 3.75 (قسمة عشرية)
print("قسمة صحيحة:", a // b)  # 3 (بدون الكسر)
print("باقي القسمة:", a % b)  # 3
print("الأُس:", a ** 2)       # 225 (15 تربيع)
# عمليات المقارنة
x = 10
y = 20
print(x > y)    # False - هل x أكبر من y؟
print(x < y)    # True - هل x أصغر من y؟
print(x == y)   # False - هل x يساوي y؟
print(x != y)   # True - هل x لا يساوي y؟
print(x >= 10)  # True - هل x أكبر من أو يساوي 10؟

# العمليات المنطقية
print(x > 5 and y > 15)   # True - كلا الشرطين صحيح
print(x > 15 or y > 15)   # True - أحد الشرطين على الأقل صحيح
print(not (x > 5))        # False - عكس النتيجة

ℹ️ الفرق بين / و //

القسمة العادية / تُعطي دائمًا نتيجة عشرية (float)، حتى لو كانت النتيجة عددًا صحيحًا. مثال: 10 / 2 تُعطي 5.0 وليس 5. أما القسمة الصحيحة // فتُعطي الجزء الصحيح فقط بدون الكسر. هذا الفرق مهم جدًا في الواجبات والاختبارات.

الشروط (if / elif / else)

الشروط تسمح لبرنامجك باتخاذ قرارات مختلفة بناءً على حالات معينة.

score = 85

# تحديد التقدير بناءً على الدرجة
if score >= 90:
    print("ممتاز")
elif score >= 80:
    print("جيد جدًا")
elif score >= 70:
    print("جيد")
elif score >= 60:
    print("مقبول")
else:
    print("راسب")

لاحظ أن بايثون تستخدم elif بدلًا من else if الموجودة في لغات أخرى. ولاحظ أيضًا أن المسافة البادئة (indentation) هي التي تحدد أي كود ينتمي لأي شرط، وليس الأقواس المعقوفة.

مثال عملي: حاسبة بسيطة

# حاسبة بسيطة تطلب من المستخدم إدخال عملية
num1 = float(input("أدخل العدد الأول: "))
operator = input("أدخل العملية (+, -, *, /): ")
num2 = float(input("أدخل العدد الثاني: "))

بعد أخذ المدخلات، نستخدم سلسلة شروط لتحديد العملية وتنفيذها:

if operator == "+":
    result = num1 + num2
elif operator == "-":
    result = num1 - num2
elif operator == "*":
    result = num1 * num2
elif operator == "/":
    # التحقق من القسمة على صفر
    if num2 != 0:
        result = num1 / num2
    else:
        result = "خطأ: لا يمكن القسمة على صفر"
else:
    result = "عملية غير معروفة"

print("النتيجة:", result)

⚠️ انتبه: المسافة البادئة (Indentation)

في بايثون، المسافة البادئة ليست مجرد تنسيق. هي جزء أساسي من بنية اللغة. إذا نسيت المسافة أو استخدمت مسافات غير متساوية، ستحصل على خطأ IndentationError. القاعدة: استخدم 4 مسافات (spaces) لكل مستوى. لا تخلط بين المسافات و Tab، اختر واحدًا والتزم فيه.

الحلقات (Loops)

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

حلقة for

حلقة for تُستخدم عندما تعرف عدد التكرارات أو تريد المرور على عناصر قائمة.

# طباعة الأرقام من 1 إلى 5
for i in range(1, 6):
    print(i)

# المرور على عناصر قائمة
subjects = ["رياضيات", "برمجة", "قواعد بيانات", "شبكات"]
for subject in subjects:
    print("المادة:", subject)

# جدول ضرب العدد 7
print("جدول ضرب 7:")
for i in range(1, 11):
    print(f"7 × {i} = {7 * i}")

ℹ️ ما هي دالة range؟

range(start, stop, step) تولّد سلسلة أرقام. تبدأ من start (افتراضيًا 0) وتنتهي قبل stop (وليس عنده). مثلًا range(1, 6) تعطي: 1, 2, 3, 4, 5. وrange(0, 10, 2) تعطي: 0, 2, 4, 6, 8. هذه من أكثر الدوال استخدامًا في بايثون.

حلقة while

حلقة while تُستخدم عندما يعتمد التكرار على شرط معيّن.

# العد التنازلي من 5 إلى 1
count = 5
while count > 0:
    print(count)
    count -= 1  # إنقاص العداد بواحد
print("انطلق!")
# مثال عملي: طلب إدخال صحيح من المستخدم
password = ""
while password != "1234":
    password = input("أدخل كلمة المرور: ")
    if password != "1234":
        print("كلمة مرور خاطئة، حاول مرة أخرى")

print("تم تسجيل الدخول بنجاح!")

break و continue

# break: إيقاف الحلقة بالكامل
for i in range(1, 11):
    if i == 6:
        break  # أوقف الحلقة عند 6
    print(i)
# يطبع: 1, 2, 3, 4, 5

# continue: تخطّي التكرار الحالي والانتقال للتالي
for i in range(1, 11):
    if i % 2 == 0:
        continue  # تخطّ الأعداد الزوجية
    print(i)
# يطبع: 1, 3, 5, 7, 9

القوائم (Lists)

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

# إنشاء قائمة
grades = [85, 92, 78, 95, 88]

# الوصول لعنصر (الترقيم يبدأ من 0)
print(grades[0])   # 85 - العنصر الأول
print(grades[-1])  # 88 - العنصر الأخير

# إضافة عنصر
grades.append(91)
print(grades)  # [85, 92, 78, 95, 88, 91]

# حذف عنصر
grades.remove(78)
print(grades)  # [85, 92, 95, 88, 91]

بعد الإنشاء والتعديل، يمكنك حساب الإحصائيات وترتيب القائمة:

# طول القائمة
print("عدد الدرجات:", len(grades))

# حساب المتوسط
average = sum(grades) / len(grades)
print(f"المتوسط: {average:.2f}")

# ترتيب القائمة
grades.sort()
print("مرتبة تصاعديًا:", grades)
grades.sort(reverse=True)
print("مرتبة تنازليًا:", grades)

تقطيع القوائم (Slicing)

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(numbers[2:5])    # [2, 3, 4] - من الموقع 2 إلى قبل 5
print(numbers[:4])     # [0, 1, 2, 3] - من البداية إلى قبل 4
print(numbers[6:])     # [6, 7, 8, 9] - من الموقع 6 إلى النهاية
print(numbers[::2])    # [0, 2, 4, 6, 8] - كل عنصرين
print(numbers[::-1])   # [9, 8, 7, ..., 0] - القائمة معكوسة

القواميس (Dictionaries)

القاموس يخزّن البيانات على شكل أزواج: مفتاح (key) وقيمة (value). مفيد جدًا لتنظيم البيانات المرتبطة ببعض.

# إنشاء قاموس لبيانات طالب
student = {
    "name": "خالد",
    "id": 12345,
    "major": "علوم حاسب",
    "gpa": 3.8,
    "level": 5
}

# الوصول لقيمة عن طريق المفتاح
print("الاسم:", student["name"])
print("التخصص:", student["major"])

يمكنك أيضًا إضافة مفاتيح جديدة أو تعديل القيم الموجودة والمرور على كل عناصر القاموس:

# إضافة مفتاح جديد
student["email"] = "khalid@university.edu"

# تعديل قيمة
student["gpa"] = 3.9

# المرور على القاموس
for key, value in student.items():
    print(f"{key}: {value}")
# مثال عملي: سجل درجات عدة طلاب
students_grades = {
    "سارة": [90, 85, 92],
    "أحمد": [78, 82, 88],
    "نورة": [95, 91, 97]
}

# حساب المتوسط لكل طالب
for name, grades in students_grades.items():
    avg = sum(grades) / len(grades)
    print(f"{name}: المتوسط = {avg:.1f}")

تحتاج مساعدة في واجبات بايثون؟

نشرح لك مفاهيم بايثون ونراجع حلولك، تتعلم وتنجز واجبك بثقة

تواصل معنا

الدوال (Functions)

الدوال هي كتل من الكود تنفّذ مهمة محددة. بدل ما تكرر نفس الكود عدة مرات، تكتبه مرة واحدة في دالة وتستدعيها متى ما احتجت. في بايثون، نستخدم كلمة def لتعريف الدالة.

# دالة بسيطة بدون معاملات
def say_hello():
    print("أهلًا وسهلًا!")

# استدعاء الدالة
say_hello()
# دالة بمعاملات وقيمة مُرجعة
def calculate_average(grades):
    """تحسب المتوسط لقائمة من الدرجات"""
    total = sum(grades)
    count = len(grades)
    return total / count

# استدعاء الدالة
my_grades = [85, 92, 78, 95, 88]
avg = calculate_average(my_grades)
print(f"المتوسط: {avg:.2f}")

دوال بمعاملات افتراضية

# معامل افتراضي: إذا ما حددت قيمة، يستخدم القيمة الافتراضية
def greet(name, greeting="مرحبًا"):
    print(f"{greeting} يا {name}!")

greet("أحمد")              # مرحبًا يا أحمد!
greet("سارة", "أهلًا")     # أهلًا يا سارة!

مثال عملي: التحقق من قوة كلمة المرور

def check_password_strength(password):
    """تتحقق من قوة كلمة المرور وتُرجع التقييم"""
    score = 0

    # التحقق من الطول
    if len(password) >= 8:
        score += 1
    if len(password) >= 12:
        score += 1

    # التحقق من وجود أرقام
    has_digit = False
    for char in password:
        if char.isdigit():
            has_digit = True
            break
    if has_digit:
        score += 1

نكمل الدالة بالتحقق من الأحرف الكبيرة ثم تحديد التقييم النهائي:

    # التحقق من وجود أحرف كبيرة
    has_upper = False
    for char in password:
        if char.isupper():
            has_upper = True
            break
    if has_upper:
        score += 1

    # تحديد التقييم
    if score >= 4:
        return "قوية"
    elif score >= 2:
        return "متوسطة"
    else:
        return "ضعيفة"

# تجربة الدالة
test_password = "MyPass123"
result = check_password_strength(test_password)
print(f"قوة كلمة المرور: {result}")

💡 نصيحة: وثّق دوالك

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

تبي تتعلم بايثون بشكل أسرع؟

جلسات شرح خصوصية بالعربي تغطي أساسيات بايثون والمفاهيم المتقدمة مثل OOP والتعامل مع المكتبات

احجز جلسة شرح بايثون

التعامل مع الملفات

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

كتابة ملف نصي

# كتابة نص في ملف جديد
with open("students.txt", "w", encoding="utf-8") as file:
    file.write("قائمة الطلاب:\n")
    file.write("1. سارة - علوم حاسب\n")
    file.write("2. أحمد - هندسة برمجيات\n")
    file.write("3. نورة - تقنية معلومات\n")

print("تم إنشاء الملف بنجاح!")

قراءة ملف نصي

# قراءة الملف بالكامل
with open("students.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print(content)

# قراءة الملف سطرًا بسطر
with open("students.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())  # strip تزيل المسافات والأسطر الفارغة

إضافة محتوى لملف موجود

# الإضافة بدون حذف المحتوى القديم - لاحظ "a" بدل "w"
with open("students.txt", "a", encoding="utf-8") as file:
    file.write("4. خالد - أمن معلومات\n")

print("تمت الإضافة بنجاح!")

مثال عملي: حفظ درجات الطلاب في ملف

# حفظ درجات الطلاب في ملف CSV بسيط
students = [
    {"name": "سارة", "math": 90, "cs": 85, "english": 92},
    {"name": "أحمد", "math": 78, "cs": 95, "english": 82},
    {"name": "نورة", "math": 95, "cs": 91, "english": 88},
]

# كتابة الملف
with open("grades.csv", "w", encoding="utf-8") as file:
    # كتابة العناوين
    file.write("الاسم,رياضيات,برمجة,إنجليزي,المتوسط\n")

    # كتابة بيانات كل طالب
    for s in students:
        avg = (s["math"] + s["cs"] + s["english"]) / 3
        file.write(f"{s['name']},{s['math']},{s['cs']},{s['english']},{avg:.1f}\n")

print("تم حفظ الدرجات في grades.csv")

بعد حفظ الملف، نقرأه ونتحقق من محتواه:

# قراءة الملف والتحقق
with open("grades.csv", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())

🔴 لماذا نستخدم with

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

التعامل مع الأخطاء (Try / Except)

الأخطاء واردة في أي برنامج. بدل ما يتوقف برنامجك فجأة، يمكنك التعامل مع الأخطاء بشكل أنيق باستخدام try و except.

# بدون معالجة الأخطاء - البرنامج يتوقف
# number = int(input("أدخل رقم: "))  # إذا أدخل المستخدم نصًا، يتوقف

# مع معالجة الأخطاء - البرنامج يستمر
try:
    number = int(input("أدخل رقمًا: "))
    result = 100 / number
    print(f"النتيجة: {result}")
except ValueError:
    print("خطأ: الرجاء إدخال رقم صحيح")
except ZeroDivisionError:
    print("خطأ: لا يمكن القسمة على صفر")
except Exception as e:
    print(f"حدث خطأ غير متوقع: {e}")
# مثال عملي: قراءة ملف بأمان
try:
    with open("data.txt", "r", encoding="utf-8") as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("الملف غير موجود. تأكد من اسم الملف ومساره.")

مشروع تطبيقي: نظام إدارة مهام بسيط

بعد ما تعلمنا الأساسيات كلها، نطبّقها في مشروع صغير يجمعها معًا. هذا النوع من التمارين ممتاز للمراجعة.

def show_menu():
    """تعرض القائمة الرئيسية"""
    print("\n" + "=" * 30)
    print("  نظام إدارة المهام")
    print("=" * 30)
    print("1. عرض المهام")
    print("2. إضافة مهمة")
    print("3. حذف مهمة")
    print("4. حفظ المهام في ملف")
    print("5. تحميل المهام من ملف")
    print("0. خروج")
    print("-" * 30)

بعد القائمة، نعرّف دالتين: واحدة لعرض المهام وأخرى لإضافة مهمة جديدة.

def show_tasks(tasks):
    """تعرض جميع المهام"""
    if not tasks:
        print("لا توجد مهام حاليًا.")
        return
    for i, task in enumerate(tasks, 1):
        print(f"{i}. {task}")

def add_task(tasks):
    """تضيف مهمة جديدة"""
    task = input("أدخل المهمة الجديدة: ").strip()
    if task:
        tasks.append(task)
        print(f"تمت إضافة: {task}")
    else:
        print("لم تدخل أي نص.")

ثم نعرّف دالة الحذف التي تتحقق من صحة الرقم المُدخل قبل تنفيذ العملية.

def delete_task(tasks):
    """تحذف مهمة بناءً على رقمها"""
    show_tasks(tasks)
    if not tasks:
        return
    try:
        num = int(input("أدخل رقم المهمة للحذف: "))
        if 1 <= num <= len(tasks):
            removed = tasks.pop(num - 1)
            print(f"تم حذف: {removed}")
        else:
            print("رقم غير صالح.")
    except ValueError:
        print("الرجاء إدخال رقم صحيح.")

نضيف دالتي الحفظ والتحميل للتعامل مع الملفات، حتى لا تضيع المهام عند إغلاق البرنامج.

def save_tasks(tasks, filename="tasks.txt"):
    """تحفظ المهام في ملف"""
    with open(filename, "w", encoding="utf-8") as file:
        for task in tasks:
            file.write(task + "\n")
    print(f"تم حفظ {len(tasks)} مهمة في {filename}")

def load_tasks(filename="tasks.txt"):
    """تحمّل المهام من ملف"""
    try:
        with open(filename, "r", encoding="utf-8") as file:
            tasks = [line.strip() for line in file if line.strip()]
        print(f"تم تحميل {len(tasks)} مهمة من {filename}")
        return tasks
    except FileNotFoundError:
        print("ملف المهام غير موجود.")
        return []

أخيرًا، نكتب الحلقة الرئيسية التي تعرض القائمة وتنفّذ العملية التي يختارها المستخدم.

# البرنامج الرئيسي
tasks = []

while True:
    show_menu()
    choice = input("اختر عملية: ").strip()

    if choice == "1":
        show_tasks(tasks)
    elif choice == "2":
        add_task(tasks)
    elif choice == "3":
        delete_task(tasks)
    elif choice == "4":
        save_tasks(tasks)
    elif choice == "5":
        tasks = load_tasks()
    elif choice == "0":
        print("إلى اللقاء!")
        break
    else:
        print("اختيار غير صالح. حاول مرة أخرى.")

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

أخطاء شائعة عند المبتدئين

⚠️ انتبه لهذه الأخطاء

هذه أكثر الأخطاء التي نراها تتكرر عند طلاب بايثون. اقرأها جيدًا وارجع لها كلما واجهت مشكلة في كودك.

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

# خطأ - المسافة غير متناسقة
if True:
    print("سطر أول")
      print("سطر ثاني")  # IndentationError

# صح - نفس المسافة البادئة
if True:
    print("سطر أول")
    print("سطر ثاني")

2. نسيان النقطتين (:)

# خطأ
if score >= 90
    print("ممتاز")

# صح
if score >= 90:
    print("ممتاز")

3. الخلط بين = و ==

x = 10       # تعيين قيمة
x == 10      # مقارنة (هل x يساوي 10؟)

4. تعديل القائمة أثناء المرور عليها

# خطأ - حذف عناصر أثناء المرور على القائمة
numbers = [1, 2, 3, 4, 5]
for n in numbers:
    if n % 2 == 0:
        numbers.remove(n)  # سلوك غير متوقع!

# صح - إنشاء قائمة جديدة
numbers = [1, 2, 3, 4, 5]
odd_numbers = [n for n in numbers if n % 2 != 0]
print(odd_numbers)  # [1, 3, 5]

5. نسيان تحويل نوع الإدخال

# خطأ - input تُرجع دائمًا نصًا
age = input("أدخل عمرك: ")
print(age + 5)  # TypeError!

# صح - حوّل النص إلى عدد
age = int(input("أدخل عمرك: "))
print(age + 5)

نصائح لاجتياز مادة البرمجة

  • اكتب الكود بيدك: لا تكتفِ بقراءة الأمثلة. افتح المحرر واكتب كل مثال بنفسك. البرمجة مهارة عملية مثل السباحة، لا يمكنك تعلمها بالنظر فقط
  • جرّب وعدّل: بعد ما تفهم المثال، جرّب تعدّل عليه. غيّر الأرقام، أضف شروطًا، أنشئ دالة جديدة. التجريب هو أسرع طريقة للتعلم
  • اقرأ رسائل الخطأ: رسائل الخطأ في بايثون واضحة ومفيدة. تخبرك بنوع الخطأ ورقم السطر والسبب. لا تتجاهلها
  • استخدم print للتنقيح: إذا الكود ما يعطي النتيجة المتوقعة، أضف print في أماكن مختلفة عشان تتبّع قيم المتغيرات
  • مارس يوميًا: ساعة يوميًا أفضل بكثير من 7 ساعات في يوم واحد. البرمجة تحتاج استمرارية
  • حل تمارين إضافية: مواقع مثل HackerRank و LeetCode توفر تمارين متدرجة الصعوبة مجانًا

الخطوات القادمة

بعد ما تتقن الأساسيات التي غطيناها في هذا المقال، يمكنك الانتقال لمواضيع أكثر تقدمًا:

  • البرمجة كائنية التوجه (OOP): الكلاسات والكائنات والوراثة، وهي أساسية لأي مبرمج
  • المكتبات الشهيرة: مثل NumPy للحسابات الرياضية، Pandas لتحليل البيانات، Matplotlib للرسوم البيانية
  • تطوير الويب: باستخدام Flask أو Django
  • الذكاء الاصطناعي: باستخدام TensorFlow أو PyTorch
  • الأتمتة: كتابة سكربتات تؤتمت المهام الروتينية

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

الخلاصة

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

المفتاح هو الممارسة المستمرة. كل سطر كود تكتبه يقرّبك من الفهم الحقيقي. لا تخف من الأخطاء. هي جزء طبيعي من عملية التعلم، وكل خطأ تحله يعلّمك شيئًا جديدًا.

ابدأ الآن. افتح المحرر واكتب أول سطر كود. رحلتك في عالم البرمجة تبدأ من هنا.

تحتاج مساعدة في مشروع أو واجب بايثون؟

فريق زدني يساعدك تفهم بايثون وتحل واجباتك بنفسك، نشرح لك ونراجع كودك خطوة بخطوة

تواصل معنا
هل تحتاج خصوصي؟