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

El Sayed El Tohamy

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

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

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

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

    1

كل منشورات العضو El Sayed El Tohamy

  1. يحدث هذا الخطأ عندما لا يتم تعريف السكريبت start في الملف package.json لذلك يجب اتباع الخطوات التالية: 1- فتح الملف package.json والذهاب إلى الجزء الخاص بتعريف السكريبتات المسمى scripts والتأكد من وجود start 2- إذا لم يكون موجودًا يتم إضافته "scripts": { "start": "node server.js" } ملحوظة: قم بتغيير اسم الملف server.js بالملف الصحيح الذي تريد البدء به. 3- حفظ الملف، وتنفيذ الأمر npm start
  2. نعم ننقل جميع الشيفرات الموجودة بالملفات إلى ملف واحد كما هي بنفس المسميات
  3. الأمر بسيط إن شاء الله، نقوم بنقل جميع شيفرات الجافاسكريبت إلى ملف واحد وليكن اسمه script.js ثم يتم ربط هذا الملف مع كل صفحات الموقع عن طريق كتابة الأمر التالي آخر كل صفحة <script src="script.js"></script>
  4. الآمر يمكن أن يتم بأكثر من طريقة، ولكنهم جميعًا يعتمدون على نفس المفهوم، وهو وجود نسخة من المحتوى العربي ونسخة من المحتوى الإنجليزي، ويتم عرض المحتوى المناسب بناء على اختيار اللغة. هناك أسلوب ينشئ صفحة مستقلة للعربية وأخرى للإنجليزية، على سبيل المثال إنشاء صفحة HomeAr.html للغة العربية، <!-- HomeAr.html --> <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>موقعي متعدد اللغات</title> </head> <body> <!-- زر التبديل للإنجليزية --> <button id="ِEnglish">English</button> <!-- يتم كتابة محتوى الصفحة العربي هنا --> <script> function toEnglish() { window.location.href = 'HomeEn.html'; // Switch to English } document.getElementById('English').addEventListener('click', toEnglish); </script> </body> </html> وإنشاء صفحة أخرى HomeEn.html للغة الإنجليزية، <!-- HomeEn.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My Multilingual Website</title> </head> <body> <!-- زر التبديل للعربية --> <button id="ِArabic">عربي</button> <!-- يتم كتابة محتوى الصفحة الإنجليزية هنا --> <script> function toArabic() { window.location.href = 'HomeAr.html'; // Switch to Arabic } document.getElementById('Arabic').addEventListener('click', toArabic); </script> </body> </html> وفي كل صفحة يوجد زر يقوم بإظهار الصفحة الأخرى، وبهذا يمكننا التبديل بين اللغات. وهناك أسلوب آخر يعرض المحتويين في صفحة واحدة ويقوم بإظهار المحتوى المطلوب وإخفاء المحتوى الآخر، على سبيل المثال المحتوى العربي يوضع في حاوية div ونعطيها معرف id خاص بها ويتم إظهارها أو إخفاؤها على حسب اللغة، ونفس الطريقة للمحتوى الإنجليزي.
  5. بكل تأكيد تستطيع برمجة نظام للمخازن والمحاسبة باستخدام لغة البايثون، ويتم ذلك بالتعاون مع قواعد البيانات من أي نوع (أبسطها sqlite) المدعومة بشكل رائع من بايثون. الخطوات التي يجب عليك اتباعها لتطوير مثل هذا البرنامج: 1- تعلم أساسيات لغة البايثون 2- تعلم أساسيات قواعد البيانات والربط بين الجداول وأنواع العلاقات 3- كيفية تنفيذ أوامر قواعد البيانات من خلال البايثون 4- دراسة كافية في مجال المحاسبة وإدارة المخزون ليكون عندك فكرة عن كيفية التعامل الواقعي مع هذه المصطلحات الموضوع يحتاج ممارسة وصبرًا.
  6. تظهر هذه الأيقونة في الغالب عندما تقوم بإضافة الملف يدويًا، وهي تدل على استبعاد هذا الملف من بعض العمليات في vscode مثل عملية البحث، والتنسيق، ويعتبر هذا منطقيًا، لتسهيل عملية التطوير، على سبيل المثال: عند البحث عن كلمة معينة ، لا يشمل هذا الملف في عملية البحث، وعملية الاستبعاد تفيد في تجنب رفع هذه الملفات إلى مستود GitHub بالخطأ.
  7. قم بتجربة الطريقة التالية from ctypes import LibraryLoader dll = LibraryLoader.LoadLibrary("your_library.dll") # مع تغيير اسم الملف للمكتبة الديناميكية التي تريد استدعاءها
  8. نعم، اختفى الخطأ الأول الخاص بالمسافات البادئة. ملحوظة: يرجى كتابة الشيفرات داخل المحرر الخاص بها (عن طريق النقر على الرمز <>) لتسهيل عملية التشخيص. الخطأ الآن أنك تحاول استيراد المكتبة windll من ctypes وهي مكتبة تخص نظام التشغيل ويندوز، فإذا كان نظام التشغيل لديك غير الويندوز يرجى استخدام طريقة أخرى، على سبيل المثال: from ctypes import LibraryLoader, WinDLL windll = LibraryLoader(WinDLL) # الآن يمكنك استخدام # windll أرجو التجربة.
  9. هل تقصد مازالت نفس المشكلة؟ المفترض إذا طبقت التعليمات السابقة يختفي الخطأ. هل يمكنك التأكد من حفظ الملف وتنفيذ الملف الصحيح، ويفضل إغلاق المحرر وفتحه مرة أخرى، وإذا استمرت المشكلة أرجو إرفاق ملف الشيفرات نفسه.
  10. هذا الخطأ يحدث عندما يكون هناك خطأ في كتابة الصيغة syntax error ناتج عن حرف زائد أو ناقص، فالصيغة لديك ينقصها إما فاصلة أو أقواس معكوفة أو علامة تنصيص مزدوجة، أو توجد زيادة. على سبيل المثال الشيفرة التالية ينقصها فاصلة { "name": "Alice", "age": 25 "gender": "F" } لذلك سيظهر الخطأ Error: Parse error on line 3: ... "age": 25 "gender": "F"} ---------------------^ Expecting 'EOF', '}', ',', ']', got 'STRING' لمعالجة الخطأ يجب فحص المحتوى جيدًا والتأكد أن صيغة وهيكلة JSON مكتوبة بشكل صحيح، وإذا كانت تأتي من ملف نصي يجب التأكد أن القراءة من الملف والتحويل يتم بشكل صحيح.
  11. هل بحثت عن using Openpyxl, change excel direction from left to right
  12. يبدو أنك تستخدم إصدارًا قديمًا من مكتبة pandas، قم بتحديثها، أو يمكنك استخدام أمر الإغلاق بدلاً من الحفظ writer.close()
  13. أحييك على مجهودك وصبرك، وهذا هو حال تطوير البرمجيات يحتاج صبرًا هائلًا، هل الشيفرات تعمل أم تعطي لديك خطأً؟
  14. احذف السطر الأخير واكتب الشيفرات التي أرسلتها لك بدلاً منه مع استبدال DF بالاسم الموجود لديك وهو df import pandas as pd from openpyxl import load_workbook df = pd.read_excel('test.xlsx',sheet_name="sh1",header=None, engine='openpyxl') data = {'الإسم الأول': df.iloc[1::, 0] ,'إسم الأب': df.iloc[1::, 1],'أسم العائلة': df.iloc[1::, 2]} df = pd.DataFrame.from_dict(data) # df.to_excel("op1.xlsx",index=False) # اكتب الشيفرات هنا ولا تنس استيراد المكتبات
  15. إليك بعض الشيفرات التي تساعدك في إنجاز مهتمك # استيراد المكتبات اللازمة import pandas as pd from openpyxl import load_workbook from openpyxl.styles import Font, PatternFill, Border, Side, Alignment # إنشاء كائن ExcelWriter باستخدام محرك openpyxl writer = pd.ExcelWriter('test.xlsx', engine='openpyxl') # حفظ DataFrame كملف إكسيل باستخدام الكائن ExcelWriter DF.to_excel(writer, sheet_name='Sheet1', index=False) # الحصول على كائن workbook من الكائن ExcelWriter wb = writer.book # الحصول على كائن worksheet من الكائن workbook ws = wb['Sheet1'] data_font = Font(size=10, color='000000') for row in ws.iter_rows(): for cell in row: cell.font = data_font # حفظ الكائن ExcelWriter لتطبيق التغييرات على الملف writer.save() لاحظ أننا أنشأنا كائن writer ثم قمنا بحفظ بيانات DF في ملف إكسيل جديد، ثم حصلنا على كائن workbook أسميناه wb، ثم أنشأنا كائن ws، ثم بدأنا في تطبيق التصميم المطلوب، وبالآخر الحفظ باستخدام writer
  16. من الواضح أنك أنجزت الخطوة الأولى وهي الحصول على DataFrame اسمه DF إذن تحتاج لتنفيذ الخطوة الثانية مع تغيير الاسم 'test.xlsx' إلى الاسم المناسب. ولاحظ أننا في النهاية سنقوم بالحفظ عن طريق الكائن writer وليس DF
  17. وعليكم السلام ورحمة الله وبركاته، هذا سؤال جيد، سأعطيك بعض الإرشادات التي تساعدك في مهمتك، وكذلك تنمية مهارات التعلم الذاتي، 1- قم بقراءة ملف الإكسيل بواسطة مكتبة pandas ووضعه داخل DataFram 2- قم بإنشاء كائن باستخدام مكتبة openpyxl # إنشاء كائن ExcelWriter باستخدام محرك openpyxl writer = pd.ExcelWriter('test.xlsx', engine='openpyxl') مع تعديل اسم الملف 3- قم بقراءة workbook, worksheet من الكائن writer 4- قم بعمل التنسيقات المطلوبة 5- قم بحفظ الكائن writer
  18. ربما يكون بسبب سطر آخر، تأكد من تطبيق نفس الفكرة على كل DataFrame عندك، وتأكد من حفظ الملف.
  19. نعم، لأن هذه الطريقة تقوم بعمل نسخة مستقلة من DataFrame الأصلي، فأي تعديل عليها لن يؤثر على الأصلي جرب إضافة copy بالآخر.
  20. نعم، رغم أنه ليس خطأً، ولكنه تحذير هام جدًا يوضح احتمالية حدوث نتائج كارثية، ومعناه أنك تقوم بتعديل DataFrame مأخوذ من DataFrame أصلي ولكن التعديل الذي تقوم به لن يؤثر في DataFrame الأصلي لأنه مأخوذ بطريقة النسخ المستقل مثل df2 = df1[df1['المادة'] == 'علوم'] ولتجنب هذه المشكلة نقوم بأخذه بطريقة المرجعي، في هذه الحالة التعديلات سوف تؤثر على DataFrame الأصلي df2 = df1[df1['المادة'] == 'علوم'].copy() أما إذا كنت تعلم ما تفعله (على سبيل المثال تقوم بالتجربة فقط)، وتريد إخفاء التحذير، اكتب الشيفرة التالية pd.options.mode.chained_assignment = None
  21. وعليكم السلام ورحمة الله وبركاته، في مثل هذه الحالات التي يكون فيه كتابة شيفرات مكونة من عدة أسطر، يفضل كتابتها داخل وظيفة function ثم تطبيق هذه الوظيفة على DataFrame def get_grade(degree): if degree >= 85 and degree <= 100: return 'امتياز' elif degree >= 75 and degree < 85: return 'جيد جدًا' elif degree >= 65 and degree < 75: return 'جيد' elif degree >= 50 and degree < 65: return 'ضعيف' elif degree < 50 and degree >= 0: return 'راسب' else: return 'غير صحيح' df['التقدير'] = df['نتيجة المادة'].apply(get_grade)
  22. مرحبًا في الحقيقة هذا سؤال رائع، فلغة البايثون قد ذاع صيتُها في الآونة الأخيرة بشكل ملحوظة، وكما هو معروف أنها لغة برمجية عالية المستوى متعددة الاستخدامات، ولعلها تكون أول خيار يأتي على خاطرنا عندما تُذكر بعض المصطلحات مثل الذكاء الاصنطاعي والأمن السيبراني. إذن كيف يمكن لبايثون أن يفيدنا في التواصل بنظام الند للند Peer-to-Peer؟ تقدم بايثون مكتبة زاخرة فيما يخص التعامل مع الشبكات، فمن خلال هذه المكتبات يمكننا الاتصال بأي خادم ومعرفة حالته وحالة المنافذ به ports، وكذلك الإنصات لمنفذ معين على جهازنا لتلقي رسائل تأتي عبر هذا المنفذ، وبالتالي تسهل علينا عملية إرسال واستقبال البيانات الفورية. الرائع في هذا الأسلوب أننا فعليًا نتعامل بين جهازين ليس هناك خادم مركزي وسيط - كما ذُكر بالمقال - وبناء عليه فإن لغة البايثون قدمت لنا وسيلة لتنفيذ هذا الأسلوب عمليًا. ومن أشهر المكتبات التي تستخدم لهذا الغرض هي مكتبة السوكيت socket، ونستخدما كثيرًا عند التعامل مع الشبكات، وكذلك تستخدم في الأمن السيبراني لاختبار الخادم. وأعتقد أن بعضنا - إن لم يكن أغلبنا - قد تعامل مع تطبيق يوتورنت utorrent الذي يسمح بمشاركة الملفات عبر الأجهزة بنظام الند للند (النظيرين). وتوفر بايثون مكتبة تمكننا من تطوير تطبيقات مثل يوتورنت مثل مكتبة PyBitTorrent وهذا مثال للشيفرات التي يمكن استخدامها لتنفيذ هذا الأمر from PyBitTorrent import TorrentClient client = TorrentClient('~/Downloads/Big Buck Bunny (1920x1080 h.264).torrent') client.start() وبالتالي فإن استخدام بايثون يعتبر خيارًا رائعًا في حالة الرغبة في التعامل مع الشبكات، إضافة إلى ذلك يمكنك دمج خصائص الذكاء الاصطناعي لدعم هذه المهمة، على سبيل المثال محاولة التغلب على المشاكل مثل التأخير الذي يحدث عند القفزات بين العقد (كما جاء بالمقال)، وكذلك يمكن استخدام مكتبات الأمن السيبراني لاكتشاف الاختراقات والملفات السامة.
  23. الفرق أن pip list يقوم باستعراض جميع المكتبات بما فيها مكتبات pip نفسها مثل setuptools, wheel، أما pip freeze فإنه يستعرض المكتبات التي قمنا نحن بتثبيتها (وبالطبع الاعتماديات التي تحتاجها)، وتفيدنا هذه الطريقة عندما نريد حفظ قائمة بكل المكتبات - التي قمنا بتثبيتها - في ملف، وبالتالي يمكننا استخدام هذا الملف فيما بعد لتثبيت كل المكتبات بأمر واحد، # الأمر التالي يقوم بحفظ كل المكتبات والاعتماديات في ملف نصي pip freeze > requirements.txt # الأمر التالي يقوم بتثبيت كل المكتبات الذكورة بالملف pip install -r requirements.txt وإذا فتحت الملف نفسه ستجد مسجل فيه المكتبات بشكل يشبه التالي: feedparser==5.1.3 wsgiref==0.1.2 django==1.4.2
  24. في البداية أهنئك بما وصلت إليه وحرصك على تحصيل أعلى المراتب، في الحقيقة إجابة هذا السؤال لها عدة تفرعات، كلها تنصب في اتجاه واحد وهو الحفاظ على تركيزك وتفكيرك المنطقي، فهناك أسباب جسدية: التغذية الجيدة، وخصوصًا الفيتامينات النوم الكافي، النوم ليلًا، وعدم السهر الابتعاد عن كل ما يضر الجسم سواء من الأطعمة أو المشروبات مثل الخمور وغيرها وهناك أسباب دراسية: اكتساب مهارة برمجية على الأقل يوميًا التعرف على مجالات مختلفة في البرمجة وهناك أسباب لتنمية حل المشاكل والتفكير المنطقي: لا تتوقف أبدًا (يوميًا) عن ممارسة البرمجة تعلم الطريقة الصحيحة في حل المشاكل (وهذه أهم نقطة وسأجعلها آخر القائمة) تعرف على من هم في نفس المجال، وخصوصًا الأعلى منك خبرة حاول مساعدة الأخرين، فهذه ستجعلك تقوم بعملية البحث في موضوع محدد مما يكسبك مهارات إضافية بخصوص النقطة الأهم، وهي الطريقة الصحيحة لحل المشكلة يجب عليك فهم المطلوب جيدًا ولا تبدأ في العمل إلا لما تتأكد أن كل شيء واضح، حتى لا تضيع الوقت وتكتشف في النهاية أنه ليس المطلوبة تمرن على أساليب حل المشاكل قبل البدء في البرمجة عن طريق خرائط التدفق flowchart عند حل المشكلة لابد من تقسيمها إلى مشاكل أصغر (مشاكل أو مهام فرعية) عند حل المهمة الفرعية يكون تركيزك كله على هذه المهمة، لا تشغل بالك إطلاقًا بالمهمة التالية بعد حل المهمة الفرعية، لا تنتقل إلى التالية إلا بعد اختبارها جيدًا لا تحاول الوصول لأفضل أداء من البداية، ولكن في الأول حاول التركيز على المشكلة نفسها، وبعد ذلك قم بتحسينها مثال/ لو طُلب منك تنفيذ فاتورة تقرأ السعر والكمية وتحسب الإجمالي ثم تعرضه: تلاحظ أنها مكونة من 3 مهام: قراءة البيانات من المستخدم - إجراء الحسابات والإجمالي - عرض البيانات للمستخدم ابدأ في قراءة البيانات من المستخدم ولا تنتقل لجزئية الحسابات إلا بعد الانتهاء من المهمة الأولى واختبارها، ولا تحاول اختبار القيم الغير صالحة التي قد يدخلها المستخدم في هذه المرحلة، ولكن بعدما تتم المهمة الأساسية (الفاتورة كلها)، تبدأ في تحسينها عن طريق اختبار القيم السالبة أو ربما لا يدخل قيمًا عددية كل هذه تحسينات مطلوبة بالتأكيد وضرورية بل إجبارية، ولكن وقتها يكون بعد الانتهاء من المهمة الأساسية. هذا ملخص سريع لتنمية مستواك ومهاراتك، ويٌفضل إذا أمكن يكن معك مدرب أو شخص ذو خبرة يتابع تقدمك، ولا يمنع أن تلتحق بإحدى الشركات على سبيل التدريب ولو بدون مقابل لاكتساب مهارات فنية جديدة، إضافة إلى مهارات العمل الجماعي.
  25. يفضل أولًا تنفيذ عملية البحث ووضعها في DataFrame جديد، ثم تنفيذ drop_duplicates عليه.
×
×
  • أضف...