تخطَّ إلى المحتوى
ARAB CODEمجتمع المطورين العرب

أساسيات Python للمبتدئين: الأنواع والقوائم والقواميس والدوال بأسلوب «بايثوني»

درسنُشر ٢٤ أكتوبر ٢٠٢٦ · 0 رد · 1 مشاهدة#python#مبتدئ#أساسيات#قواميس
قبل ساعتين

مقدمة

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

أهداف التعلم

  • التعامل مع الأنواع الأساسية والتحويل بينها.
  • استخدام القوائم والقواميس والمجموعات للغرض المناسب.
  • كتابة حلقات واستيعاب قوائم (List comprehensions) واضحة.
  • كتابة دوال مع قيم افتراضية آمنة وتلميحات أنواع.

1. الأنواع الأساسية

name = "سارة"        # str
age = 21             # int
height = 1.65        # float
is_member = True     # bool
nothing = None       # NoneType

print(type(age))           # <class 'int'>
age_text = input("عمرك؟ ")  # input تعيد نصاً دائماً
age = int(age_text)         # تحويل صريح، قد يرمي ValueError

النصوص بالعربية تعمل مباشرة لأن Python 3 تستخدم Unicode. وf-string أوضح طريقة للدمج:

print(f"{name} عمرها {age} سنة")

2. القوائم: ترتيب وتكرار

langs = ["Python", "JavaScript", "Go"]
langs.append("Rust")
print(langs[0], langs[-1])   # أول وآخر عنصر
print(langs[1:3])            # شريحة: العنصران الثاني والثالث
print(len(langs))

3. القواميس: مفتاح ← قيمة

user = {"name": "أحمد", "points": 120}
user["points"] += 10
print(user.get("email", "لا يوجد بريد"))   # get تتجنب KeyError

for key, value in user.items():
    print(key, "=", value)

4. المجموعات: عناصر فريدة وبحث سريع

tags = {"python", "web", "python"}
print(tags)              # {'python', 'web'}
print("web" in tags)     # البحث في مجموعة سريع جداً مقارنة بالقائمة

استخدم set عندما تحتاج «هل يوجد؟» كثيراً، أو لإزالة التكرار.

5. الحلقات والاستيعاب

scores = [55, 92, 78, 40, 88]

passed = []
for s in scores:
    if s >= 50:
        passed.append(s)

# الشيء نفسه باستيعاب القوائم:
passed = [s for s in scores if s >= 50]

for i, s in enumerate(scores, start=1):
    print(f"الطالب {i}: {s}")

استخدم الاستيعاب للتحويلات البسيطة؛ وإن صار معقداً فالحلقة العادية أوضح.

6. الدوال

def average(values: list[float]) -> float | None:
    """يعيد المتوسط، أو None إن كانت القائمة فارغة."""
    if not values:
        return None
    return sum(values) / len(values)

print(average([90, 80, 70]))   # 80.0

تلميحات الأنواع (list[float]) لا تفرض شيئاً وقت التشغيل لكنها تساعد المحرر وأدوات مثل mypy على كشف الأخطاء.

فخ القيمة الافتراضية القابلة للتعديل:

def add_tag(tag, tags=[]):   # خطأ! القائمة نفسها تُشارك بين كل الاستدعاءات
    tags.append(tag)
    return tags

def add_tag(tag, tags=None):  # الصحيح
    tags = [] if tags is None else tags
    tags.append(tag)
    return tags

7. التعامل مع الأخطاء

try:
    age = int(input("عمرك؟ "))
except ValueError:
    print("الرجاء إدخال رقم صحيح.")

التقط النوع المحدد من الخطأ الذي تتوقعه، لا كل الأخطاء.

تمرين عملي

اكتب برنامجاً يقرأ أسماء وأعماراً بصيغة اسم:عمر مفصولة بفواصل، مثل: سارة:21, أحمد:19, ليلى:25

  1. خزنها في قاموس.
  2. اطبع متوسط الأعمار وأكبر شخص سناً.
  3. تعامل مع إدخال خاطئ (عمر غير رقمي) برسالة واضحة دون إيقاف البرنامج.

أخطاء شائعة

  • نسيان أن input() تعيد نصاً، فتصبح "5" + "5" تساوي "55".
  • القيمة الافتراضية القابلة للتعديل في الدوال.
  • except: بلا نوع، فيُخفي كل الأخطاء حتى البرمجية منها.
  • تعديل قائمة أثناء المرور عليها.

الخلاصة

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

مصادر مقترحة

  • «The Python Tutorial» في docs.python.org.
  • كتاب Automate the Boring Stuff with Python (متاح مجاناً).
  • PEP 8: دليل أسلوب كتابة Python.

الرد على الموضوع

سجّل الدخول للمشاركة في النقاش.

نقاشات مشابهة