دالّة المساعدة

7.4 دالّة المساعدة

أهداف التعلم

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

  • استخدام دالّة المساعدة لاستكشاف محتويات وَحدة.
  • تحديد أجزاء الشِفرة المُضمَّنة في التوثيق.

الألوان في مواقع الويب

يقدّم هذا القسم وَحدةً نموذجيةً للعمل مع ألوان HTML. تُستخدم لغة ترميز النص التشعبي (HTML) لتصميم مواقع الويب والتطبيقات الرسومية. تقرأ متصفحات الويب مثل Chrome و Safari لغة HTML وتعرض المحتويات المقابلة. مثال: شِفرة HTML <p style="color: Red">Look out!</p> تمثل فقرة بنص أحمر.

تُعرّف HTML عدد 140 اسم لون قياسي. يمكن تحديد ألوان إضافية باستخدام تنسيق سداسي عشري: #RRGGBB. تمثل الأرقام RR و GG و BB مكونات اللون الأحمر والأخضر والأزرق. مثال: #DC143C هو 220 أحمر + 20 أخضر + 60 أزرق، وهو اللون Crimson.

تتراوح قيم الأحمر والأخضر والأزرق من 0 إلى 255 (أو من 00 إلى FF بالنظام السداسي عشري). تحدد القيم الأقل ألوانًا أغمق، وتحدد القيم الأعلى ألوانًا أفتح. مثال: #008000 هو اللون Green، و #00FF00 هو اللون Lime.

نقطة تحقق

رموز ألوان HTML

مفاهيم تطبيقية

رموز ألوان HTML

1.
ما لون #000080؟
  1. أحمر ماروني
  2. أزرق كحلي
  3. أخضر زيتي
2.
ما قيمة 255 بالنظام السداسي عشري؟
  1. 00
  2. 80
  3. FF
3.
أي لون أفتح؟
  1. #FFA500 (برتقالي)
  2. #008000 (أخضر)

وَحدة الألوان النموذجية

ستكون وَحدة للعمل مع رموز ألوان HTML مفيدة لمصممي الجرافيك ومطوري الويب. شِفرة بايثون التالية موجودة في ملف باسم colors.py.

  • السطر 1 هو سلسلة التوثيق للوَحدة.
  • الأسطر 3-16 تُسند مُتغيِّرات للألوان المستخدمة بشكل متكرر.
  • الأسطر 18-24 تُعرّف دالّة لاستخدامها داخل الوَحدة.
  • الأسطر 26-45 تُعرّف دوال لاستخدامها في وَحدات أخرى.

ملاحظة: تستخدم الدالتان tohex() و torgb() ميزات بايثون (تنسيق السلاسل النصية وتقطيع السلسلة النصية) الموصوفة لاحقًا في الكتاب. في الوقت الحالي، التوثيق والتعليقات أهم من تفاصيل التنفيذ.

    """Functions for working with color names and hex/rgb values."""

    # الألوان الأساسية
    RED = "#FF0000"
    YELLOW = "#FFFF00"
    BLUE = "#0000FF"

    # الألوان الثانوية
    ORANGE = "#FFA500"
    GREEN = "#008000"
    VIOLET = "#EE82EE"

    # الألوان المحايدة
    BLACK = "#000000"
    GRAY = "#808080"
    WHITE = "#FFFFFF"

    def _tohex(value):
      """Converts an integer to an 8-bit (2-digit) hexadecimal string."""
      if value <= 0:
        return "00"
      if value >= 255:
        return "FF"
      return format(value, "02X")

    def tohex(r, g, b):
      """Formats red, green, and blue integers as a color in hexadecimal."""
      return "#" + _tohex(r) + _tohex(g) + _tohex(b)

    def torgb(color):
      """Converts a color in hexadecimal to red, green, and blue integers."""
      r = int(color[1:3], 16) # أول رقمين
      g = int(color[3:5], 16) # الرقمان الأوسطان
      b = int(color[5:7], 16) # آخر رقمين
      return r, g, b

    def lighten(color):
      """Increases the red, green, and blue values of a color by 32 each."""
      r, g, b = torgb(color)
      return tohex(r+32, g+32, b+32)

    def darken(color):
      """Decreases the red, green, and blue values of a color by 32 each."""
      r, g, b = torgb(color)
      return tohex(r-32, g-32, b-32)

مفاهيم تطبيقية

وَحدة الألوان

4.
ما مكونات اللون الأصفر؟
  1. أحمر=0، أخضر=255، أزرق=255
  2. أحمر=255، أخضر=255، أزرق=0
  3. أحمر=255، أخضر=0، أزرق=255
