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

Adnane Kadri

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

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

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

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

    51

كل منشورات العضو Adnane Kadri

  1. قم أولا بتخزين عائد الدالة في متغير، وليكن re: def func(): var1 = 'Hola' var2 = 'Hola2' return dict(var1=var1, var2=var2) re = func() ثم لقراءة المتغير var1 من القائمة re قم بذلك على النحو التالي: result = dict(re)['var1'] print(result) // Hola
  2. إليك المثال: def func(): var1 = 'Hola' var2 = 'Hola2' return dict(var1=var1, var2=var2) print(func())
  3. لا، ولكن يمكنك تخزين العديد من المتغيرات في قائمة وإعادة القائمة مباشرة.
  4. تلك الأيقونة توفرها اضافة وميزة في VS code تسمى Source Control Checkout وهي طريقة لتمكين المستخدمين من إنشاء فروع branches والتحقق منها checkout مباشرة من داخل vs code باستخدام واجهة رسومية. قم بالضغط على تلك الأيقونة وسيظهر لك مربع الحوار التالي: يمكنك بذلك إنشاء فرع جديد أو تحقق فرع لا غير. أما بالنسبة لعمليات الإدراج add والإيداع commit والدفع push فهي عمليات يجب عليك القيام بها من خلال موجه الأوامر أو من خلال GIT GUI فقط.
  5. قم فقط بالتحقق من وجود قيمة في self.filename قبل طباعتها أو استخدامها. أي قبل قبل استدعاء الدالة PRINT_FILENAME. أو قم بتجاوز الدالة في نفسها لتسع هذا الاستخدام: def PRINT_FILENAME(self): if hasattr(self, 'filename') and self.filename: print(self.filename) else: print("لم يتم اختيار أي ملف بعد")
  6. إذا كانت خوارزمية ما تأخذ وقتا ثابتا لتنفيذها يعني ذلك أن وقت التنفيذ لا يعتمد على حجم البيانات الذي يتم معالجته. وهذا يعتبر مبدئيا أمرا ومؤشرا جيدا من حيث الأداء، خاصة إذا كان البرنامج يعمل بنفس الطريقة بغض النظر عن حجم البيانات. فالوقت الثابت يشير إلى أن تكلفة تنفيذ الخوارزمية لا تتغير بزيادة حجم الإدخال. بما أن الوقت الثابت هو أمر مرغوب فيه، إذا كان بإمكان البرنامج تحقيق هذا الأمر لكل سطر من الكود، فإن ذلك سيكون ميزة كبيرة بطبيعة الحال. على أنه يجب مراعاة أن العديد من البرامج قد تحتاج إلى التعامل مع بيانات متغيرة الحجم، وفي هذه الحالات قد تكون بعض العمليات تتغير في تعقيدها بناءا على حجم البيانات، ولذلك فإنه مجرد مؤشر يمكن أن يجعلها مفضلة في بعض النواحي ولا يعني أن الخوارزمية هي الأفضل على الإطلاق.
  7. مثل هذا السؤال كثير التكرر من المقبلين على المجال، والاختيار بينهما غالبا ما يعتمد على العديد من العوامل منها: نوعية المادة العلمية مضمون الكتاب، فبعض المواد سرعان ما يتم تحديثها بشكل دوري ولذلك لا يمكن للكتب أن تسعها أو تقاربها، فالكتب تحتاج كتابة وتنقيحا ونشرا وتوزيعا إلى حد الوصول إلى القارئ النهائي، ولحد ذلك يمكن أن يتم نشر تحديث جديد لمحتوى الكتاب. ومثال عن ذلك: الكتب الخاصة بأطر العمل أو المكتبات مثل ReactJS و Laravel والتي تطرأ عليها تحديثات بشكل سريع. في حين أن بعض الكتب الأخرى والتي تتناول بعض مبادئ البرمجة أو هندسة البرمجيات لا تطرأ عليها تحديثات بشكل دوري ولذلك يمكن للكتب تناولها وتوزيعها من مثل كتاب The clean code تفضيلات المتعلم، فبعض المتعلمين يجدون أنفسهم مرتاحين أكثر مع الكتب والبعض الآخر مع الفيديوهات أو المحتوى المرئي. جودة العمل، سواءا كان ذلك كتابا أو فيديو، فبعض الكتب أفضل بكثير من الفيديوهات التعليمية والبعض الآخر غير ذلك. الجانب النظري فيها، فإن غلب الجانب التطبيقي على النظري مضمون الكتاب فالفيديوهات أفضل بطبيعة الحال لإمكانية تطبيقها عمليا بصورة واضحة واختبار نتائجها، في حين أن لو كانت المادة النظرية هي الغالبة فسيكون من الأفضل الكتب، لإمكانية التفصيل والتفريع فيها. ولذلك فإن الإجابة عن مثل هذا السؤال تخضع لك ولما تريد أن تتعلمه بصورة مباشرة. وفي مثال HTML5 يفضل الفيديوهات التعليمية لأن أغلب المفاهيم المطبقة هي هياكل يجب اختبارها بشكل تطبيقي.
  8. نص "#!/usr/bin/php" الذي يظهر في أعلى الصفحة غالبًا ما يكون نتيجة لعدم تشغيل السيرفر بشكل صحيح أو استخدام نسخة PHP غير صحيحة. ولذلك تأكد من مطابقة نسخة PHP المستعملة للنسخة المطلوبة من قبل التطبيق. في حال استمرار المشكلة، افتح ملف index.php وقم في أوله بحقن السطر التالي: <?php @ob_end_clean(); if(ini_get('output_buffering')) ob_start(); وانظر ما ان اختفت المشكلة.
  9. لا توجد طريقة مباشرة لذلك، ولكن ستحتاج القيام بذلك بشكل يدوي بالفعل. Ionic يستخدم HTML و CSS لبناء واجهة المستخدم، وReact Native يستخدم JSX و CSS-in-JS (مثل Styled Components) لبناء واجهة المستخدم. إليك بعض الخطوات التي يمكن أن تساعدك في هذا الاتجاه: قم بتحليل التطبيق الحالي في Ionic وحدد المكونات والتصميمات التي تريد نقلها إلى React Native. قم بإعادة إنشاء المكونات باستخدام React Native components بدلاً من Ionic components. أعد إنشاء التصميم باستخدام CSS-in-JS أو Styled Components في React Native. قم بإعادة استخدام الخدمات والمنطق الخاصة بك إذا كانت مكتوبة باستخدام JavaScript/TypeScript. يمكنك استخدام Android Studio لبناء واختبار تطبيق React Native الخاص بك على منصة Android. قم بتجربة التطبيق على محاكي Android Studio أو على جهاز Android فعلي. بعد أن يعمل التطبيق بنجاح على Android، يمكنك التوسع لدعم منصة iOS باستخدام Xcode. طبعا فإن مثل هاته الخطوة تحتاج إلماما بكل الأدوات التي يجب عليك الاشتغال بها.
  10. لتصبح مطورا لمنصات Apple، مثل iOS (لأجهزة iPhone و iPad) و macOS (لأجهزة Mac)، يمكنك اتباع التالي: قم بتعلم البرمجة: لتطوير تطبيقات iOS، يمكنك تعلم لغة Swift واستخدام بيئة تطوير Xcode. لتطوير تطبيقات macOS، يمكنك أيضًا استخدام Swift مع Xcode أو تعلم لغة Objective-C. قم باستكشاف موارد Apple للمطورين: فهي تقدم موارد غنية للمطورين على موقعها الرسمي. مثل برامج تعليمية وتوثيقات رسمية وما إلى ذلك. قم بالانضمام إلى برنامج المطورين: إذ سيكون لديك وصول إلى موارد إضافية وإمكانية تحميل إصدارات التجريبية من نظام التشغيل (iOS/macOS) لتطوير تطبيقاتك. قم ببناء تطبيقات تجريبية لتطبيق المفاهيم والمهارات التي اكتسبتها. بعد تطوير تطبيقك، يمكنك تقديمه إلى متجر التطبيقات الخاص بـ Apple ليتمكن المستخدمون من تنزيله. عن مميزات الوظيفة: فرصة الوصول إلى جمهور كبير من مستخدمي الأجهزة الذكية والحواسيب الشخصية. الوصول إلى مصادر تطوير غنية من Apple، بما في ذلك WWDC والموارد الرسمية. إمكانية تحقيق أرباح من تطبيقاتهم من خلال متجر التطبيقات.
  11. ما تقصده هو عنوان ايميل احترافي، مثل: contact@hadi.dev ومثل هاته العناوين لا تعطى بشكل مجاني، ولكن ترفق ضمن حساب ايميل عند شراء الدومين أو عند شراء خطة استضافة تشمل الحصول على دومين وحسابات إيميل مرفقة له. ولذلك ستحتاج لكل من: اختيار مزود خدمة نطاق (Domain Provider) مثل نيمشيب أو هوستنجر البحث عن نطاق متاح شراء النطاق تكوين إعدادات DNS استخدام بريد مخصص من لوحة تحكم مزود الخدمة
  12. يمكنك البحث عن بعض الدورات المتخصصة في يوتيوب والتي تكون بشكل مرئي. مثال: Django crash course من Traversy Media Python Django 7 Hour Course من Traversy Media Python Django Web Framework - Full Course for Beginners من freeCodeCamp ايضا، يمكنك البحث عن الكورسات التي يتم عرضها بشكل مجاني على منصات الكورسات من مثل Coursera و Udemy. أيضا يمكنك الاستفادة من المحتوى المكتوب المنشور على أكاديمية حسوب هنا.
  13. أظن أن قوقل لا تقوم بتوفير ذلك بصورة مباشرة أو بوساطة Embed ، ولذلك وفكرة قم فقط بحقن رابط تشعبي يشر إلى صفحة التقييم وأعطه بعض التنسيقات اللازمة: <a href="https://play.google.com/store/apps/details?id=com.example.package_name" target="_blank"> قيم التطبيق على جوجل </a>
  14. وعليكم السلام، الاحتفاظ بالملفات والمشاريع مطلوب في المسارات التطبيقية وليس في المسارات النظرية أو تلك التي يغلب عليها الشرح النظري وطرح الأمثلة. ولذلك لا تقلق، لا يزال بإمكانك اجتياز الامتحان. قم بتقديم ما لخصته من دروس على أنها نتاج الشروحات النظرية وسيكون ذلك كافيا. أيضا لا يزال أمامك بعض المسارات الأخرى: الخورازميات وبنى المعطيات أنماط التصميم أساسيات هندسة البرمجيات قم بالاحتفاظ بما ينتج عنها من مشاريع عملية وقم بتقديمها هي الأخرى حين التقدم للامتحان. وفي حال ما طلبت منك التمارين الأخرى، قم بشرح وضعيتك لفريق الامتحان وسيكونون متفهمين لذلك.
  15. إليك بعض التوجيهات العامة التي تساعدك في حل الواجب: استخدام مفهوم range: في Python، range(start, stop) قم بإنشاء تسلسل من الأعداد من start حتى stop-1. يمكنك استخدام هذه الميزة لتوليد مجموعة من الأعداد بين A و B. استخدام دورة تكرار (for): استخدم دورة for للانتقال عبر الأعداد في المجموعة التي تم إنشاؤها باستخدام range. في كل تكرار، قم بجمع العدد الحالي إلى المجموع الكلي. تحديد نقاط البداية والنهاية بشكل صحيح: تأكد من تضمين العددين A و B في الجمع. استخدام متغير لتخزين الناتج: قم بإنشاء متغير لتخزين المجموع النهائي وقم بتحديثه في كل دورة. طباعة النتيجة: بمجرد الانتهاء من حساب المجموع، قم بطباعة النتيجة.
  16. الإجابة على مثل هكذا سؤال تعتمد على عدة عوامل بما في ذلك خلفية المطور، والمشروع الذي يعمل عليه، والأدوات التي يستخدمها وما إلى ذلك، فخبرة الشخص بمجال العمل تحدد سرعة عمله وجودته، وقد يقوم مطور ويب خبير بالعمل بإنتاجية أكبر من مطور جوال مبتدئ، بل وحتى من مطور ويب مبتدئ في نفس مجاله وعلى نفس المشروع. كما أن هذا يعتمد أيضا على نوع المشروع، فبعض المشاريع تكون أكثر تعقيدا على بعض المنصات مقارنة بأخرى، مثل التعامل مع أحداث الاستشعار واللمس والسحب في الهاتف. أو يحدث أن نجد بعض حالات الاستخدام التي يسهل تطبيقها على الويب، في حين أنها تحتاج تخصيصا أكبر لجعلها تعمل على الهاتف. هنالك أيضا بعض الأدوات واللغات الملائمة للمشروع يمكن أن يساعد على زيادة الكفاءة. من مثل Flutter وReact Native تسمح لك ببناء تطبيق واحد يعمل على نظامي التشغيل iOS و Android، مما يقلل من الوقت اللازم لتطوير التطبيق. في الملخص، لا يوجد جواب واحد يناسب الجميع. يفضل عليك تقييم متطلبات مشروعك الخاص ومهاراتك الحالية لاتخاذ القرار الأمثل.
  17. العد يبدأ من الصفر لكل من الصفوف والأعمدة. لذا، الصف الأول يمثله الرقم 0، والعمود الأول يمثله الرقم 0 وهكذا ..
  18. يمكنك استخدام قوس مربعي فارغ لتحديد الصفوف الكل (:) واختيار الأعمدة المطلوبة. على سبيل المثال، إذا كنت تريد اختيار العمودين 2 و 3 وتجاهل العمود 4 وتحتاج العمود 5، يمكنك القيام بذلك كما يلي: selected_columns = df.iloc[3:, [2, 3, 5]] سيشتمل هذا على الصفوف من الصف 3 وما بعدها، والأعمدة 2 و 3 و 5.
  19. الجزء df.iloc[3:, 2:4] يستخدم لتحديد جزء معين من DataFrame باستخدام تقديم الصفوف والأعمدة المحددة. فـ: 3:: يعني ابتداءً من الصف رقم 3 وحتى نهاية الصفوف. هذا يتجاوز الصفوف الثلاثة الأولى (التي قد تحتوي على عناوين الأعمدة أو معلومات غير ضرورية). 2:4: يعني ابتداءً من العمود رقم 2 وحتى العمود رقم 3. وهكذا يتم اختيار العمودين الثاني والثالث مع تجاوز أول ثلاث صفوف في كل منها.
  20. الكود الذي كتبته لإنشاء DataFrame يبدو صحيحا بشكل عام، ولكن إليك طريقة أفضل لتحديد الأعمدة وإعطائها أسماء: # اختيار الأعمدة المحددة من DataFrame الأصلي selected_columns = df.iloc[3:, 2:4] # تحديد أسماء الأعمدة column_names = ['الأول', 'الثاني'] # إنشاء DataFrame df1 = pd.DataFrame(selected_columns.values, columns=column_names) بهذه الطريقة، سيتم تحديد الأعمدة 2 و 3 من DataFrame الأصلي (iloc[3:, 2:4]) وتخزينها في المتحول selected_columns. ثم تحديد أسماء الأعمدة وأخيرًا إنشاء DataFrame جديد باستخدام هذه الأعمدة وأسمائها.
  21. مبدئيا، لا فرق بينهما غير أن كلاهما طريقتان لهيكلة المشروع والتطبيق. على أن الطريقة الأولى أفضل (وضع المكونات في App.js)، وذلك لأن App هاهنا يعتبر مكونا جذرا تتفرع عنه باقي المكونات والصفحات بما في ذلك مكونات القالب العام مثل Header و Footer. ثم سيكون من السهل حقن هذا المكون داخل العنصر الجذر Root Element الذي يقوم تطبيق رياكت باستهدافه وانشاء التطبيق عليه. ميزة أخرى يمكن الاستفادة منها، وهي قابلية التطبيق للتوسع. ولنقل مثلا أننا قمنا بإطلاق إصدار ثان من التطبيق. آنذاك سوف لن يكون علينا إلا استبدال المكون الجذر App في صفحة index.js بالمكون الجذر الجديد الذي يحوي التطبيق الجديد دون استبدال أي مكونات فرعية أخرى. ملف index.js أيضا يعتبر ملفا رئيسيا يقوم باحتواء كامل عناصر التطبيق وملفاته ولواحقه ومكتباته، ويقوم بتهيئتها وتجهيزها للإستعمال المباشر. في حين أن App لا يعدو أن يكون مجرد مكون لا يفترض أن يتم فيه تهيئة أو تضمين أي ملفات خارجية، إلا في سياق يخصه.
  22. الشيفرة عبارة عن هيكلة HTML باستخدام وسوم HTML العادية وقواعد CSS العادية. بالنسبة للجزء الذي يخص عرض حاوية المحتوى، فهو مجرد تنسيق لها في حالتين: لما تكون القائمة الجانبية مفتوحة، يعطى لها هامش جانبي بقيمة 250 بكسل لأن القائمة تكون مفتوحة في هذا المكان. لما تكون القائمة معلقة، يعطى لها هامش جانبي بقيمة 0 بكسل لأن القائمة مغلقة ولا داعي لسحب المحتوى بـ 250 بكسل.
  23. لبناء قائمة جانبية قم أولا بتوصيف الهيكلة اللازمة: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="styles.css"> <title>Sidebar Example</title> </head> <body class="side-opened"> <div class="sidebar"> <div class="logo"> // </div> <ul class="nav-list"> <li><a href="#">رابط</a></li> <li><a href="#">رابط</a></li> <li><a href="#">رابط</a></li> <li><a href="#">رابط</a></li> </ul> </div> <div class="content"> <!-- المحتوى الرئيسي هنا --> </div> </body> </html> ثم أعط العناصر الموصوفة التنسيقات اللازمة: body { margin: 0; } .sidebar { height: 100vh; width: 250px; background-color: #333; position: fixed; left: 0; top: 0; overflow-x: hidden; padding-top: 20px; } .nav-list { list-style-type: none; padding: 0; } .nav-list li { padding: 10px; text-align: center; } .nav-list a { text-decoration: none; color: white; font-size: 18px; display: block; } .content { padding: 16px; } body.side-opened .content{ margin-left: 250px; } انتبه إلى أن العنصر content. يتم سحبه بـ 250 بكسل لما يكون الكلاس side-opened مسندا إلى عنصر body، ولذلك سيمكنك القيام بتبديل هذا الكلاس على عنصر body لفتح وإغلاق القائمة الجانبية. يمكن أن تسند هاته الوظيفة لزر معين.
  24. كلتا الطريقتان تمتلكان غرضا معينا، ولا يمكن الاستغناء بواحدة عن الأخرى ولكن في أغلب الحالات يتم التعامل مع تنسيقات css كملف خارجي بدل وضعها ضمن وسمي style في ملف html. ، وهذا لأن ذلك قد يحجز الكثير من حجم الملف إلى أن يكون التوسع في الملف والكتابة فيه متعذرا أو صعبا. ولذلك عموما، قم بفصل الملفين، إلا في حالات نادرة منها مثلا: أن تكون التنسيقات المضافة قليلة ولا تحجز حجما كبيرا من مساحة الملف أو طوله. أن تكون التنسيقات المضافة ديناميكية، كأن يتم توليدها من قبل لغة واجهة خلفية أو إطار عمل ما.
×
×
  • أضف...