كتاب البرمجة Python للصف العاشر PDF
Document Details
![AstoundingNarcissus2177](https://quizgecko.com/images/avatars/avatar-16.webp)
Uploaded by AstoundingNarcissus2177
2024
د.أشرف رضوان رضوان سليمان,أ.رأفت صابر عبدالاله أحمد,أ.منيرة خالد محمد أبو شيبة,د.يوسف منصور يوسف الخليفي,أ.إبرا
Tags
Summary
يُقدم هذا الكتاب، الطبعة الأولى، دليلاً شاملاً حول البرمجة بلغة Python، للصف العاشر في الكويت. يغطي الكتاب مفاهيم أساسية، مثل تصحيح الأخطاء، والذكاء الاصطناعي، مع التركيز على التطبيقات العملية. يقدم أيضًا مشاريع عملية لتطبيق ما تعلمه الطالب في بيئة حقيقية.
Full Transcript
AI الطبعة األولى اﻷول الجزء الثاني الصف -اﻟﺠﺰء العاشر- اﻟﺼﻒ اﻟﻌﺎﺷﺮ إشراف أ.منى سالم عوض سالم (رئيس اللجنة)...
AI الطبعة األولى اﻷول الجزء الثاني الصف -اﻟﺠﺰء العاشر- اﻟﺼﻒ اﻟﻌﺎﺷﺮ إشراف أ.منى سالم عوض سالم (رئيس اللجنة) تأليف د.أشـ ــرف رضــوان رضــوان ســليمان أ.رأفـ ـ ـ ــت صـ ـ ـ ــابر عبــدالاله أحم ـ ـ ـ ـ ـ ـ ـ ـ ـ ــد أ.ــمنيرة خـ ـ ــالد محــمد أــبو شيب ـ ـ ـ ـ ـ ـ ـ ــة د.يوســف منصــور يوس ـ ـ ــف الخليفــي أ.إبراه ــيم عبدهللا إبراهـ ـ ــيم املي ــاس تصميم أ.سنية مح ـ ـ ـ ـ ـ ــمد على املـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــؤمن أ.إيمان عبدالعزيز أحمد الفار سي الطبعة األولى ١٤٤٦هـ 2025/2024م CODE حقوق التأليف والطبع والنشر محفوظة لوزارة التربية -قطاع البحوث التربوية واملناهج إدارة تطوير املناهج الطبعة األولى2025-2024 :م ً القناة التربوية شاركنا بتقييم مناهجنا الكتاب كامًال أودع بمكتبة الوزارة تحت رقم ( )1بتاريخ 2025/1/6م H.H. Sheikh Meshal AL-Ahmad Al-Jaber Al-Sabah Amir Of The State Of Kuwait POSTER 48x65 with cadre cm.indd 1 12/28/23 9:44 AM H. H. Sheikh Sabah Khaled Al-Hamad Al-Sabah Crown Prince Of The State Of Kuwait crown prince.indd 1 6/6/24 6:48 PM Amir Of The State Of Kuwait يمثــل رمــز االســتجابة الســريعة QRرابــط لملفــات أوراق العمــل ،ومصــادر التعلــم. المحـــتوى رقم الصفحة العنوان 11 املقدمة الوحدة األولى برمجة بايثون Python 13 تصحيح األخطاء واالستثناءات Debugging and Exceptions 27 املكتبات Libraries 41 مدخل إلى واجهة المستخدم الرسومية GUI 67 الدوال Functions 97 توظيف الدوال في الواجهة الرسومية 111 القواميس Dictionaries 131 تطبيقات إثرائية -تعزيز مهارات متقدمة الوحدة الثانية الذكاء االصطناعي Artificial Intelligence 151 مدخل إلى الذكاء االصطناعي Artificial Intelligence 153 الذكاء االصطناعي التوليدي Generative A.I 158 أدوات الذكاء االصطناعي التوليدي واستخدامها 165 املبادئ األخالقية في التعامل الذكاء االصطناعي التوليدي الوحدة الثالثة المنتجات الرقمية 171 مشروع تقنية التعرف على الوجوه A.I. Face Recognition Project 177 توظيف الواجهة الرسومية مع مشروع التعرف على الوجوه 185 املراجع المقدمة في ظــل الثــورة الرقميــة التي أحدثــت تغــييرات جوهريــة في مختلــف املجــاالت ،أصبــح إتقــان البرمجــة ضــرورة ملحــة لتحقيــق الطموحــات ،وقــد بــرزت لغــة Pythonبسبــب ســهولة تعلمهــا وشــيوعها كأداة مثاليــة للدخــول إلى عالــم الــذكاء االصطنــاعي. يهــدف هــذا الكتــاب مــن تقنيــة املعلومــات في لغــة البرمجــة Pythonإلى تزويــدك بمعرفــة شــاملة حــول توظيــف Pythonفي تطويــر حلــول ّ فّعالــة في مجــال الــذكاء االصطنــاعي ،بـ ً ـدًءا مــن بناًء على األساسيات التي تم تناولها املفاهيم األساسية وصواًلا إلى التطبيقات املتقدمة ،وذلك ً في الجــزء األول ،نستكشــف في هــذا الكتــاب اإلمكانيــات الواســعة للغــة Pythonمــن خالل الوحــدة األولى التي تســتعرض مهــارات اكتشــاف األخطــاء ،واملكتبــات ،الواجهــة الرســومية، الــدوال ،القواميــس ،وتوظيفهــا في الواجهــة الرســومية. تقــدم الوحــدة الثانيــة مقدمــة شــاملة في الــذكاء االصطنــاعي ،بمــا في ذلــك الــذكاء االصطنــاعي التوليــدي ،وأدواتــه املختلفــة ،وتطبيقاتــه العمليــة ،إلى جانــب اســتعراض املبــادئ األخالقيــة التي تحكــم اســتخدامه.كمــا يحتــوي الكتــاب على مشــروعات عمليــة وأمثلــة تطبيقيــة مصممــة لتوضيــح املفاهيــم املعقــدة بأســلوب بســيط ومنهجي ،ممــا يتيــح للــطالب بنــاء تطبيقــات تعتمــد على الــذكاء االصطنــاعي وتطويــر برامــج بواجهــات رســومية ( )GUIلتحقيــق مشــاريعهم الخاصــة. تتضمــن الوحــدة الثالثــة مشــروعات عمليــة تعتمــد على اســتخدام تقنيــات الــذكاء االصطنــاعي ومكتبــات لغــة Pythonلتطبيــق مــا تعلمــه الــطالب في بيئــة حقيقيــة.ومنهــا مشــروع تطويــر نظــام ذكــي مثــل تطبيــق التعــرف على الوجــوه ،حيــث يتــم اســتخدام مكتبــات متقدمــة لتحليــل الصــور واســتخراج البيانــات منهــا.كمــا يمكــن التوســع في املشــروع لتضــمين تطبيقــات أخرى مثل تصنيف الصور ،معالجة النصوص ،أو بناء أنظمة توصية.يهدف هذا املشروع إلى تعزيز فهم املتعلمين لتوظيف أدوات الذكاء االصطناعي في حل املشكالت الواقعية ،مما يفتح ً أمامهــم آفاًقــا واســعة لإلبــداع والتعلــم التطبيقــي ،ويعــزز مــن قدرتهــم على تطويــر حلــول مبتكــرة باســتخدام البرمجــة والتقنيــات الحديثــة. برمجة Python الوحدة األولى تصحيح األخطاء واالستثناءات Debugging and Exceptions مدخل إلى تصحيح األخطاء واالستثناءات 1 تصحيح األخطاء Debugging 2 األخطاء اللغوية Syntax Errors 3 األخطاء الداللية Symanitc Errors 4 األخطاء المنطقية Logic Errors 5 االستثناءات Exceptions 6 تصحيح األخطاء واالستثناءات Debugging and Exceptions نتاجــــات التعــلم التعرف على مفهوم األخطاء ( )Errorsواالستثناءات ( ،)Exceptionsوالتمييز بين أنواع األخطاء الشائعة مثل األخطاء النحوية (اللغوية) ( ، )Syntax Errorsاألخطاء الداللية ،Semantic Errorاألخطاء املنطقية .Logic Errors إدراك أهميــة التعامــل مــع االســتثناءات لضمــان اســتمرارعمــل البرامــج وتجنــب توقفهــا املفاجــئ عنــد مواجهــة أخطــاء غيــرمتوقعــة. اســتخدام التعليمــة البرمجيــة Tryملحاولــة تنفيــذ األوامــر األساســية ،وتحديــد الســيناريوهات التــي قــد تــؤدي إلــى أخطــاء. تطبيــق التعليمــة البرمجيــة Exceptملعالجــة االســتثناءات وتنفيــذ تعليمــات بديلــة عنــد حــدوث خطــأ لضمــان اســتمرارالبرنامــج بسالســة. تحليل رسائل الخطأ واستنتاج أسبابها لتحسين مهارات تصحيح األخطاء (.)Debugging تطبيــق آليــات إدارة األخطــاء فــي مشــروعات عمليــة لضمــان اســتقرار البرامــج وســهولة صيانتهــا. تصحيح األخطاء واالستثناءات Debugging and Exceptions مدخل إلى تصحيح األخطاء واالستثناءات تعــتبر األخطــاء واالســتثناءات مفهــوم أســا سي في البرمجــة ،وتهــدف إلى التعامــل مــع األخطــاء التي قــد تحــدث أثنــاء تشغيل البرنامج بطريقة منظمة تمنع توقفه ،وتتيح آلية معالجتها للمبرمجين التحقق من األخطاء والتعامل معها بمرونة.كما تســاعد في تحسين اســتقرار البرنامج وتقديم تجربة مســتخدم أفضل من خالل عرض رســائل تنبيهية أو اتخاذ إجراءات بديلة دون تعطيل البرنامج بالكامل. تصحيح األخطاء Debugging قد يقع املبرمج في بعض األخطاء عند تعامله مع النصوص البرمجية في لغة ،Pythonويمكن استخدام بعض التقنيات التي يتم تنفيذها الكتشاف تلك األخطاء وتصحيحها. وهناك ثالثة أنواع من األخطاء وهي: أنواع األخطاء في Python Errors Syntax Semantic Logic األخطاء اللغوية Syntax Errors أخطاء تحدث عندما ال تتبع التعليمات البرمجية املكتوبة لقواعد اللغة البرمجية املستخدمة ،وهذه األخطاء تمنــع البرنامــج مــن العمــل ،وال يســتطيع املفســر Interprerterفهــم تلــك التعليمــات بسبــب وجــود خطــأ في تركيــب الجمــلة البرمجــية منــها : استخدام مسافة إضافية أو ناقصة بين الكلمات أو الرموز. استخدام األقواس أو عالمات االقتباس بشكل غير صحيح. 17 ..تصحيح األخطاء واالستثناءات الثانية تصحيح األخطاء الوحدة األولى .. الوحدة مثال :1األخطاء اللغوية Syntax Errors ظهور خط أحمر متعرج سهم يشير ملوضع الخطأ عدد األخطاء التي اكتشفها Interpreter تعني وجود خطأ تصحيح الخطأ تعني عدم وجود خطأ تقنية املعلومات ..الصف العاشر 18 تصحيح األخطاء واالستثناءات Debugging and Exceptions األخطاء الداللية Semantic Errors األخطاء املكتشفة أثناء التنفيذ ولكن يجب أن تنشأ ظروف خاصة لتظهر تلك األخطاء.على سبيل املثال : الوصول إلى عنصر غير موجود في قائمة محددة. األخطاء الحسابية مثل تقسيم عدد صحيح على صفر. ً وحسابًيا ال يمكن القسمة على (صفر). هذا خطأ داللي ألن املستخدم أدخل (صفر) كقيمة للمتغير الثاني، األخطاء المنطقية Logic Errors األخطــاء التي ال يتعــرف عليهــا ،Python Interprerterولكنهــا قــد تــؤدي إلى نتائــج غير متوقعــة أو غير صحيحــة (بــمعنى أن الــنص البرمجي يعــمل ــبدون مــشكالت لــكن نتيــجة ــهذا الــنص البرمجي غير صحيــحة).على سبــيل املــثال : استخدام شرط غير صحيح. استخدام العمليات الحسابية بشكل غير صحيح. 19 ..تصحيح األخطاء واالستثناءات الثانية تصحيح األخطاء الوحدة األولى .. الوحدة مثال 3 هذا خطأ منطقي ألن التعليمات البرمجية تحسب محيط املستطيل وليس املساحة. تصحيح األخطاء :عملية تحديد وإصالح األخطاء في التعليمات البرمجية. مثال 4 املتغيرن صي logic error عدم وجود : syntax error عدم وجود مسافة بادئة syntax error الحــظ :في الجملــة الشــرطية يتــم مقارنــة قيمــة xوهي قيمــة نصيــة بالرقــم ( 0مقارنــة غير صحيحــة)، وبالتــالي يتــم تنفيــذ التعليمــة البرمجيــة التابعــة لألمــر .else تقنية املعلومات ..الصف العاشر 20 تصحيح األخطاء واالستثناءات Debugging and Exceptions االستثناءات Exceptions يمكــن اســتخدام التعليمــات البرمجيــة ( )try/exceptلتحديــد الجــزء مــن التعليمــات البرمجيــة املتوقــع حــدوث خطــأ به ،ال ستمرار تنف يذ البرنا مج دون تو قف. يوجــد العديــد مــن أنــواع االســتثناءات ومنهــا ( ،)TypeError - IndexError - NameError- ValueErrorوسيتــم التــطرق إلى أــحد ــهذه األــنواع : ً أن تطلب من املستخدم قيمة رقمية و بدًال من ذلك يقوم املستخدم بإدخال قيمة نصية ValueError وهو ما ينتج عنه خطأ في البرنامج يسمى .ValueError تنقسم التعليمات البرمجية try/exceptإلى : التعليمة البرمجية :tryتشمل التعليمات البرمجية التي قد تحدث فيها أخطاء أثناء التنفيذ. التعليمة البرمجية :exceptتشمل التعليمات البرمجية التي يتم تنفيذها إذا حدث خطأ في كتلة التعليمات البرمجية .try الصيغة العامة لالستثناءات try/except Syntax try: # try block # Put here code to test except: # except block # Will executed if existed error in try block 21 ..تصحيح األخطاء واالستثناءات الثانية تصحيح األخطاء الوحدة األولى .. الوحدة مثال 5 .1يســتمر البرنامج في اســتقبال بيانات عددية صحيحة integerفقط ،ويتوقف البرنامج عند اســتقبال غير ذلك من البيانات ،ويظهر رســالة الخطأ التاليةValueError: invalid literal for int( ) : العدد املدخل عشري .2الستمرار البرنامج دون توقف يتم استخدام .try / except ُ يستمر البرنامج في استقبال قيم متغيرة وعند إدخال بيانات غير عددية صحيحةُ ،تظهر رسالة للمستخدم ،You did not enter a valid numberويستمر في استقبال البيانات ،كما في املثال التالي : مثال 6 برنامج يستقبل أعداد صحيحة ،و ُُيظهر رسالة يحدد ما إذا كان العدد املدخل ً زوجًيا أم ً فردًيا ،وعند إدخال بيانات من نوع آخر ،يتم استثناء الخطأ وطباعة رسالة ،You did not enter a valid numberويستمر البرنامج دون توقف. القيمة املدخلة نصية مالحظة - :تستخدم التعليمة continueلتجاوز بقية النص البرمجي في الحلقة الحالية واالنتقال للتكرار التالي. -تستخدم التعليمة breakللخروج من الحلقة التكرارية ً فوًرا. تقنية املعلومات ..الصف العاشر 22 تصحيح األخطاء واالستثناءات Debugging and Exceptions مثال 7 البرنامج يهدف إلى حساب إجمالي الراتب للموظف بعد إضافة العالوة. إذا كانت املدخالت صحيحة ،سيتم حساب إجمالي الراتب (الراتب األسا سي +العالوة) وطباعته. إذا كانت املدخالت غير صحيحة سيتم طباعة رسالة توضح نوع الخطأ. إدخال فهرس عنصر قائمة (اسم املوظف) غير صحيح تظهر رسالة خطأ من نوع .IndexError ً -إدخال فهرس عنصر قائمة = ( ٦مثًال) إدخال قيمة العالوة غير صحيحة (نصية) تظهر رسالة خطأ من نوع .ValueError ً -إدخال قيمة العالوة = ( Aliمثًال) ملعلوماتك (تصحيح األخطاء )Debugging عملية تتبع سير التعليمات البرمجية خطوة بخطوة لتحديد األخطاء البرمجية وإصالحيها باستخدام: -Breakpoint -أداة Debugمن . Main Menu -أدوات Debuggingمن .Debug Menu -Breakpoint -إضافة نقاط التوقف Breakpointsفي أسطر التعليمات البرمجية. 23 ..تصحيح األخطاء واالستثناءات الثانية تصحيح األخطاء الوحدة األولى .. الوحدة أوراق العمل ورقة عمل :1 اسم البرنامج :برنامج إدخال األوزان النسبية. مشكلة البرنامج :يصحح األخطاء املختلفة في التعليمات البرمجية. استدع امللف player_weight.py ادرس التعليمات البرمجية الخاصة بإدخال وزن الالعب التالية : -وزن الريشة (أقل من 63كيلو جرام) -.وزن املتوسط( 90-63كيلو جرام) -.وزن ثقيل (يزيد عن 90كيلو جرام) املطلوب : .1استكشف األخطاء املوجودة وصححها ثم استكمل الجدول التالي : مالحظات التصحيح نوع الخطأ الخطأ رقم السطر 2 2 8 10 13 21 .2استخدم االستثناءت (try/except) Exceptionsلتطوير البرنامج. تقنية املعلومات ..الصف العاشر 24 تصحيح األخطاء واالستثناءات Debugging and Exceptions ورقة عمل :2 اسم البرنامج :حساب املتوسط الحسابي مشكلة البرنامج :اكتشاف األخطاء وتجاوزها (استكمال البرنامج العمل بصورة صحيحة). املطلوب: افتح امللف .average_Exceptions.py ً عدل ما يلزم لتصحيح األخطاء املحتمل استقبالها من املستخدم مستخدًما االستثناءات try/excep 25 ..تصحيح األخطاء واالستثناءات الثانية تصحيح األخطاء الوحدة األولى .. الوحدة ورقة عمل :3 اسم البرنامج :مؤشـ ـ ــر كتلة الجسم .)Body mass index( BMI مشكلة البرنامج :اكتشاف األخطاء وتجاوزها (استكمال البرنامج العمل بصورة صحيحة). املطلوب: .1افتح املل ــف ،BMI.pyالذي يحسب مؤش ـ ـ ــر كتلة الجسم ،BMIبن ـ ـ ـ ـ ـ ـ ًـاًء على ط ـ ـ ـ ــول الشخص (باألمتار) ووزنه (بالكيلوجراــمات) ً .2تحقق من صحة اإلدخال ،مستخدًما التعليمة البرمجية (.)try / except try: الخطأ من نوع ValueErrorعند إدخال بيانات نصية. except ValueError: الخطأ من نوع ZeroDivisionErrorعند القسمة على صفر (الطول) except ZeroDivisionError: .3شغل البرنامج وتأكد من خلوه من األخطاء. تقنية املعلومات ..الصف العاشر 26 الوحــــدة الثــــانية الوحدة األولى برمجة Python المكتبات Libraries المكتبات Libraries مدخل إلى المكتبات 1 أشهر المكتبات وأقسامها 2 التعامل مع المكتبات الخارجية 3 توثيق المكتبات 44 المكتبات Libraries نتاجــــات التعــلم الجزء األول (أساسيات المكتبات) فهــم املكتبــات كأدوات إلعــادة اســتخدام املقاطــع البرمجيــة وتنظيمهــا ،ممــا يســهل بنــاء مشــروعات برمجيــة بكفــاءة. تعل ــم كيفي ــة اس ــتيراد املكتب ــات ف ــي لغ ــة ،Pythonواس ــتخدام ال ــدوال لتوفي ــرالوق ــت والجه ــد. التعامل مع املكتبات القياسية املدمجة في لغة .Python التعامل مع املكتبات الخارجية تثبيتها ،تحديثها ،وإدارتها من خالل بيئة التطوير. تطويــرمكتبــات بســيطة تحــوي دوال وفئــات قابلــة إلعــادة االســتخدام فــي مشــروعات مختلفــة ،ممــا يعــزز مبــدأ تقســيم البرامــج إلــى وحــدات صغي ــرة(.)modularity المكتبات Libraries مدخل إلى المكتبات تتــميز لغــة البرمجــة Pythonبتوفــر العديــد مــن املكتبــات في مختلــف املجــاالت؛ منهــا تحليــل البيانــات Data ، Analysisالــذكاء االصطنــاعي ،Artificial Intelligenceتعلــم اآللــة ،Machine Learningالتعلــم العميــق Deep ،Learningاألمــن الســيبراني ،Cybersecurityوتطويــر األلعــاب .Gaming Development المكتبات في لغة )Python Libraries( Python ُ املكتبة عبارة عن ملف يتضمن مجموعة من التعليمات البرمجية والوظائف اُملعرفة ،كالدوال ُ ،functionsوالفئات classesواملتغيرات ،variablesوالتي ُتسهم في حل مشكالت معينة ،أو تنفيذ عمليات محددة ،والتي يمكن استدعاؤها واستخدامها في البرامج لتسهيل تنفيذ العديد من املهام. أهمية استخدام المكتبات ً إعــادة اســتخدام املقاطــع البرمجيــة :املكتبــات توفــر مقاطــع برمجيــة جاهــزة لالســتخدام بــدًال مــن إــعادة كتابتــها ــبشكل متــكرر. ً تــوفير الوقــت والجهــد :مــن خالل اســتدعاء الــدوال املوجــودة في املكتبــات بــدًال مــن بنــاء دوال مــن الصــفر. ســهولة الصيانــة والتحديــث :املكتبــات تتيــح اســتخدام حلــول مجربــة ،ومتقدمــة مــع القــدرة على تحديثــها بــسهولة عندــما يــتم إــصدار تحديــثات جدــيدة. 31 الوحدة األولى ..املكتبات Libraries أشهر مكتبات لغة Python مكتبة :NumPyتتعامل مع الدوال الخاصة بالعمليات الحسابية ،الجبر الخطي ،واملصفوفات. مكتبة :Pandasاستكشاف وتحليل ومعالجة البيانات. مكتبة :Matplotlibتمثيل البيانات ،Data Visualizationوتصميم األشكال البيانية .Graph مكتبة :OpenCVتعمل في مجال الرؤية الحاسوبية ،Computer Visionوتحليل الصور ومقاطع الفيديو. مكتبة :TensorFlowمكتبة رائدة في مجاالت تعلم اآللة والتعلم العميق. مكتبة :PyTorchمكتبة شهيرة في مجال التعلم العميق ومعالجة اللغات الطبيعية والرؤية الحاسوبية. أقسام المكتبات يمكن تقسيم املكتبات إلى: املكتبات الخاصة املكتبات الخارجية املكتبات القياسية Customize Libraries 3 Third-Party Libraries 2 Standard Libraries 1 مكتبات يتم تطويره ـ ـ ـ ـ ــا من قبل مكتبــات يتــم تطويرهــا مــن قبــل مكتبــات مدمجــة مــع لغــة مجتمــع مطــوري لغــة ،Pythonاملبرمــج (إنشــاء ملــف )Python ،Pythonتغطــي العديــد مــن الشــركات واملؤسســات ،الجامعــات تتضمــن مجموعــة مــن الــدوال الوظائــف األساســية مثــل التعامــل واملراكــز البحثيــة ،املنظمــات غير ،functionsالفئــات ،classes مــع امللفــات ،العمليــات الحســابية، الربحيــة ،واملبرمــجين ،ويجــب املتــغيرات ،variablesلتلبيــة معالجــة النصــوص ،والتعامــل مــع تثبيتهــا للتعامــل معهــا على سبيــل احتياــجات مــحددة باملــشروع. البيانات؛ ومنها مكتبة mathإلجراء املثــال مكتبــة NumPyللعمليــات العمليــات الحســابية ،ومكتبــة الحســابية وتحليــل البيانــات، datetimeللتعامــل مــع الوقــت مكتبــة Pandasلتحليــل ومعالجــة والتاريــخ ،ومكتبــة randomلتوليــد البيانــات ،ومكتبــة TensorFlow القــيم العــشوائية. لتعــلم اآلــلة واــلذكاء االصطــناعي. تقنية املعلومات ..الصف العاشر 32 المكتبات Libraries التعامل مع المكتبات الخارجية Third-Party Libraries تثبيت المكتبات الخارجية Install Third-Party Libraries مثا ل :تثبيت مكتبة numpy 1 الطريقة األولى :استخدام األمر pip installيليه اسم املكتبة library name -من خالل أداة Terminalفي .PyCharm -نكتب األمر pip install numpy : ملعلوماتك . الطريقة الثانية :استخدام األداة Python Package -البحث عن املكتبة املناسبة وتثبيتها من خالل األمر installواختيار اإلصدار املناسب للمكتبة. 33 الوحدة األولى ..املكتبات Libraries ملعلوماتك الطريقة الثالثة :استخدام نافذة األمرFile => Settings => Project: Project name => Python Interpreter ،ثم البحث عن املكتبة املطلوبة. يتم الضغط على أداة install كذلك يمكن استعراض املكتبات الخارجية التي تم تثبيتها على املشروع من نفس النافذة. إلغاء تثبيت المكتبات الخارجية Uninstall Third-Party Libraries يوجد العديد من الطرق إللغاء تثبيت املكتبات الخارجية منها: الطريقة األولى :استخدام األمر ،pip uninstall library nameمن خالل أداة Terminalفي .PyCharm مثال :إلغاء تثبيت مكتبة ()numpy pip uninstall numpy ملعلوماتك الطريقة الثانية :استخدام نافذة األمرFile => Settings => Project: Project name => Python Interpreter . يتم تحديد املكتبة ثم الضغط على أداة uninstall تقنية املعلومات ..الصف العاشر 34 المكتبات Libraries استيراد المكتبات Import Libraries .1استيراد المكتبة كاملة import library name مثال :1استيراد مكتبة datetimeالمخصصة للتعامل مع التاريخ والوقت (إظهار تاريخ اليوم). 1 : output مثال :2استيراد مكتبة .random 1 يتم استيراد الدالة random.randintاملخصصة لتوليد أحد األعداد الصحيحة بشكل عشوائي من املجال التالي (.)1,2,3,4,5,6,7,8,9,10 عند استدعاء املكتبة كاملة باستخدام األمر ،importيجب كتابة اسم املكتبة randomفي كل ً مرة نستخدم فيها أحد دوالها متبوعًا بـنقطة ثم اسم الدالة املطلوبة مثل (.)randam.randint مالحظة 35 الوحدة األولى ..املكتبات Libraries .2اســتيراد عنصــر محــدد (التعليمــات البرمجيــة الــدوال ،functionsوالفئــات ،classesو المتغيــرات ،)variablesمــن مكتبــة محــددة From library name import part of library مثال :1استيراد الدالة asctimeفقط ،من مكتبة ،timeوالتعامل معها. 1 مثال :2استيراد أكثر من دالة من نفس المكتبة random 1 مثال :3استيراد أكثر من دالة من مكتبات متعددة 1 استيراد الدالة relativedeltaمن مكتبة :dateutil.relativedeltaحساب الفرق بين تاريخين بدقة. استيراد الدالة datetime.todayمن مكتبة :datetimeالحصول على التاريخ الحالي. تأكد من تثبيت مكتبة ( dateutilفي )Terminalباستخدام األمر.pip install python-dateutil .3استيراد المكتبة والتعامل معها باسم مختصر Import library name as shortcut name مثال :التعبير عن اسم المكتبة datetimeباالسم المختصر dt 1 تقنية املعلومات ..الصف العاشر 36 المكتبات Libraries .4استيراد جميع الكائنات (مثل الدوال ،المتغيرات ،الفئات) من مكتبة معينة مثال :1استدعاء جميع محتويات المكتبة datetimeوالتعامل معها. 1 مثال :2استدعاء جميع محتويات المكتبة randomوالتعامل معها. يمثل رمز * Asteriskإمكانية التعامل مع جميع محتويات املكتبة ،دون الحاجة إلى كتابة اسم املكتبة قبلها. ملعلوماتك توثيق المكتبات دليل تفصيلي يساعد املطورين على كيفية استخدام محتوى املكتبة بشكل صحيح. وللحصول على ملف توثيقي للمكتبة يمكن استخدام: استخدام أداة Terminalفي PyCharmكتابة األمرpydoc library name مثالpydoc random : استخدام مفتاح Ctrlوالضغط على الزر األيسرللفأرة على اسم املكتبة بمنطقة كتابة األوامر. ُ شاشة ُتظهر محتوى ملف توثيق املكتبة Random 37 الوحدة األولى ..املكتبات Libraries أوراق العمل ورقة عمل (:)1 اسم البرنامج :توليد كلمة مرور قوية Strong Password مشكلة البرنامج :توليد كلمة مرور مركبة من األرقام،األحرف ،والرموز . املطلوب :استدعاء امللف gen_password_library.pyمن مجلد أوراق العمل. إنشاء كلمة مرور قوية تشمل عدد محدد من الحروف والرموز واألرقام. : output تطوير البرنامج: طور البرنامج ليتم توليد كلمة مرور مركبة ال يقل عدد عناصرها عن ،8وال يزيد عن .12 تقنية املعلومات ..الصف العاشر 38 المكتبات Libraries ورقة عمل (:)2 اسم البرنامج :بنك األسئلة مشكلة البرنامج :توظيف املكتبات إلظهار أسئلة عشوائية ،واستقبال األجوبة ،وحساب النتيجة النهائية. املطلوب :استدعاء امللف questions_bank.pyمن مجلد أوراق العمل. -ادرس التعليمات البرمجية ثم استكمل البيانات املطلوبة: اسم املكتبات املستخدمة: ............................................................................... ............................................................................... اسم الدوال املستخدمة ووظيفة كل منها: ............................................................................... ............................................................................... 39 الوحدة األولى ..املكتبات Libraries ورقة عمل (:)3 اسم البرنامج :احسب عمرك ُ مشكلة البرنامج :توظيف املكتبات للحصول على الُعمر الخاص بتاريخ امليالد (يوم /شهر /سنة). املطلوب: استدع امللف .calc_age.py استكمل التعليمات البرمجية الالزمة. اختبرالبرنامج وتأكد من خلوه من األخطاء. أضف التعليمة البرمجية التالية ،ثم شغل البرنامج واكتب وظيفتها. ..................................................................................................................................................................... استبدل %Aبالحروف التالية وسجل وظيفة كل منها. ................................................................%C ................................................................ %B تأكد من تثبيت مكتبة dateutilباستخدام األمر.pip install python-dateutil تقنية املعلومات ..الصف العاشر 40 الوحــــدة الثــــانية برمجة Python الوحدة األولى المكتبات Libraries الوحــــدة األولــــى واجهة المستخدم الرسومية GUI الرسومية GUI المستخدم Graphic واجهة User Interface مدخل إلى واجهة المستخدم الرسومية GUI 1 توظيف المكتبات في الواجهة الرسومية 22 3 واجهة المستخدم الرسومية GUI نتاجــــات التعــلم اإلملــام بمكونــات واجهــة املســتخدم الرســومية مــن خــال عــرض أبــرز البرامــج القائمــة عليهــا لبيــان أهميتهــا. تعلم أبرز املكتبات في لغة الـ Pythonاملتخصصة في إنشــاء واجهة رســومية واســتخدام دوالهــا الجاهــزة. تعلم خطوات التصميم الرسومي من التخطيط للبرنامج إلى كتابة وتصديرالبرنامج. تعلم كيفية إضافة مكتبة ( ) ICT_KWإلى املشروع واستدعائها. التعامــل مــع بعــض عناصــرالواجهــة الرســومية Widgetsللمكتبــة ( ) ICT_KWوضبــط خصائصهــا. تصميم املشروعات التي تبرز أهمية توظيف واجهة املستخدم الرسومية. تحفي ــز املتعلــم للبحــث عــن مكتبــات قياســية تســاعده علــى تصميــم واجهــات رســومية لتطويــر مشــروعه الخــاص. واجهة المستخدم الرسومية GUI مدخل إلى واجهة المستخدم الرسومية GUI ً ً إن معظم البرامج تعتمد على واجهات مرئية مشوقة تظهر نصوصًا ملونة وصورًا وأزرار وقوائم مختلفة تتطلب بناًء على اختياراته فيصبح التعامل أسهل تفاعل املستخدم معها فتنقله من شاشة إلى أخرى وتغير مجرى األمور ً ً وأكثر تشــويقًا مــن واجهــة ســطر األوامــر التي تعاملنــا معهــا في الفصــل الــدرا سي األول.كمــا أن التطــور التكنولــوجي الســريع شجــع املبرمجــون على تطويــر الواجهــات املرئيــة كونهــا الخطــوة األولى لتصميــم مشــاريع تعتمــد على الــذكاء االصطناعي. يســتعرض هــذا الجــزء مــن الكتــاب كيفيــة تصميــم واجهــة مرئيــة تــسمى واجهــة املســتخدم الرســومية GUI ) ،(Graphical User Interfaceوبمــا أن تصميــم الواجهــة الرســومية يعتمــد على املهــارات األساســية لبرمجــة لغــة ً Pythonبعضهــا ســبق وتعلمناهــا في الكتــاب األول والبــاقي سنتعلمــه تدريجيــًا بمــا يتناســب مــع مكونــات الواجهــة الرــسومية لنتمــكن ــمن تصمــيم وإنــشاء وتصدــير برناــمج متكاــمل وــمن املــهارات التي سنتعلمــها: املكتبات والوحدات (.)Libraries- Modules الدوال (.)Functions البيانات غير األولية (.)Non-Premitive Data سنبدأ في تعلم مفهوم واجهة املستخدم الرسومية ثم ننطلق لتعلم كل مهارة مما سبق. 45 الوحدة األولى ..واجهة املستخدم الرسومية مكونات واجهة المستخدم الرسومية GUI واجهــة املســتخدم الرســومية ( ،GUI (Graphical User Interfaceهي واجهــة تفاعليــة تســمح للمســتخدم التفاعــل مــع التطبيقــات مــن خالل عناصــر رســومية مرئيــة ،مثــل النوافــذ ،األزرار ،والقوائــم، التي تعــمل على تبــسيط تجرــبة املــستخدم مــما يجــعل التطبيــقات أكثر ــسهولة ومالءــمة لالــستخدام. مثال :برنامج بسيط يطلب من املستخدم إدخال الرقم املدني ليستخرج منه تاريخ امليالد ،عند تشغيل البرنامج تظهر النافذة التالية: النافذة الرئيسية عنصر إلدخال الق ـ ـ ــيم عنصر لتنفيذ أمر عند الضغط عليه عنص ــر لع ـ ــرض الق ـ ـ ــيم ينتظر البرنامج من املستخدم إدخال رقمه املدني في العنصر الفارغ: تقنية املعلومات ..الصف العاشر 46 واجهة المستخدم الرسومية GUI ُ عند الضغط على العنصر (اعرض تاريخ ميالدك) يتم معالجة القيمة اُملدخلة وإظهار الناتج كما في الشكل التالي: ومن هنا نرى أن واجهات املستخدم الرسومية تجعل البرامج أكثر سهولة في االستخدام ،وتساعد املستخدمين على أداء املهام بسرعة وفعالية ،ومن أبرز أمثلة برامج واجهات املستخدم الرسومية: أنظمة التشغيل )macOS, Windows, Linux Distributions( :Operating Systems 1 2متصفحات اإلنترنت )Google Chrome, Mozilla Firefox, Microsoft Edge( : Web Browsers 3مشغالت الوسائط )VLC Media Player,iTunes( :Media Players 4تطبيقات الهواتف الذكية )Whatsapp,Facebook, Instagram( :Mobile Applications 5حزمة تطبيقات )Word, Power point, Excel, Teams( :Office Suites 6األلعاب .Games 47 الوحدة األولى ..واجهة املستخدم الرسومية أهمية الواجهات الرسومية ()GUI ســهولة االســتخدام :تجعــل الواجهــة الرســومية التفاعــل مــع األجهــزة والبرامــج أكثر ســهولة ً وسالســة ،حيــث يمكــن للمســتخدمين الضغــط على العناصــر املرئيــة بــدًال مــن كتابــة األوامــر 1 النصــية. تعزيز اإلنتاجية :توفر الواجهات الرسومية عناصر مرئية تساعد املستخدمين على أداء املهام بسرعة وكفاءة ،مما يعزز اإلنتاجية. 2 سرعة التعلم :بفضل التصميم البسيط للواجهات الرسومية ،يمكن للمستخدمين الجدد تعلم كيفية استخدام البرامج واألجهزة بسرعة دون الحاجة إلى تدريب مكثف. 3 ً جاذبيــة التصميــم :تســاهم الواجهــات الرســومية في جعــل التطبيقــات أكثر جاذبيــة وجمــاًال، مــما يزــيد ــمن تفاــعل املــستخدمين ورضاــهم. 4 التفاعــل الفــوري :توفــر الواجهــات الرســومية اســتجابات فوريــة مــن خالل التغــييرات املرئيــة مثل تغيير األلوان أو األشكال عند التفاعل مع العناصر ،مما يساعد املستخدمين على فهم 5 ــتأثير أفعالــهم ــبشكل أفــضل. دعــم املهــام املتعــددة :تســهل الواجهــات الرســومية إدارة املهــام املتعــددة مــن خالل النوافــذ املتــعددة واألدوات التي تــساعد في تنظــيم العــمل والتنــقل بين املــهام بــسهولة. 6 إمكانية الوصول :يمكن تصميم واجهات املستخدم الرسومية لتكون في متناول األشخاص ً ذوي االحتياجات الخاصة ،مما يجعل التكنولوجيا أكثر شموًال. 7 تقنية املعلومات ..الصف العاشر 48 واجهة المستخدم الرسومية GUI أشهر المكتبات المستخدمة للتعامل مع (:)GUI .Tkinter .PyQt .PySide .Flask/Django .Kivy .wxPython ً مستعيًنا بشبكة االنترنت ،ابحث عن اثنين من املكتبات السابقة ،واستكمل الجدول التالي: تدريب: االستخدام اسم املكتبة م .............................................................................................................. .............................................................................................................. ................... 1 .............................................................................................................. .............................................................................................................. .............................................................................................................. ................... 2 .............................................................................................................. 49 الوحدة األولى ..واجهة املستخدم الرسومية توظيف المكتبات في الواجهة الرسومية إنشاء الواجهة الرسومية: .1تصميم الواجهة الرسومية (:)Front-end عمليــة بنــاء عناصــر مرئيــة كاألزرار والعناويــن والصــور والقوائــم وغيرهــا؛ التي يتفاعــل معهــا املســتخدم وتتمثــل الخــطوات في النــقاط التالــية: صُور الشكل النهائي برسم واجهة البرنامج الرسومية التي سوف يتعامل معها املستخدمون. ََت ُ تحديــد العناصــر widgetsاملناــسبة لبــناء املخــطط الرــسومي ،ورــسم مخــطط هــيكلي ــيوضح العناــصر وخصائصها. كتابة التعليمات البرمجية املناسبة لتصميم الواجهة الرسومية من خالل النافذة الرئيسية ،window ً ومجموعة من العناصر ،widgetsوضبط خصائصها propertiesمستعينًا بأحد املكتبات املتخصصة في التصميم الرسومي. .2تصميم االستجابة لألحداث (:)Back-end هي االستجــابة Responseلطلبات Requestsالواجهة الرسومية التي تتمثل بتنفــيذ مهام معــين. الشكل التالي يوضح العالقة بين الواجهة الرسومية واالستجابة لألحداث: ب -معالجة البيانات واألخطاء. .3اختبار البرنامج من حيث :أ -التأكد من استجابة األزرار والقوائم .4تصدير البرامج بإنشاء ملف تنفيذي. ً ســنعتمد في هــذا الكتــاب على املكتبــة الخاصــة ( ،)ICT_KWوالتي أعــدت خصيصــًا لتصميــم واجهــة مســتخدم رــسومية بــسيطة. تقنية املعلومات ..الصف العاشر 50 واجهة المستخدم الرسومية GUI مكتبة (.)ICT_KW مكتبــة خاصــة مبنيــة على البرمجــة الشــيئية ،)Object Oriented Programming) OOPتــم تصميمهــا لتســهيل إنشاء واجهات رسومية باستخدام لغة Pythonمبنية على مجموعة من املكتبات مثل Tkinterو Pillowوغيرها ــمن املكتــبات املــساندة ،ولنتــعرف على البرمجــية الــشيئية ــمن خالل الــتالي: البرمجة الشيئية ( :OOP(Object Oriented Programming تعــتبر لغــة Pythonمــن اللغــات التي تدعــم البرمجــة الشــيئية ،وهي نمــوذج بــرمجي يعتمــد على الكائنــات وتفاعلها مع بعضها البعض ،يمثل الكائن بفئة ،classيضم مجموعة من البيانات (املتغيرات) ،والتي تعرف بالخصائص ،propertiesوكذلك نوعين من الدوال :الدوال املدمجة methodsوالغير مدمجة .functions مثال على ذلك :مصنع لصناعة السيارات ،يصنع أنواع مختلفة من السيارات ،لكل صنف خواص مشتركة ومهام للتنفيذ بعضها مشتركة واألخرى خاصة. 51 الوحدة األولى ..واجهة املستخدم الرسومية في لغــة تتمثــل العالقــات بين العناصــر كعالقــة الوراثــة inheritanceبين األب واألبنــاء حيــث يــرث األبنــاء بعــض الخصائــص مــن اآلبــاء ،كمــا تــرث العناصــر خصائصهــا ،ودوالهــا مــن النمــوذج البرمجي األســا سي؛ ممــا يعــزز إعــادة حّسـّن تنظــيم البرناــمج موضًحـ ـًا باــلشكل الــتالي: اــستخدام التعليــمات البرمجــية ،و ُُي ـ األب Parent املكتبة كائن يمثل املكتبة ICT_KW ICT_KW االبن Child النافذة الرئيسية األب Parent Window كائن من فئة له خصائص ودوال مدمجة وغير املدمجة. العناصر االبن Child Widgets وبعــد أن تعرفنــا على مفهــوم البرمجــة الشــيئية بــشكل بســيط ،سنبــدأ في بنــاء مشــروع رســومي «الوقــت والتاريــخ»، للتعــرف على كيفيــة اســتخدام مكتبــة ،ICT_KWتصميــم النافــذة الرئيســية ،windowثــم إضافــة مجموعــة مــن العناصــر إليهــا مثــل العنــوان ،Labelوالصــورة .Image الخطوة األولى :تصميم الواجهة الرسومية :1رسم واجهة المستخدم الرسومية. تصور الشكل النهائي برسم مخطط للواجهة املطلوبة: تقنية املعلومات ..الصف العاشر 52 واجهة المستخدم الرسومية GUI : 2تحديد العناصر .widgets رسم مخطط هيكلي يوضح العناصر وخصائصها: ICT_KW )(Parent اﻟﻨﺎﻓﺬة اﻟﺮﺋيﺴﻴﺔ )(Parent/Child ﻋﺒﺎرة ﻋﺒﺎرة ﺻﻮرة اﻟﺴﺎﻋﮫ اﻟﻮﻗﺖ واﻟﺘﺎريﺦ الحﺎ;ي 09:30:00.023 2024-9-16 )(Child )(Child )(Child : 3كتابة التعليمات البرمجية. أ -إنشاء مشروع جديد New Projectفي برنامج PyCharmباسم .FirstGUI ب -إنشاء ملف Pythonباسم .time_date_GUI ج -تثبيت املكتبة ICT_KWباستخدام األمر .pip install ICT_KW د -استدعاء مكتبة ICT_KWباستخدام األمر importكالتالي: import ICT_KW ه -تشغيل النافذة الرئيسية بكتابة التعليمية البرمجية التالية لعرض النافذة الرئيسية. )(ICT_KW. run و -تشغيل البرنامج ،لتظهر النافذة التالية: 53 الوحدة األولى ..واجهة املستخدم الرسومية التحكم في خصائص النافذة الرئيسية Window النافذة الرئيسية :Window هي اإلطار األسا سي الذي يحوي جميع عناصر الواجهة الرسومية. الصيغة ICT_KW. window(Properties) :Syntax ICT_KW window Properties size: tuple title: string background_color: tuple )(width, height )(str )(0~255, 0~255, 0~255 لتحديد حجم النافذة إلضافة عنوان للنافذة لتغيير لون التعبئة شكل يوضح الهيكل الرسومي للنافذة الرئيسية windowوخصائصها ومــن خالل الهــيكل الرســومي الســابق يتــم تمثيــل كل عنصــر بتعليمــات برمجيــة لكــي يعمــل بــشكل صحيــح ،وفــق البرناــمج املــحدد ــله. تقنية املعلومات ..الصف العاشر 54 واجهة المستخدم الرسومية GUI التعليمات البرمجية: ويتم تحويل عناصر الهيكل الرسومي إلى تعليمات برمجية كما في الشكل التالي: اسم املكتبة ICT_KW دالة مدمجة window title size الوقت والتاريخ )(500, 100 اسم الخاصية قيمة الخاصية = ICT_KW.window(title الوقت والتاريـــخ , ( = size )) 500 , 100 الوقت والتاريخ 100 500 الشكل السابق يوضح حجم النافذة الرئيسية بالبكسل Pixel الحظ : 55 الوحدة األولى ..واجهة املستخدم الرسومية إضافة عناصر Widgetsإلى النافذة الرئيسية ويتم ذلك من خالل إحدى الطرق التالية: .1إنشاء عنصر بطريقة مباشرة ،والذي ال يمكن تعديل خصائصه. .2إنشاء عنصر بطريقة غير مباشرة ،وإسناده ملتغير . -١العنوان Label عنصر مرئي يعرض سلسلة نصية. الصيغة Label_name(Optional) = ICT_KW. new_Label (Properties) :Syntax موقع العنصر في النافذة الرئيسية )location: tuple (x, y حجم العنصر في النافذة الرئيسية )size: tuple (width, height النص املعروض للمستخدم )text: string (str محاذاة النص ›align: ‹left›, ‹right›, ‹center Properties لون التعبئة background_color: tuple Label )(0~255,0~255,0~255 لون خط النص Fore_color: tuple )(0~255,0~255,0~255 نوع خط النص )font_style: string (str حجم خط النص font_size: int سمك الخط (نعم/ال) bold: bool العنــوان األول :Label1التعليمــات البرمجيــة إلنشــاء عنــوان باســتخدام (الطريقــة املباشــرة) ،حيــث ُُيظهــر النــص «الوــقت والتارــيخ الــحالي» ،معتـ ًـمًدا على الــهيكل الرــسومي الــتالي: ICT_KW window Label text location size الوقت والتاريخ الحالي ()120,15 )(250,30 =ICT_KW.new_Label( text الوقت والتاريخ الحالي )) ,location=( 120 , 15 ) , size=( 250 , 30 تقنية املعلومات ..الصف العاشر 56 واجهة المستخدم الرسومية GUI الوقت والتاريخ X = 120 الوقت والتاريخ الحالي Y Y = 15 X موقع العنصر Locationداخل النافذة يحدد من بداية الزاوية العلوية اليسرى حسب اإلحداثي السيني والصادي للنافذة (.)X,Y الحظ ويمكن إنشاء عنصر ( )Label2باستخدام (الطريقة غير املباشرة) وإسناده ملتغير ،مثال: ))label2=ICT_KW.new_Label(text=str(datetime.now()),location=(25,50),size=(450,30 57 الوحدة األولى ..واجهة املستخدم الرسومية العنوان الثاني :Lable2 إلضافــة عنــوان داخــل النافــذة الرئيســية يظهــر فيــه التاريــخ والوقــت باســتخدام دالــة ( ) datetime.nowمــن مكتبــة datetimeالتي ــسبق وتعلمتــها ،باتــباع الخــطوات التالــية: استيراد املكتبة datetimeباستخدام األمر: إلنشــاء عنــوان labelيعــرض قيمــة الدالــة ( ) datetime. nowفي الخاصيــة ،Textوتحوــيل قيمتــها إلى ــنص نستخدم الدالة ( ) strكما هو موضح بالشكل التالي. : ICT_KW window Label text location size ))(str(datetime. now ()120,50 )(250,30 ))ICT_KW.new_lable(text=str(datetime.now()),location=(120,50),size=(250,30 عند تشغيل البرنامج تظهر النافذة الرئيسية بالشكل التالي: الوقت والتاريخ الوقت والتاريخ الحالي 2024-09-20 19: 10: 27. 175412 تقنية املعلومات ..الصف العاشر 58 واجهة المستخدم الرسومية GUI - 2الصورة Image عنصر مرئي يعرض صورة. الصيغة Image_name(Optional) = ICT_KW. new_Image(Properties) :Syntax location: tuple موقع العنصر في النافذة الرئيسية )(x, y size: tuple Properties حجم العنصر في النافذة الرئيسية image )(width, height اسم وامتداد الصورة املراد عرضها للمستخدم )image_file_path: string (str من نوع سلسلة نصية. background_color: tuple لون التعبئة )(0~255,0~255,0~255 إضافة ملف “صورة” إلى مجلد املشروع FirstGUI استيراد ملف الصورة clock.icoمن مجلد الصور إلى مجلد املشروع باتباع الخطوات التالية: 1.فتح مستكشف امللفات وابحث عن املجلد الخاص باملشروع وإنشاء مجلد باسم .images 2.نسخ ملف الصورة clock.icoمن مجلد أوراق العمل ولصق في مجلد imagesداخل مجلد املشروع. 3.االنتقال إلى برنامج PyCharmومالحظة ظهور ملف الصورة في مجلد املشروع. سبق وأن تم تنفيذ نفس الخطوات في درس استيراد مكتبة .ICT_KW 59 الوحدة األو