5.
ما الشِفرة التي تُرجع درجة أغمق من اللون الأزرق؟
  1. darken(BLUE)
  2. colors.darken(BLUE)
  3. colors.darken(colors.BLUE)
6.
ما الرمز الذي يشير إلى أن الدالّة غير مخصصة للاستدعاء من قِبَل وَحدات أخرى؟
  1. شرطة سفلية (_)
  2. علامة الرقم (#)
  3. نقطتان رأسيتان (:)

توثيق الوَحدة

توفر دالّة مُضمَّنة help() ملخصًا لدوال وبيانات الوَحدة. استدعاء help(module_name) في صَدَفة هو طريقة مريحة للتعرف على الوَحدة.

مثال 7.2

مخرجات help(colors) في صَدَفة

يُنشأ التوثيق أدناه تلقائيًا من سلاسل التوثيق في colors.py.

help(colors)

    Help on module colors:

    NAME
      colors - Functions for working with color names and hex/rgb values.

    FUNCTIONS
      darken(color)
        Decreases the red, green, and blue values of a color by 32 each.

      lighten(color)
        Increases the red, green, and blue values of a color by 32 each.

      tohex(r, g, b)
        Formats red, green, and blue integers as a color in hexadecimal.

      torgb(color)
        Converts a color in hexadecimal to red, green, and blue integers.

    DATA
      BLACK = '#000000'
      BLUE = '#0000FF'
      GRAY = '#808080'
      GREEN = '#008000'
      ORANGE = '#FFA500'
      RED = '#FF0000'
      VIOLET = '#EE82EE'
      WHITE = '#FFFFFF'
      YELLOW = '#FFFF00'

    FILE
      /home/student/Desktop/colors.py
    >>> help(colors)

    Help on module colors:

    NAME
      colors - Functions for working with color names and hex/rgb values.

    FUNCTIONS
      darken(color)
        Decreases the red, green, and blue values of a color by 32 each.

      lighten(color)
        Increases the red, green, and blue values of a color by 32 each.

      tohex(r, g, b)
        Formats red, green, and blue integers as a color in hexadecimal.

      torgb(color)
        Converts a color in hexadecimal to red, green, and blue integers.

    DATA
      BLACK = '#000000'
      BLUE = '#0000FF'
      GRAY = '#808080'
      GREEN = '#008000'
      ORANGE = '#FFA500'
      RED = '#FF0000'
      VIOLET = '#EE82EE'
      WHITE = '#FFFFFF'
      YELLOW = '#FFFF00'

    FILE
      /home/student/Desktop/colors.py

مفاهيم تطبيقية

دالّة المساعدة

7.
يتضمن التوثيق تعليقات من الشِفرة المصدرية.
  1. صحيح
  2. خطأ
8.
بأي ترتيب تُدرج الدوال في التوثيق؟
  1. ترتيب أبجدي
  2. ترتيب التعريف
  3. ترتيب عشوائي
9.
أي دالّة مُعرّفة في colors.py لم تُضمّن في التوثيق؟
  1. _tohex
  2. tohex
  3. torgb

جرّب بنفسك

مساعدة حول الوَحدات

تُعد وَحدتا random و statistics مفيدتين لإجراء التجارب العلمية. يمكنك التعرف على هاتين الوَحدتين من خلال تصفح توثيقهما.

افتح صَدَفة بايثون على حاسوبك، أو استخدم تلك الموجودة على python.org/shell. اكتب الأسطر التالية، واحدًا تلو الآخر، في الصَدَفة.

  • import random
  • help(random)
  • import statistics
  • help(statistics)

تعرض العديد من بيئات الصَدَفة، بما في ذلك تلك الموجودة على python.org، مخرجات help() صفحة واحدة في كل مرة. استخدم مفاتيح التنقل على لوحة المفاتيح (الأسهم لأعلى/لأسفل، صفحة لأعلى/لأسفل، بداية/نهاية) لقراءة التوثيق. عند الانتهاء من القراءة، اضغط على مفتاح Q ("إنهاء") للعودة إلى صَدَفة بايثون.

جرّب بنفسك

مساعدة حول الدوال

يمكن استدعاء دالّة المساعدة على دوال محددة في وَحدة. افتح صَدَفة بايثون على حاسوبك، أو استخدم تلك الموجودة على python.org/shell. اكتب الأسطر التالية، واحدًا تلو الآخر، في الصَدَفة.

  • import random
  • help(random.randint)
  • help(random.choice)
  • import statistics
  • help(statistics.median)
  • help(statistics.mode)

تذكر استخدام مفاتيح التنقل على لوحة المفاتيح، واضغط على مفتاح Q ("إنهاء") للعودة إلى صَدَفة بايثون.