اذهب إلى المحتوى

محمد عاطف17

الأعضاء
  • المساهمات

    5600
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    68

كل منشورات العضو محمد عاطف17

  1. إن تنفيذ كود بايثون يتم بالترتيب سطر بسطر . لذلك لا يمكن إستخدام الدالة قبل تعريفها . لقد تم تعريف الدالة في سطر 41 ولكن يتم إستخدامها في سطر 31 ولهذا لن يعمل . والحل هو نقل الدالة login2 إلى ما قبل سطر 31 أي قبل إستخدامها .
  2. لا توجد طريقة أفضل جميع الطرق تمكنك من الوصول إلى البيانات الخاصة بالطلب ولكن بإختلاف نوع الطلب وإختلاف مكان البيانات . $request->name_std: هذه هي الطريقة المباشرة لجلب البيانات من الطلب إذا كان لديك متغير باسم name_std في الطلب يمكنك الوصول إليه بهذه الطريقة. $request->input('name_std'): نستخدم تلك الطريقة لجلب قيمة معينة للبيانات من الطلب بغض النظر عن طريقة الإرسال سواء POST أو GET وهنا سنحضر name_std. $request->post('name_std'):نستخدم تلك الطريقة لجلب البيانات المرسلة عبر طريقة POST فقط إذا كان لديك نموذج يرسل البيانات عبر POST يمكنك استخدام هذه الطريقة ولا تعمل تلك الطريقة إذا كان الطلب GET. $request->get('name_std'):نستخدم تلك الطريقة لجلب البيانات المرسلة عبر طريقة GET فقط هذه الطريقة مناسبة إذا كنت تتعامل مع روابط أو استعلامات GET ولا تعمل تلك الطريقة إذا كان الطلب POST . $request['name_std']: هذه الطريقة بديلة لجلب البيانات من الطلب وتشبه في عملها لـ $request->input('name_std'). $request->query('name_std'): نستخدم تلك الطريقة لجلب القيم من سلسلة الاستعلام (query string) في الروابط فإذا أردت إسترجاع البيانات من الرابط URL . تلخيصا لما سبق إذا كنت تتعامل مع نموذج يرسل بيانات عبر POST، استخدم post أو input و إذا كنت تتعامل مع بيانات من URL أو استعلام GET، استخدم get أو query و للوصول المباشر للمتغير، يمكنك استخدام $request->name_std أو $request['name_std']. اختيار الطريقة يعتمد على كيفية إرسال البيانات وما تحتاجه من الطلب كما أخبرتك.
  3. أن المسار الأول سكراتش يستهدف بصفه أساسيه من لا يوجد لديه أي أساس برمجي ولم يتعامل مع البرمجه من قبل فهو عباره عن لغة برمجة مرئية صُممت أساسًا لأغراض تعليميّة و نظرًا لسهولة المبادئ التي تعمل وفقها سكراتش فهي ممتازه جداً لمن لم يكن لديه أي معرفه مسبقه بالبرمجه. أما إذا كان لديك فهم لبعض المفاهيم البرمجيه الأساسيه مثل الدوال والحلقات تكرار والجمل شرطيه والمتغيرات والعوامل وغيرها من الأساسيات فيمكنك تخطي هذا المسار ولكن أنصحك بمتابعه المسار سريعاً لربما تحصل علي معلومات جديده أو يكون هذا المسار كمراجعه لك علي بعض الأساسيات حتي تكون جاهز للمسار الذي يليه.
  4. ملف pyvenv.cfg هو ملف تكوين (configuration) يُستخدم في البيئة الافتراضية التي في بايثون حيث يحتوي هذا الملف على معلومات عن البيئة الافتراضية والإعدادات الخاصة بها مثل: المسار إلى بايثون. إصدار بايثون إصدار المفسر (interpreter) مسار المكتبات التي تم تثبيتها في البيئة الإفتراضية أي إعدادات أخرى خاصة بالبيئة الإفتراضية. وأخيرا لا ينبغى عليك تعديل هذا الملف بنفسك أو حذفه حيث هو المسؤول عن عمل البيئة الافتراضية بشكل صحيح وإذا قمت بحذفه هذا الملف وتعديله بشكل غير متوقع قد لا تعمل البيئة الإفتراضية معك
  5. توجد العديد من النماذج التي تسطيع تطبيقها هنا وهذا يعتمد على المبلغ الذي ستوفره و مدى تفرغك للمشروع . أولا لا يمكن لشريكك أن يأخذ راتب وأرباح معا فهو يأخذ أى منهما بناء على الإتفاق الخاص بكما . حيث من المفترض أنك شريك مالي وهو شريك إدارى والشريك الإدارى لا يأخذ راتب بل يأخذ نسبة من الأرباح نصيب تفرغة الكامل للمشروع وإدارته و أنت نسبتك في الأرباح نابعة من أنك صاحب رأس المال . فإذا كنت أنت لن تكون متفرغا للمشروع فقط تعطيه رأس المال وهو يقوم بإدارته فالنموذج السابق هو الأمثل . حيث تقوم بتحديد نسبة ربح له ولتكن 40% و 60% لك وتكون أن شريك برأس المال وهو شريك بالإدارة والمجهود ويمكنكما تحديد النسبة أيضا بناء على مدي حجم رأس المال ومدي حجم المشروع الذي سيديره هو . ثانيا في حالة الخسارة هنا يجب أن تتفقا في حال الخسارة التوجه إلى أصحاب الخبره لمعرفة هل الخسارة نابعة من سوء إدارة وإهمال من شريكك أم خسارة طبيعية حيث لا يوجد مشروع لا يخسر ولكن أسباب الخسارة تختلف, فهنا إن كان تقصير من شريكك وإهمال فيفترض هو من يتحمل نسبة الخساره بأكملها حيث أنه مؤتمن على هذا المال والمشروع أو يمكنك تحديد نسبة أكبر له للخسارة مثلا 80 له و 20 لك . أما إذا كانت الخسارة طبيعية فهنا أنت ستخسر من رأس مالك وهو سيخسر وقته الذي أمضاه في إدارة هذا المشروع وهذا هو العدل حيث أنكما شركيان معا في الخسارة والأرباح. أما إذا أعطيته نسبة من الأرباح و مرتب شهرى فهذه ليست شراكه فهكذا هو موظف وليس شريك فكيف يأخذ الإثنان معا. ويجب عليك وضع جيمع البنود والشروط قبل العقد حتي لا تحدث لك مشاكل فيما بعد.
  6. إن هناك فرق كبير بين تعلم الآلة (Machine Learning) و بين التعلم العميق (Deep Learning) والإختيار بين كلم منهما من حيث تقديم التوصيات يعتمد على عدة عوامل، منها حجم البيانات، تعقيد المشكلة، والموارد المتاحة. التعلم الآلي (Machine Learning): السهولة: غالبًا ما يستخدم نماذج بسيطة مثل الانحدار الخطي أو شجرة القرار أو ال SVM هذه النماذج تكون فعالة وسهلة التفسير. قلة البيانات: التعلم الآلي العادي يمكن أن يعمل جيدًا مع مجموعات بيانات أصغر مقارنة بالتعلم العميق حيث لا يتطلب كميات كبيرة من البيانات. التخصيص: مناسب لحالات تكون فيها العلاقات بين البيانات واضحة أو يمكن الاستفادة من ميزات معينة مباشرةً. التعلم العميق (Deep Learning): ضخامة وتعقيد البيانات: التعلم العميق مناسب جدًا عندما يكون لديك كميات كبيرة من البيانات أو بيانات غير منظمة (مثل النصوص، الصور، أو الفيديو). التوصيات المعقدة: يمكن أن يكتشف التعلم العميق أنماط معقدة في البيانات وليست مباشرة بفضل استخدام الشبكات العصبية، مما يجعله مفيدًا في أنظمة التوصيات التي تعتمد على فهم العلاقات الدقيقة بين المستخدمين والمحتوى. الحاجة إلى موارد كبيرة: يتطلب موارد حسابية كبيرة مثل وحدات معالجة الرسومات (GPU) ووقت تدريب أطول. تلخيصا لما سبق إذا كانت البيانات بسيطة ومحدودة الحجم فإن التعلم الآلي سيكون الخيار الأفضل بسبب السرعة والبساطة وأيضا بسبب قلة البيانات. أما إذا كانت البيانات كبيرة أو معقدة مثل التوصيات المعتمدة على تحليل تاريخ المستخدم بالتفصيل أو التعامل مع بيانات غير منظمة ولا تربطهم علاقات مباشرة فإن التعلم العميق يوفر نتائج أكثر دقة وتفصيلاً. ويمكنك قراءة الإجابة التالية لشرح أفضل للفرق بينهما :
  7. هل يمكنك توضيح سؤالك أكثر وما هي المشكلة التي تواجهك ؟ إذا كان هذا سؤال متعلق بإحدى دروس الدورات فستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  8. هل قمت بحفظ المقالة بعد إستبدال الكلمات بالروابط أم تم حفظها هكذا دون إستبدال ؟ إذا لم يتم حفظها بعد الإستبدال إذا يجب إستخدام الدالة replaceText بالإستبدال : const replaceText = (text) => { const regex = /phoenix/gi; // البحث عن اسم المدونة const replaced_text = text.split(regex).join( `<a href="/" style="color: blue; font-weight: bold;">phoenix</a>` ); return replaced_text; }; return ( <div dangerouslySetInnerHTML={{ __html: replaceText(content) }} /> ); حيث content هو المتغير الذي يحتوي على المقالة . أما إذا تم حفظها بعد الإستبدال ففقط يجب إستخدام dangerouslySetInnerHTML وهي خاصية لعرض النص كHTML المعدل : return ( <div dangerouslySetInnerHTML={{ __html: =content }} /> );
  9. لا عند الضغط عليها يعطيك خيار إضافة بيئة جديدة أو إختيار من البيئات الإفتراضية التي لديك . ويجب أن يظهر خيار recommended حيث يقوم vs code تلقائيا بمعرفة البيئة الحالية :
  10. هذا لأنك لم تحدد البيئة التي من المفترض أن يعمل عليها vs code وإضافة pylint الخاصة بإظهار الأخطاء ووضع الخطوط مثل الخط الأصفر والإقتراحات الخاصة بالأكواد. ولتغير البيئة ستجد في الصفحة في الأسفل أقصى اليمين كلمة python وبجوارها البيئة التي يعمل عليها vs code ولتغيرها كل ما عليك هو الضغط عليها وإختيار البيئة التي تريدها : إذا كان يظهر لك رقم كما في الصورة السابقة فهذا يدل على أن vs code يعمل على البيئة الأساسية للنظام لذلك يرجى الضغط عليه وستظهر لك جيمع البيئات الإفتراضية و الأساسية لديك ويمكنك إختيار البيئة المناسبة لك.
  11. عند التفكير في بناء API أو الاعتماد على الكود الموجود في المتحكم فقط فهذا يعتمد على بعض الأمور: متى نقوم ببناء API: تعدد الاستخدامات: إذا كنت تخطط لاستخدام نفس المنطق في أكثر من واجهة مثل الويب او تطبيقات الموبايل أو غيرها وهنا إستخدام ال API سيكون الخيار الأفضل لأنه سيخدم جميع تلك الواجاهات والمشاريع. فصل المسؤوليات: إذا كنت تريد فصل منطق العمل عن واجهة المستخدم، فـ API يساعدك في ذلك حيث فقط الواجهة ستكون مخصصة للعرض وسيكوم ال API للتحكم في البيانات. تلخيصا لما سبق ال API أفضل خيار إذا كان هناك العديد من المصادر والمشاريع والواجهات التي ستتعامل مع هذا المشرع لذلك يفضل بناء هذا المشروع ك API. متى نكتفي بالمتحكم: تطبيقات بسيطة: إذا كان التطبيق بسيطا ولا يتطلب واجهات متعددة يمكنك الاكتفاء بالمتحكم حيث هو من سيكون حلقة الوصل بين العرض وبين البيانات . لهذا إذا كان مشروعك ليس كبيرا ولن يتم الإتصال به من عدة واجهات سواء تطبيقات هاتف أو غيرها إذا يكفى فقط إستخدام المتحكمات. أما بخصوص الإختبارات فهي مهمة للتالي : إذا كان هناك منطق معقد في التطبيق فإن كتابة اختبارات ستكون ضرورية لضمان عمل كل شيء بشكل صحيح وكما تتوقعه وتريده. إذا كنت تجد نفسك تكرر نفس التعليمات البرمجية، فمن الجيد كتابة اختبارات لتجنب الأخطاء فإن أكثر الأخطاء تنتج من نسخ وإعادة إستخدام الأكواد. إذا كنت تخطط لتحديث وتطوير المشروع فإن الاختبارات تساعد في التأكد من عدم وجود أى أخطاء في الأكواد السابقة إذا حدث لها تعديل أو تحديث فبمجرد عمل تعديلات في الأكواد ستقوم بتشغيل الإختبارات السابقة وإذا عملت كما هو متوقع إذا التحديثات جيدة وتعمل أما إذا حدثت مشكلة فإذا ستعرف أن هناك مشكلة في الأكواد الجديدة ويجب حلها
  12. نعم بالطبع ولكن إحذر من هذه الطريقة حيث من الممكن أن المستخدم سيقوم بكتابة شيفرات ضارة مثل javascript وغيرها من الممكن أن تضر الزوار الخاصين بالمدونة لذلك يرجى الإنتباه لتلك الطريقة. هذا هو الكود : import { useState } from 'react'; import Link from 'next/link'; const BlogEditor = () => { const [content, setContent] = useState(''); const handleChange = (e) => { setContent(e.target.value); }; const replaceText = (text) => { const regex = /phoenix/gi; // البحث عن اسم المدونة const replaced_text = text.split(regex).join( `<a href="/" style="color: blue; font-weight: bold;">phoenix</a>` ); return replaced_text; }; return ( <div> <textarea value={content} onChange={handleChange} placeholder="اكتب مقالتك هنا..." rows="10" cols="50" /> <h3>معاينة المقالة:</h3> <div dangerouslySetInnerHTML={{ __html: replaceText(content) }} /> </div> ); }; export default BlogEditor; هنا أنشأنا الدالة replaceText والتي ستقوم بإستبدال النص الخاص ب phoenix ووضع رابط المدونة بدلا منه . لذلك يرجى وضع رابط المدونة في خاصية href في الدالة . بعد ذلك إستخدمنا handleChange وهي الدالة التي تستخدم لتحديث حالة content عند تغيير النص في الـ textarea. وهنا إستخدمنا dangerouslySetInnerHTML وهي خاصية لعرض النص كHTML المعدل في div وذلك لمعاينة المقالة . وفي النهاية عند الحفظ يرجى إستدعاء الدالة replaceText للتبديل النص إلى رابط قبل حفظها لديك.
  13. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  14. خلال 48 ساعة من إنشاء الحساب ستجد أنك قد حصلت على 50 connects مجانية يمكنك إستخدامها في التفديم على الوظائف . وكل شهر ستحصل على 10 connects مجانية.
  15. إن up work لا توفر أى أكواد خصم كثيرا ولهذا فإنه إذا كان يوجد أكواد خصم فيتم إرسالها بالبريد ومعظم أكواد الخصم تكون لأشخاص معينين فقط أو يتم توفيرها في المناسبات . لذلك حاليا يمكنك الإعتماد فقط على ال free connects التي يتم توفيرها لك في بداية كل شهر .
  16. في بعض الدروس بالطبع يقوم المدرب بإعطاء تمارين للتدريب على الدرس ستجدها في نهاية كل درس يقوم المدرب بإعطاء تدريب أو إثنين لحلهما .وإذا أردت تمارين إضافية في أى درس فقط يمكنك التعليق أسفل الدرس المراد تدريبات له وسيقوم المدربون بإعطاء تمارين لك . ونعم بالفعل الأكاديمية تعتمد على التطبيقات العملية حيث ستجد العديد من التطبيقات العملية والتي تشمل الأساسيات جميعها حيث ستطبق جميع ما تعلمته في مشروع حقيقي. أما بخصوص طريقة مذاكرة التطبيقات العملية فأولا يرجى التطبيق مع المدرب في كل درس والتأكد من فهم كل شئ وإذا وجدت صعوبة في أمر ما يمكن السؤال دائما أسفل الدرس . وهكذا قم بالتطبيق مع المدرب إلى نهاية المسار وبعد ذلك يفضل إنشاء المشروع من البداية بنفسك تماما دون الرجوع إلى الدروس فقط قم بتطبيق ما فهمته وتعلمته لتخرج مشروع يعمل كما هو متوقع و يمكنك محاولة تحسين الأكواد أو إضافة خصائص جديدة ولكن يمكنك الإلتزام بالمشروع فقط إذا أردت دون إضافات . وهكذا بعد الإنتهاء من المشروع بمفردك يمكنك مقارنة الأكواد ومراجعتها والتأكد من أن كل شئ يعمل كما هو مطلوب وإذا وجد أخطاء هكذا ستعرف أنه توجد لديك مشكلة في درس معين وحينها يمكنك مراجعته لحين التأكد من فهمك الكامل للمشروع و إستطاعتك كتابته بنفسك وهذا هو ما سيساعدك على التطور وتحسين مستواك.
  17. نعم تعتبر هذ الفكرة جيدة وخصوصا إذا تريد إستخدام تصدير الملفات ك PDF في أكثر من مشروع بأكثر من لغه . لذلك إذا وجدت بايثون تساعدك في تلك المهمة فيمكنك إنشاء خادم بإستخدام flask كما تريد و جعله يستقبل الطلبات ويقوم بتصدير المعلومات في ملف PDF وتقوم بإرسال الطلبات ك API من خلال أى مشروع أخر . ولكن هنا سيتوجب عليك رفع مشروع flask على خادم مع المشروع الآخر و هنا سيتطلب عملا إضافيا لتشغيل الخوادم معا أو رفع كل مشروع على خادم منفصل . وأيضا سيتوجب تأمين مشروع flask جيدا ومنع الوصول له من أى شخص أخر سواك . ولكن من وجهة نظرى إن تصدير الملفات ك PDF ليست بالصعوبة تلك حيث php توجد بها العديد من المكتبات التي تدعم PDF و اللغة العربية و الأمر بسيط سيحتاج ملف سكريبت واحد فقط و أيضا في next . لذلك الأفضل هو إنشاء ملف لكل منهما وفي كل مشروع تريد تنفيذ خاصية تصدير الملفات تقوم بوضع ذلك الملف في المشروع وسيعمل معك .
  18. نعم يوجد الكثير من المكتبات التي تدعم اللغة العربية في ملفات ال pdf : pdf-lib: مكتبة قوية ومفيدة لإنشاء وتعديل ملفات PDF يمكنها التعامل مع النصوص باللغة العربية ولكنك قد تحتاج إلى ضبط الخطوط بشكل صحيح لدعم الكتابة من اليمين لليسار (RTL) وهذا رابط المكتبة على github : https://github.com/Hopding/pdf-lib jspdf: مكتبة شائعة لإنشاء ملفات PDF من اكواد HTML . توفر إستخدام العديد من اللغات بما في ذلك اللغة العربية، لكنك قد تحتاج إلى استخدام خطوط خاصة باللغة العربية ووهذا رابط المكتبة على github : https://github.com/parallax/jsPDF pdfmake: مكتبة جيدة لإنشاء ملفات PDF. تدعم الكتابة من اليمين لليسار وتوفر دعم للغة العربية وهذا هو رابط المكتبة على github : https://github.com/bpampuch/pdfmake
  19. هذه المشكلة غالبا بسبب مشكلة في الإصدارات التى لديك . وغالبا هى بسبب مكتبة numpy لذلك يرجى تنفيذ الأوامر التالية : pip install numpy --upgrade pip install tensorflow --upgrade pip install keras --upgrade يمكنك تنفيذ كل أمر على حدى وتجربة البرنامج وانظر أى مكتبة تحديثها أدى إلى حل المشكلة
  20. وعليكم السلام ورحمة الله وبركاته. من فضلك مستقبلا يرجى وضع سؤالك اسفل الدرس حيث ستجد صندوق للتعليقات كما هنا حيث لا نجيب على اسئلة الدورات هنا حيث هذا هو قسم الاسئلة العامة وذلك لمساعدتك بشكل افضل. لاخظ ان الخطأ يخبرك ان مكتبة gspread لا تحتوى الدالة authorize مع ان تلك المكتبة تحتوى بالفعل على هذه الدالة ولاحظ انه يخبرك ان هذا من المحتمل بسبب circular import . وإذا نظرت الى اسم الملف الخاص بك ستجده google.py وهذا الاسم تستخدمه gspread بداخلها لذلك حينما تستعدى gspread الملف google فهنا تستعدى الملف الخاص بك وتحدث مشكلة cirular import حيث يظل كل ملف يستدعى الاخر . لذلك يرجى تغير اسم google.py الى اى اسم اخر لحل تلك المشكلة
  21. وعليكم السلام ورحمة الله وبركاته. انت لم تقم بالغاء اخفاء الملفات بل فقط قمت بتفعيل خيار إظهار الملفات المخفية. ولذلك فإن الملفات المحفية تظهر بشكل باهت ليتم التفرقة بينها وبين الملفات الأخرى. ولإظهار الملفات ننبع نفس خطوات إخفائها . اولا قم بالوقوف على الملف او المجلد وقم بالضغط على الزر الايمن للفأرة. بعد ذلك قم بإختيار Properties : ستجد الآن ان خيار Hidden مفعل يرجى العاء تفعيله ومن ثم الضغط على apply : الآن ستجد ان الملفات قد ظهرت بشكلها الطبيعى بعد الغاء إخفائها.
  22. إن الدالة str تقوم بإرجاع قيمة المتغير وتحويلها إلى سلسلة نصية و لكن لا تغير قيمة المتغير نفسه . لذلك يجب إسناد تلك القيمة إلى ذلك المتغير أو متغير أخر . لاحظ كما في الصورة السابقة أسندنا النتيجة التى يتم إرجاعها من str(age) إلى المتغير age وبذلك قمنا بتحديث قيمة المتغير age الحالية والتى هى int إلى القيمة الخارجة من الدالة str وأصبح الآن سلسلة نصية. لذلك كل ما عليك هو كتابة السطر التالي : age = str(age)
  23. وعليكم السلام ورحمة الله وبركاته . إن جميع الدورات في الأكاديمية تم إعداداها بشكل ممنهج حيث يتم أولا البدء بالأساسيات وبعد ذلك تنتقل من قسم إلى أخر حيث يعتمد كل قسم على الأقسام التى قبله . لذلك يرجى متابعة المسارات بالترتيب خاصة مسار الأساسيات وذلك حتى لا تجد صعوبة في مسار يعتمد على المسارات التى قبله . أولا يجب عليك التركيز في الدرس وتأكد من عدم تخطي أى درس قبل التأكد من فهمه جيدا وإذا ما واجهتك مشكلة يمكنك السؤال دائما أسفل الدرس وستجد العديد من المدربين المتاحين لمساعدتك في أى وقت . بعد التأكد من فهم الدرس يرجى التطبيق مع المدرب ويمكنك التطبيق أثناء الدرس ولكن يفضل التطبيق بنفسك مرة أخرى بعد نهاية الدرس وذلك للتأكد من أنك تستطيع تطبيق ما تعلمته حيث في البرمجة التطبيق أهم بكثير من الدراسة النظرية . وفي المسارات الخاصة بالتطبيق العملى ففي هذا المسار يرجى فهم المشروع المطلوب أولا وبعد ذلك يمكنك متابعة الدرس والتطبيق مع المدرب وبعد إنتهاء المسار يفضل إنشاء المشروع من البداية بنفسك والتأكد من عمل المشروع كما من المفترض أن يعمل و بعد ذلك يمكنك مقارنة المشروع الذى أنشأته مع المدرب والمشروع الذى أنشأته بنفسك لتعرف نقاط الضعف والقصور التي لديك حتى تركز عليها . ويمكنك قراءة الأجوبة التالية لنصائح أفضل حول طرق المذاكرة :
  24. وعليكم السلام ورحمة الله وبركاته . لا لم يتم الحفظ بالطبع في قاعدة البيانات حيث الكود لا يقوم بأى تعديل أو حفظ في قاعدة البيانات . حيث يقوم الكود فقط باستبدال القيم الفارغة (null) في عمود "cholesterol" من DataFrame وبما أن الكود يقوم فقط بتعديل وحفظ البيانات في الذاكرة المؤقته ولا يوجد أى كود أخر لحفظ تلك العديلات في قاعدة البيانات فإذا التعديلات ستظل فقط في الذاكرة المؤقته وقاعدة البيانات ستظل كما هي.
  25. كما وضحنا لك فإن أى متغير أو بيانات يتم حفظها في البرنامج نفسه سواء متغير أو شئ فإنه يتم حفظها في الذاكرة المؤقته (RAM) وليس على القرص الصلب (Hard Disk) لديك على الجهاز ولهذا بمجرد إغلاق الحاسوب أو حتى إغلاق البرنامج يتم حذف البيانات من الذاكرة المؤقته وبالتالى فقدان أى بيانات كانت بداخل تلك المتغيرات . وكما أخبرتك لم تصمم البرامج لحفظ المتغيرات على الحاسوب . حيث بمجرد تشغيل البرنامج وإنشاء متغير تقوم اللغة التى تم كتابة الكود بها ومثلا هنا بايثون بحفظ مكان في الذاكرة المؤقته و تعين هذا المتغير بقيمة فارغة حتى تقوم بحفظ البيانات فيه فتقوم بحفظ البيانات في المكان الخاص بهذا المتغير في الذاكرة المؤقته . وحين يتم إغلاق البرنامج تقوم اللغة بالتخلى عن تلك الأماكن في الذاكرة المؤقته ويتم حذف تلك البيانات . ولهذا فلحفظ البيانات يجب إستخدام قواعد البيانات أو ملفات لحفظها مثل ملفات JSON أو CSV أو حتى TEXT . ولكن لا يتم الإعتماد على المتغيرات فلن يتم حفظ البيانات بها وبمجرد إغلاق البرنامج أو إغلاق الحاسوب سيتم فقدها نهائيا.
×
×
  • أضف...