-
المساهمات
1773 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
1
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Khaled Osama3
-
وعليكم السلام احسنت عملا. برافو استخدمت ال OOP كويس و عرفت تظبط ال inheritance بشكل كويس و ال exceptions. و من الرائع ايضا استخدامك للرموز و العبارات الموضحة لل errors. و لكن لدى بعض النصائح: من الافضل انك توضح ال comments فى اجزاء الكود أكثر ليسهل على باقى المطوريين فهمه بشكل اسرع. لازم تجرب الكود عن طريق انك تعمل فايل تانى وتجرب تستخدم فيه ال objects من كل ال classes اللى عملته و هذا ما نطلق عليه ال Unit test: و هو تجربه الكود الخاص بك من الافضل ايضا ان لا تجعل الكود كله فى نفس الملف ففى المشاريع الكبيرة سوف يصعب عليك فهم و تعديل الكود بعد ذلك. استمر في التطوير، والبحث، واستكشاف مفاهيم جديدة. ما شاء الله، بدايتك ممتازة! و نعتذر بشدة عما حدث سلام عليكم
- 2 اجابة
-
- 1
-
-
اعتذر لك و بشدة بسبب هذا ولكم من فضلك هل يمكنك سؤالى هنا او يمكن ارفاق رابط السؤال الذى سألته و انا ساجيب عليك من فورى
-
اهلا بحضرتك نتعذر لك بسبب هذا من فضلك اخبرنى ماهو سؤالك؟ و إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات لان هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
-
سلام عليكم يوجد الكثير من المواقع التى توفر تصميمات جاهزة لعمل عروض تقديمية مجانية. مثل: Canva و Google Slidesو Prezi وغيرهم. اما بالنسبة لكتابة كود بلغة بايثون لانشاء عرض تقديمي او باي لغة برمجة اخرى او برامج متخصصة في ذلك ؟ يمكنك ذلك باستخدام مكتبة ال python-pptx فى ال Python و هذا مثال على ذلك. from pptx import Presentation # إنشاء عرض تقديمي جديد prs = Presentation() # إضافة شريحة جديدة slide_layout = prs.slide_layouts[0] # اختيار تصميم الشريحة slide = prs.slides.add_slide(slide_layout) # إضافة عنوان إلى الشريحة title = slide.shapes.title title.text = "العنوان الرئيسي" # إضافة نص آخر إلى الشريحة subtitle = slide.placeholders[1] subtitle.text = "نص توضيحي" # حفظ العرض التقديمي prs.save('presentation.pptx') و يمكنك تثبيتها بواسطة الامر: pip install python-pptx
-
و عليكم السلام Maintainability Index :هو مقياس طورته مايكروسوفت لقياس سهولة صيانة الكود البرمجي. يتم حساب هذا المؤشر بناءً على مجموعة من العوامل التي تشمل: 1. التعقيد الحلقي (Cyclomatic Complexity): وهو مقياس لتعقيد الشيفرة البرمجية ويشير إلى عدد المسارات المختلفة التي يمكن أن يتخذها البرنامج. 2. طول الكود (Lines of Code): يشير إلى عدد الأسطر البرمجية المكتوبة. 3. مؤشر هالستيد (Halstead Volume): وهو مقياس يستند إلى عدد المشغلين والمعاملات في الكود، ويقيس مقدار المعلومات المطلوبة لفهم الشيفرة. والمؤشر يعطي نتيجة على مقياس من 0 إلى 100: - 100: يشير إلى أن الكود سهل الصيانة جدًا. - 0: يشير إلى أن الكود صعب الصيانة. فكلما كان المؤشر قريب من ال 100 فيعتبر الكود سهل الصيانة. وغالبًا، يتم استخدام هذا المؤشر في أدوات تحليل الكود الساكن (Static Code Analysis) لتقديم تقديرات حول مدى جودة الكود من حيث الصيانة وتسهيل تحديد النقاط التي قد تتطلب إعادة صياغة أو تحسينات.
- 5 اجابة
-
- 1
-
-
هل يمكنك ارفاق الخطأ اللذى يظهر لك
-
Docker و Neovim : يمكن أن يكونا استثمارًا مفيدًا لوقتك اليومي بناءً على احتياجاتك. Docker يسهل إدارة البيئات المختلفة وتشغيل التطبيقات على نحو متسق ومستقر، خاصة عند العمل في فرق أو التعامل مع إنتاج وتطوير متعدد الأنظمة. و هى من اكثر الانظمة استخداما فى الشركاتز أما Neovim، فهو نسخة محسنة من Vim، يوفر تحريرًا قويًا ومخصصًا للكود، ويمكنك تحسين كفاءتك في التحرير بمرور الوقت. Golang صحيح أنها ليست كائنية التوجه بشكل تقليدي كما هو الحال في لغات مثل Java أو Python. ولكن Golang تعتمد على البساطة والوضوح، وتستخدم مبدأ التكوين (composition) بدلاً من التوريث (inheritance) لزيادة إعادة استخدام الشيفرة. يساعد ذلك في بناء تطبيقات قابلة للتوسع وأكثر وضوحًا. كما أن نظام الـ goroutines وchannels في Golang يساعد في التعامل مع التزامن بكفاءة عالية، وهو أمر حيوي للتطبيقات الكبيرة. أما عن الأطر، فهناك مكتبات وأطر مثل Gin و Echo و Fiber التي تعتبر خفيفة وتدعم عملية تطوير فعالة في Golang، على الرغم من أن نهج Golang يكون أحيانًا أقل تعقيدًا من بعض الأطر الضخمة الموجودة في لغات أخرى. ولكن Golang ما زالت حديثة ليست مثل: java و python على سبيل المثال. فمن الافضل الا تسثمر فيها وقتك الان,
-
أشهر تقنيات الـ Caching المستخدمة مع PHP بتعتمد على نوع البيانات التي تريد تخزينها وسيناريو الاستخدام. ويوجد أكثر من تقنية مشهورة شغالين بيها مع PHP: OPcache هذا مثل محسن للـ opcode مدمج مع PHP. بيشتغل إنه يخزن النسخ المترجمة من ملفات PHP في الرام (الذاكرة)، وهذا يقلل من وقت تنفيذ الأكواد لأن مفيش احتياج إن الملفات تترجم كل مرة تتطلب فيها. وهذا بيحسن الأداء بشكل كبير. فعال جدا في تحسين أداء تطبيقات PHP، وسهل في الإعداد والاستخدام، وبينفع مع معظم المواقع والتطبيقات. Memcached هذا نظام تخزين مؤقت موزع في الرام (الذاكرة)، وبيتستخدم لتخزين البيانات المؤقتة وتخفيف الحمل على قاعدة البيانات. ممكن تخزن به جلسات المستخدم، نتائج الاستعلامات، أو أي بيانات اخري تريد تخزينها بشكل مؤقت. سريع جدا، ويدعم التوزيع على أكتر من سيرفر، ومستخدم في التطبيقات الكبيرة التي عليها ضغط. Redis هذا مثل قاعدة بيانات في الرام (in-memory data store) بتشتغل كمخزن بيانات، وCache، ووسيط رسائل. بيدعم أنواع كثيره من البيانات مثل السلاسل والقوائم والمجموعات. بيدعم ميزات متقدمة مثل استمرارية البيانات (persistence)، والنسخ الاحتياطي، وبيتعامل مع البيانات المعقدة. Redis يعمل في التطبيقات التي محتاجة أداء عالي. Varnish هذا مسرع HTTP بيشتغل كطبقة بين المستخدم والسيرفر، وبيتخزن به محتوى HTTP مؤقتا في الرام لتحسين سرعة تحميل الصفحات. فعال في تسريع تحميل الصفحات، وبيقلل الحمل على السيرفر، وبيستخدم بشكل شائع في المواقع اللي عليها حركة كبيرة. الخلاصه إذا كنت محتاج تحسين أداء تنفيذ PHP نفسه، إذا OPcache هو الأنسب. إذا كنت محتاج تخزين مؤقت للبيانات بشكل عام (مثل نتائج الاستعلامات أو جلسات المستخدم)، اذا Memcached أو Redis هما الأنسب. إذا كنت محتاج تسريع تحميل صفحات الويب من خلال تخزين مؤقت لمحتوى HTTP، اذا Varnish سيكون خيار مناسب.
-
وعليكم السلام يمكنك تحويل ملفات CSV إلى قاعدة بيانات SQL بسهولة باستخدام مكتبة مثل: pandas sqlite3 SQLAlchemy إليك كود باستخدام sqlite3: import pandas as pd import sqlite3 # تحميل ملف CSV df = pd.read_csv("data.csv") # إنشاء اتصال بقاعدة البيانات conn = sqlite3.connect("database.db") # تحويل البيانات إلى SQL df.to_sql("table_name", conn, if_exists="replace", index=False) # إغلاق الاتصال بقاعدة البيانات conn.close() اما الفائدة من تحويل CSV إلى SQL في مجال تعلم الآلة والتعلم العميق: إذا كنت تعمل مع بيانات ضخمة، فوجود البيانات في قاعدة بيانات SQL يسهل التعامل مع ال complex queries وأكثر كفاءة مقارنةً بـ CSV الذي يعاني من مشاكل عندما تكون البيانات كبيرة. و ال SQL يقدم هيكلًا منظمًا للبيانات، حيث يمكنك الربط بين الجداول والاستعلام عن البيانات بطريقة أكثر تماسكًا من مجرد ملفات CSV . اما في المشاريع الحقيقية فغالبًا ما تحتاج إلى إجراء تعديلات متكررة على البيانات، سواء بإضافة بيانات جديدة أو تعديل الموجودة، وهو ما يتم بسهولة باستخدام SQL. و ذلك يتم استخدام ال SQL بشكل رئيسي. اما ال CSV: يتم استخدامه بشكل مؤقت أو لنقل البيانات بين الأنظمة المختلفة، ولكنه ليس مثاليًا لتخزين البيانات بشكل دائم بسبب محدودياته في الأداء والتنظيم. بايثون يوفر لك الأدوات للتعامل مع كليهما، مما يسهل التنقل بينهما حسب الحاجة في مشروعك.
- 7 اجابة
-
- 1
-
-
يمكن ان تستخدم دالة اسمها ToLower() اللي بتشتغل على النصوص (Strings). string text = "HELLO WORLD"; string lowerText = text.ToLower(); Console.WriteLine(lowerText); // هيطلعلك النص: hello world في هذا المثال، النص "HELLO WORLD" تم تحويله بالكامل إلى أحرف صغيرة باستخدام ToLower(). كل ما عليك فعله هو استدعاء هذه الدالة على النص الذي تريد تحويله.
-
من فضلك اذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل. أما إذا كان سؤال عام فيرجي ارسال كود و صورة للمشكلة وذلك لمساعدتك بشكل أفضل.
- 1 جواب
-
- 1
-
-
وعليكم السلام argv هو اختصار لـ argument vector. يتم استخدامه لجلب قائمة بالوسائط (arguments) التي يتم تمريرها إلى البرنامج عند تشغيله من سطر الأوامر او cmd. sys.argv يمن العناصر. - العنصر الأول (sys.argv[0]) يحتوي على اسم البرنامج أو المسار الذي تم تشغيله من خلاله. - العناصر التالية (sys.argv[1], sys.argv[2])و غيرها. تحتوي على الوسائط التي تم تمريرها من سطر الأوامر عند تشغيل البرنامج. و نوضح ذلك بمثال و نقل ان لديك برنامج بايثون يسمى task.py، وكتبت داخله الكود التالي: import sys # طباعة قائمة الوسائط الممررة إلى البرنامج print("Arguments passed:", sys.argv) # طباعة كل وسيطة على حدة print("Program name:", sys.argv[0]) print("First argument:", sys.argv[1]) print("Second argument:", sys.argv[2]) print("Third argument:", sys.argv[3]) إذا قمت بتشغيل البرنامج من سطر الأوامر CMD على الشكل التالي: python example.py arg1 arg2 arg3 سيظهر لك الناتج التالي: Arguments passed: ['example.py', 'arg1', 'arg2', 'arg3'] Program name: example.py First argument: arg1 Second argument: arg2 Third argument: arg3 و يمكن استخدامه إذا كنت تريد إنشاء برامج تتعامل مع المدخلات القادمة من سطر الأوامر، مثل البرامج التي تعتمد على وسائط لتغيير سلوكها حسب المعطيات التي يتم تمريرها عند التشغيل. و من فضلك إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
- 3 اجابة
-
- 1
-
-
دالة to_csv الموجودة في مكتبة pandas تُستخدم لتحويل ال (DataFrame) إلى ملف CSV. و حفظها. import pandas as pd # إنشاء إطار بيانات بسيط data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'San Francisco', 'Los Angeles']} df = pd.DataFrame(data) # حفظ البيانات في ملف CSV df.to_csv('output.csv', index=False) ولكن من فضلك إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
- 2 اجابة
-
- 1
-
-
فى هذا المثال new Promise((resolve, reject) => { setTimeout(() => resolve(1), 1000); }); الرقم 1 الذي تم تمريره إلى resolve(1) يمثل القيمة التي سيتم تمريرها كـ نتيجة عند نجاح الـ Promise. و ذللك يحدث: عند استدعاء resolve(1), يتم تمرير القيمة 1 كـ "النتيجة" إلى الـ Promise. أي شيء داخل الـ resolve() يمثل النتيجة التي ستعيدها الـ Promise بعد أن يتم الوفاء بها . إذا أزلت 1 فسيظل الكود يعمل ولكن النتيجة ستكون undefined بدلاً من قيمة محددة مثل 1. اما فى الدرس السابق فمن الممكن ان كان التركيز على فهم مبدأ الـ Promises وليس على القيمة التي يتم تمريرها. و لذلك اذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
-
تأكد اولا من تشغيل البيئة الافتراضية إذا كنت تستخدم بيئة افتراضية (مثل venv )، فتأكد من أنك قمت بتفعيلها قبل تشغيل البرنامج. عن طريق: .\venv\Scripts\activate ثم تأكد من أنك تثبت المكتبة في البيئة الافتراضية الصحيحة التي تستخدمها. يمكنك التحقق من وجود المكتبة باستخدام الأمر التالي: pip show SpeechRecognition إذا كانت المكتبة مثبتة، ستحصل على معلومات عنها. اما إذا لم تكن مثبتة، حاول تثبيتها مجددًا عن طريق: pip install SpeechRecognition و إذا لم تنجح الخطوات السابقة، حاول إلغاء تثبيت المكتبة ثم إعادة تثبيتها: باستخدام كل امر على حدى. pip uninstall SpeechRecognition pip install SpeechRecognition وإذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . وذلك لمساعدتك بشكل أفضل.
-
الفرق بينهم : أن Gaussian NB مخصص لالبيانات العددية المستمرة مثل: التنبؤ بما إذا كان المريض يعاني من مرض معين بناءً على عمره وضغط دمه. اما Categorical NB: يفترض أن الخصائص هي قيم فئوية منفصلة (أي أن الخصائص تأخذ عددًا محدودًا من القيم المميزة). يتم معرفة احتمالية كل خاصية وفقًا لتكرارها داخل الفئة. مثل: اذا كنت تحاول تصنيف النصوص (مثل رسائل البريد الإلكتروني إلى span أو non span) بناءً على وجود كلمات معينة و اذا كان هذا السؤال فى درس من الدورات فستجد أسفل الدرس صندوق للتعليقات كما هنا، من فضلك يرجي طرح الأسئلة هناك وذلك لمعرفة الدرس الذي تريد الإستفسار عنه و مساعدتك بشكل أفضل.
-
لاحظ أنك ستجد أسفل الدرس صندوق للتعليقات كما هنا، من فضلك يرجي طرح الأسئلة هناك حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة بالأسئلة الخاصة بالدورات هنا وذلك لمعرفة الدرس الذي تريد الإستفسار عنه و مساعدتك بشكل أفضل. و,لاكن كحل سريع عليك عند استخدام Flexbox، إذا كان لديك عنصر أب (container) يحتوي على عناصر (items) وتريد محاذاتها في المركز مع الالتفات بشكل صحيح، يجب عليك ضبط بعض الخصائص الخاصة بـ Flexbox: .container { display: flex; justify-content: center; /* محاذاة العناصر أفقياً في المركز */ align-items: center; /* محاذاة العناصر عمودياً في المركز */ flex-direction: column; /* يمكن استخدامه لجعل العناصر في عمود واحد إذا كنت تريد ذلك */ text-align: center; /* محاذاة النصوص في وسط العنصر */ } .item { /* خيارات إضافية مثل الهوامش (margin) إذا لزم الأمر */ } او يمكنك استخدام flex-wrap: wrap; إذا كنت تريد أن يتم التفاف العناصر عندما لا يتسع العرض .container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; }
-
وعليكم السلام، طالما قمت بمسح مكتبة مثبّتة على جهازك (وليس داخل البيئة الافتراضية)، فلن يؤثر على المكتبات المثبّتة داخل البيئة الافتراضية في بايثون. البيئة الافتراضية (Virtual Environment): هي نسخة معزولة تحتوي على البايثون الخاصة بها والمكتبات الخاصة المثبتة فيها. حتى لو قمت بمسح مكتبة على مستوى النظام الأساسي(OS) ، فإن المكتبة داخل البيئة الافتراضية ستظل كما هي.
-
إذا كان هذا سؤال خاص بدرس من دروس الدورة فستجد أسفل الدرس صندوق للتعليقات كما هنا، من فضلك يرجي طرح الأسئلة هناك حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة بالأسئلة الخاصة بالدورات هنا وذلك لمعرفة الدرس الذي تريد الإستفسار عنه و مساعدتك بشكل أفضل.
-
لنقل انك انشأت ملف يدعى project ثم حدد المشار الى داخله عن طريق mkdir project cd project ثم انشأ البيئة الافتراضية و قم بتفعيلها: python -m venv Heart Heart\Scripts\activate لاحظ انك فى نفس فولدر project ثم ثبت جميع المكتبات اللى تحتاجها باستخدام pip. و فى نفس الفولدر انشا ملفات البايثون و قم بتشغيلها
- 10 اجابة
-
- 1
-
-
اذا من الافضل ان يكون اسم ملف البيئة الافتراضية مختلف عن اسم ملف المشروع. و يمكنك إنشاء ملف فى امتداد .py ثم ابدأ بكتابة الكود فىه
- 10 اجابة
-
- 1
-
-
إذا كان هذا سؤال خاص بدرس من دروس الدورة فستجد أسفل الدرس صندوق للتعليقات كما هنا، من فضلك يرجي طرح الأسئلة هناك حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة بالأسئلة الخاصة بالدورات هنا وذلك لمعرفة الدرس الذي تريد الإستفسار عنه و مساعدتك بشكل أفضل.
- 10 اجابة
-
- 1
-
-
و ستجد أسفل الدرس صندوق للتعليقات كما هنا، فمن فضلك يرجي طرح الأسئلة هناك حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة بالأسئلة الخاصة بالدورات هنا وذلك لمعرفة الدرس الذي تريد الإستفسار عنه و مساعدتك بشكل أفضل. و كحل سريع فإن الملف requirement.txt الذى يحتوى على المكتبات يستخدم عندما نريد تثبيت جميع المكتبات فى امر واحد. و هذا يستخدم عند تثبيت المشروع على ال خادم (server).
- 2 اجابة
-
- 1
-
-
للاسف لا لان هناك بعض الامور التي يجب أخذها بعين الاعتبار قبل تقديمه إلى Google Play: من ضمنها حقوق الطبع والنشر (Copyright) فهى تتأكد من عدم انتهاك حقوق الطبع والنشر أو تقديم محتوى محمي بشكل غير قانوني. فإذا كنت تستخدم YouTube API، قم بتقديم تفاصيل واضحة حول استخدامك في وصف التطبيق واتباع سياسات YouTube بخصوص كيفية استخدام المحتوى.