إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    بايثون الكلاس tuple

    مفهوم الكلاس tuple

    الـ tuple عبارة عن مصفوفة لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد و لا يمكن تبديل قيمها.


    طريقة تعريف tuple

    لتعريف tuple نستخدم الرمز ( ).
    بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين. و يمكنك تحديد نوع و عدد العناصر التي تريد وضعها فيه فقط.


    في المثال التالي قمنا بتعريف tuple فارغ, أي لا يحتوي أي عنصر.

    المثال الأول

    Test.py
    A = ()        # A فارغ إسمه tuple هنا قمنا بتعريف
    print(A)      # ( أي كما قمنا بتعريفه ) كما هو A هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    ()


    في المثال التالي قمنا بتعريف tuple يتألف من عنصر واحد فقط.

    المثال الثاني

    Test.py
    A = (10,)      # يتألف من عنصر واحد قيمته 10 tuple هنا قمنا بتعريف
    print(A)       # ( أي كما قمنا بتعريفه ) كما هو A هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    (10)

    إنتبه

    وضع فاصلة بعد القيمة 10 هنا يعتبر أمر إجباري حتى يفهم مترجم بايثون أنك تنوي تعريف tuple و ليس متغير عادي قيمته 10.
    كما أنه لا حاجة لوضع فاصلة إضافية كما فعلنا هنا في حال كان الـ tuple يحتوي على أكثر من قيمة.



    في المثال التالي قمنا بتعريف tuple وضعنا فيه أعداد صحيحة.

    المثال الثالث

    Test.py
    numbers = (10, 20, 30, 40, 50)       # يحتوي على أعداد صحيحة فقط numbers إسمه tuple هنا قمنا بتعريف
    print(numbers)                       # ( أي كما قمنا بتعريفه ) كما هو numbers هنا قمنا بعرض محتوى الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    (10, 20, 30, 40, 50)


    في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص.

    المثال الرابع

    Test.py
    names = ('Rami', 'Sara', 'Nada')      # يحتوي على نصوص فقط names إسمه tuple هنا قمنا بتعريف
    print(names)                          # ( أي كما قمنا بتعريفه ) كما هو names هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    ('Rami', 'Sara', 'Nada')


    في المثال التالي قمنا بتعريف tuple وضعنا فيه أعداد صحيحة و نصوص.

    المثال الخامس

    Test.py
    data = (1, 'Mhamad', 'Harmush', 1500)      # يحتوي على أعداد صحيحة و نصوص data إسمه tuple هنا قمنا بتعريف
    print(data)                                # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    (1, 'Mhamad', 'Harmush', 1500)

    الوصول لعناصر الـ tuple

    للوصول لأي عنصر في الـ tuple بهدف الحصول على قيمته طبعاً فإننا نستخدم رقم الـ Index الخاص بالعنصر.

    في بايثون, يمكنك الوصول للعناصر الموجودة في الـ tuple بطريقتين:

    • في حال أردت الوصول لعناصر الـ tuple من اليسار إلى اليمين, أي من أول عنصر تم إدخاله, فإن الـ Index لأول عنصر سيكون 0.
    • في حال أردت الوصول لعناصر الـ tuple من اليمين إلى اليسار, أي من آخر عنصر تم إدخاله, فإن الـ Index لآخر عنصر سيكون 1-.


    في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص. بعدها قمنا بعرض قيمة أول و ثاني عنصر فيه.

    المثال الأول

    Test.py
    # وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه tuple هنا قمنا بتعريف
    names = ('Rami', 'Sara', 'Nada', 'Mhamad', 'Salem')
    
    print(names[0])     # names هنا قمنا بعرض قيمة أول عنصر موجود في الكائن
    print(names[1])     # names هنا قمنا بعرض قيمة ثاني عنصر موجود في الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Rami
    Sara


    في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص. بعدها قمنا بعرض قيمة آخر و قبل آخر عنصر فيه.

    المثال الثاني

    Test.py
    # وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه tuple هنا قمنا بتعريف
    names = ('Rami', 'Sara', 'Nada', 'Mhamad', 'Salem')
    
    print(names[-1])     # names هنا قمنا بعرض قيمة آخر عنصر موجود في الكائن
    print(names[-2])     # names هنا قمنا بعرض قيمة ما قبل آخر عنصر موجود في الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Salem
    Mhamad


    في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص. بعدها قمنا بعرض جميع القيم الموضوعة فيه باستخدام الحلقة for.

    المثال الثالث

    Test.py
    # وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه tuple هنا قمنا بتعريف
    names = ('Rami', 'Sara', 'Nada', 'Mhamad', 'Salem')
    
    # و من ثم سيتم طباعتها x في المتغير names في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن
    for x in names:
        print(x)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Rami
    Sara
    Nada
    Mhamad
    Salem


    في المثال التالي قمنا بتعريف tuple وضعنا فيه أعداد صحيحة. بعدها قمنا بحساب ناتج جمع جميع القيم الموضوعة فيه باستخدام الحلقة for.

    المثال الرابع

    Test.py
    # وضعنا فيه أعداد صحيحة numbers إسمه tuple هنا قمنا بتعريف
    numbers = (10, 20, 30, 40, 50)
    
    # numbers هنا قمنا بتعريف متغير سنستخدمه لحفظ ناتج جمع القيم الموجودة في الكائن
    total = 0
    
    # total و من ثم سيتم إضافتها على قيمة المتغير x في المتغير numbers في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن
    for x in numbers:
        total += x
    
    # numbers و التي ستساوي ناتج جمع القيم الموجودة في الكائن total هنا قمنا بطباعة قيمة المتغير
    print('Total sum is:', total)
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Total sum is: 150

    تجزيء الـ tuple

    المقصود من تجزيء الـ tuple هو إرجاع جزء منه سواء لعرضه أو تخزينه.


    في المثال التالي قمنا بتعريف tuple وضعنا فيه أرقام. بعدها قمنا بعرض جزء منه.
    فعلياً قمنا بعرض العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك Index رقم 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك Index رقم 3.
    أي قمنا بعرض قيم العناصر arr[0] - arr[1] - arr[2].

    المثال الأول

    Test.py
    arr = (10, 20, 30, 40, 50)    # وضعنا فيه أعداد صحيحة arr إسمه tuple هنا قمنا بتعريف
    
    print(arr[0: 3])              # arr هنا قمنا بعرض أول ثلاث عناصر موجودة في الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    (10, 20, 30)


    في المثال التالي قمنا بتعريف tuple وضعنا فيه أرقام. بعدها قمنا بنسخ جزء منه و وضعه في tuple ثانية.
    فعلياً قمنا بنسخ العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك Index رقم 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك Index رقم 3.
    أي قمنا بنسخ قيم العناصر arr[0] - arr[1] - arr[2].

    المثال الثاني

    Test.py
    arr = (10, 20, 30, 40, 50)    # وضعنا فيه أعداد صحيحة arr إسمه tuple هنا قمنا بتعريف
    
    arr2 = arr[0: 3]              # arr2 و وضعها في كائن جديد إسمه arr هنا قمنا بنسخ أول ثلاث عناصر موجودة في الكائن
    
    print(arr2)                   # arr2 هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    (10, 20, 30)

    إستخدام العوامل + و * و in مع الـ tuple


    العامل دواعي الإستخدام
    + العامل + يستخدم لدمج tuple أو أكثر في tuple واحد.
    * العامل * لوضع لتكرار قيمة معينة عدة مرات في الـ tuple.
    in العامل in يستخدم للبحث في الـ tuple عن قيمة معينة أو للمرور على قيمه عند إستخدامه في الحلقة for كما فعلنا في بعض الأمثلة السابقة.

    في المثال التالي قمنا بتخزين إثنين tuple في tuple واحد بواسطة العامل +.

    المثال الأول

    Test.py
    arr1 = (1, 2, 3)      # وضعنا فيه أعداد صحيحة arr1 إسمه tuple هنا قمنا بتعريف
    arr2 = (4, 5, 6)      # وضعنا فيه أعداد صحيحة arr2 إسمه tuple هنا قمنا بتعريف
    
    arr3 = arr1 + arr2    # arr2 و arr1 وضعنا فيه قيم الكائنين arr3 إسمه tuple هنا قمنا بتعريف
    
    print(arr3)           # arr3 هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    (1, 2, 3, 4, 5, 6)


    في المثال التالي قمنا بتعريف tuple وضعنا فيه 3 عناصر تملك 'python' كقيمة لهم بواسطة العامل *.

    المثال الثاني

    Test.py
    arr = ('python',) * 3     # 'python' وضعنا فيه 3 عناصر قيمتهم النص arr إسمه tuple هنا قمنا بتعريف
    
    print(arr)                # arr هنا قمنا بعرض ما يحتويه الكائن
    		

    سنحصل على النتيجة التالية عند التشغيل.

    ('python', 'python', 'python')

    إنتبه

    عند تكرار قيم في الـ tuple بواسطة العامل *, فإنك مجبر على وضع فاصلة بعد القيمة التي وضعتها في القوس.
    في حال لم تضع فاصلة بعد القيمة, لن يعرف مترجم بايثون أنك كنت تنوي تعريف tuple.



    في المثال التالي إستخدمنا العامل in للبحث في الـ tuple عن قيمة معينة.

    المثال الثالث

    Test.py
    arr = ('Mhamad', 'Rony', 'Rima', 'Sara')     # وضعنا فيه مجموعة قيم نصية arr إسمه tuple هنا قمنا بتعريف
    
    x = 'Rima'                                   # وضعنا فيه نص x هنا قمنا بتعريف متغير إسمه
    
    print('Is Rima in the tuple?')
    print(x in arr)                              # True إذا تم إيجادها سيتم عرض .arr في الكائن x هنا سيتم البحث عن قيمة
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Is Rima in the tuple?
    True

    دوال الكلاس tuple

    إسم الدالة مع تعريفها
    count(x) تستخدم للبحث في الـtuple الذي قام باستدعائها عن قيمة معينة.
    ترجع عدد صحيح يمثل كم مرة تم إيجاد عنصر عنده نفس القيمة التي مررناها لها مكان البارميتر x.
    شاهد المثال »
    index(x[, start[, end]]) تبحث في الـtuple الذي قام باستدعائها عن Index أول عنصر يملك القيمة التي نمرره لها مكان الباراميتر x و ترجعه.
    في حال لم يتم العثور على القيمة المراد معرفة مكانها ترمي الإستثناء ValueError.
    شاهد المثال »

    دوال جاهزة في بايثون للتعامل مع الـ tuple

    إسم الدالة مع تعريفها
    len(tuple) ترجع عدد صحيح يمثل عدد عناصر الـtuple الذي نمرره لها عند إستدعائها.
    شاهد المثال »
    min(tuple) ترجع أصغر قيمة موجودة في الـtuple الذي نمرره لها عند إستدعائها.
    شاهد المثال »
    max(tuple) ترجع أكبر قيمة في الـtuple الذي نمرره لها عند إستدعائها.
    شاهد المثال »
    tuple(sequence) ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعائها ككائن من الكلاس الـtuple.
    شاهد المثال »

    فائدة النوع tuple

    بما أنك وجدت أن النوع tuple هو نوع محدود نوعاً ما مقارنةً بالنوع list الذي درسته في الدرس السابق فلعلك تتساءل الآن حول فائدته.

    هذه الأسباب هي ما قد يدفعك النوع tuple:

    • الوصول لعناصر موضوعة في tuple أسرع من الوصول لعناصر موضوعة في list.
    • قيمه تعتبر آمنة حيث يمكن قراءتها فقط.
    • في حال كنت تستخدم النوع dictionary و الذي يتم وضع البيانات فيه كجدول يتألف من مفاتيح ( Keys ) و قيم ( Values ). فإنه يمكنك تمرير tuple تحتوي على أرقام أو نصوص كمفاتيح له.
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب