-
المساهمات
785 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبد الوهاب بومعراف
-
عادة لا نقوم بالإجابة على أسئلة الامتحانات والاختبارية، سأحاول شرح الطريقة والكيفية لمساعدتك على حلها بنفسك، يمكنك البدء بأن تطلب من المستخدم إدخال رقم باستخدام input() وحوّله إلى عدد صحيح باستخدام int(). والتحقق من القسمة باستخدام معامل الباقي %؛ فإذا كان الرقم يقبل القسمة على 10، النتيجة ستكون num % 10 == 0، وإذا كان الرقم يقبل القسمة على 5، النتيجة ستكون num % 5 == 0. يمكنك جمع الشروط للتحقق من القسمة على 10 و5 معا باستخدام شرط مركب بـ and. وكتابة الشروط في الكود باستخدام if للتحقق من الشرط الأول، وelif للتحقق من الشروط الأخرى، وelse للحالة الأخيرة. وبناء على تلك الشروط، يمكنك طبع الرسالة المناسبة. ستساعدك هذه المصادر للتعلم بشكل أفضل: العمليات العددية في بايثون وهذه المقالة:
-
العفو. العمود "target" في مجموعة بيانات مرض القلب يمثل الهدف أو النتيجة التي نريد التنبؤ بها باستخدام نموذج تعلم الآلة. وفي هذه الحالة، هو مؤشر على وجود مرض القلب لدى المريض. أما القيم في العمود "target": 0: يعني أن الشخص ليس لديه مرض القلب (سليم). 1: يعني أن الشخص مصاب بمرض القلب. وهذا العمود يستخدم كناتج (Output) أو المتغير التابع في نماذج التعلم الآلي لتدريب النموذج على التنبؤ بحالة القلب بناء على باقي الخصائص (Features) في مجموعة البيانات.
- 10 اجابة
-
- 1
-
معذرة على التأخر في الرد. بالنسبة لسؤالك الجديد، فتلك القيم تشير إلى نوعية استجابة القلب للتمرين. فالقيم المختلفة تعكس حالات صحية مختلفة، مثل التغيرات في تدفق الدم إلى القلب وما إلى ذلك. ف Oldpeak يقيس انخفاض الـ ST على مخطط كهربية القلب (ECG) بعد التمرين أي أنه يعكس مدى انخفاض تدفق الدم إلى أجزاء من القلب، وهو مؤشر على وجود مشكلات قلبية محتملة مثل نقص التروية. أما ال ST Slope فهو عبارة عن منحدر القطعة ST على مخطط كهربية القلب أثناء وبعد التمرين. بالنسبة للقيم في الملف فهي توضح: - Upsloping (1): منحدر صاعد، قد يكون طبيعيا. - Flat (2): مسطح، قد يشير إلى نقص التروية. - Downsloping (3): منحدر هابط، غالبا ما يرتبط بنقص التروية القلبية الخطيرة. وال Oldpeak يمثل انخفاض الـ ST بوحدات الفولت في حين أن ST Slope يشير إلى تصنيف منحدر الـ ST أثناء وبعد التمرين إلى صاعد، مسطح، أو هابط.
- 10 اجابة
-
- 1
-
معرفة خوارزميات تعلم الآلة والتعلم العميق تعتبر أساسا قويا للبدء في هذا المجال، ولكن تعلم مجالات إضافية مثل رؤية الحاسوب أو معالجة اللغة الطبيعية يمكن أن يفتح أمامك آفاقا أوسع وفرصا أكبر. فمجال رؤية الحاسوب يعتبر مفيدا خاصة إذا كنت مهتما بتحليل الصور والفيديوهات، مثل التعرف على الوجوه أو تشخيص الأمراض من الصور الطبية. ومن جهة أخرى، معالجة اللغة الطبيعية مهمة جدا للتطبيقات التي تتعامل مع النصوص والكلام، مثل تحليل النصوص أو الترجمة الآلية. لهذا وعندما تفكر في تخصصك، من الجيد أن تنظر إلى التطبيقات العملية للمجالات التي تتعلمها. فإذا كنت مهتما بمجال معين مثل الطب، فإن التخصص في تطبيقات تعلم الآلة المتعلقة بالطب يمكن أن يجعل منك خبيرا ويزيد من فرصك الوظيفية فكما تعلم الشركات عادة تبحث عن مهندسين يمكنهم العمل على مشاريع متعددة تشمل مختلف جوانب تعلم الآلة. لهذا فالتوسع في مجالك ليشمل رؤية الحاسوب أو معالجة اللغة الطبيعية يمكن أن يعزز من مهاراتك ويجعلك أكثر قدرة على العمل في مشاريع متنوعة ومعقدة لأن التخصص في مجال معين يمكن أن يجعلك أكثر خبرة ويسهل عليك العثور على فرص عمل محددة. يمكنك أن تستفيد أكثر من هنا: مقال عن الرؤية الحاسوبية
- 3 اجابة
-
- 1
-
معادلات الحالة هي معادلات رياضية تعبر عن الديناميكيات الداخلية للنظام. بالنسبة لروبوت ثنائي الأرجل، يمكن أن تتضمن معادلات الحالة ما يلي: معادلات الحركة الخطية والدورانية لكل جزء من أجزاء الروبوت. علاقات القوى والعزوم الناتجة عن المحركات. معادلات توازن الجسم الكلي للروبوت. مثلا هذا مثال على معادلات الحالة لروبوت بسيط ثنائي الأرجل: x˙=Ax+Bu حيث أن x هو متجه الحالة الذي يشمل المتغيرات مثل الموقع والسرعة والزوايا الزاوية وأما u فهو متجه التحكم (مثل عزم الدوران من المحركات). بالنسبة لتوابع النقل فهي تستخدم لتحليل استجابة النظام لدخل معين. بالنسبة لروبوت ثنائي الأرجل، يمكن أن تشمل توابع النقل: استجابة الزاوية الناتجة عن عزم الدوران المطبق. استجابة الموقع الناتجة عن قوة الدفع. بحيث أن وظيفة النقل العامة تتمثل في: G(s)= Y(s) / U(s) بحيث أن G(s) هو تابع النقل، و Y(s) هو المخرجات (مثل زاوية المفصل)، وأما U(s) هو الدخل. نقاط الاتزان هي الأخرى تعبر عن الحالات التي يكون فيها النظام في حالة استقرار دون تغيير بمرور الوقت. ولتحديد نقاط الاتزان لروبوت ثنائي الأرجل، نحتاج إلى حل المعادلات التي تجعل المشتقات الزمنية للمتغيرات تساوي الصفر: x˙= 0 يمكن استخدام MATLAB لنمذجة ومحاكاة الروبوت ثنائي الأرجل. إليك مثال عام على كيفية البدء في نمذجة الروبوت: إعداد المتغيرات: % إعداد المتغيرات والمعلمات m1 = 1; % كتلة الجزء الأول m2 = 1; % كتلة الجزء الثاني l1 = 1; % طول الجزء الأول l2 = 1; % طول الجزء الثاني g = 9.81; % تسارع الجاذبية % معادلات الحالة A = [...]; % مصفوفة الحالة B = [...]; % مصفوفة التحكم C = eye(4); % مصفوفة الإخراج D = zeros(4,2); % مصفوفة التداخل مثال على إنشاء النموذج: sys = ss(A,B,C,D); % استجابة النظام للدخل t = 0:0.01:10; % الوقت u = [...]; % الدخل (عزم الدوران) [y,t,x] = lsim(sys,u,t); % رسم النتائج figure; plot(t, y); xlabel('الوقت (ثواني)'); ylabel('استجابة الزوايا'); title('استجابة النظام للروبوت ثنائي الأرجل'); لا نقوم عادة بالإجابة على الأسئلة الاختبارية وأسئلة الامتحانات هنا، لهذا قمت بشرح الموضوع بشكل عام يمكنك التوسع أكثر من هنا:
-
لإنشاء موقع متكامل كما ذكرت ستحتاج بالإضافة لمهارات واجهة المستخدم التي تملكها إلى تعلم الأمور التالية: لغة برمجة للواجهة الخلفية: اختيار لغة مثل PHP واستخدام إطار العمل Laravel، أو اختيار Python مع إطار العمل Django. إدارة قواعد البيانات: تعلم كيفية استخدام قواعد البيانات مثل MySQL أو PostgreSQL لإنشاء وإدارة قواعد البيانات. تطوير واجهات برمجة التطبيقات (APIs): تعلم كيفية بناء واجهات برمجة التطبيقات باستخدام REST أو GraphQL لتمكين الاتصال بين الواجهة الأمامية والخلفية. المصادقة وإدارة الجلسات: تعلم كيفية إنشاء أنظمة تسجيل الدخول، تسجيل المستخدمين، وإدارة الجلسات بطريقة آمنة. التكامل مع خدمات خارجية: تعلم كيفية التكامل مع بوابات الدفع وخدمات البريد الإلكتروني إذا كنت تحتاج إليها. هذه المهارات والخبرات ستساعد في بناء موقع متكامل وقوي يشمل جميع الوظائف المطلوبة، وهي ضرورية لأي مبرمج، يمكنك التوسع أكثر من خلال قراءة وتصفح هذه المقالات:
- 2 اجابة
-
- 1
-
يمكنك ذلك لكن الأمر يعتمد على مدى وحجم تعقيد المشروع لهذا عليك أن تفهم متطلبات المشروع بشكل جيد وكامل من قبل العميل، وفهم وثائق API لنظام الصيدلية جيدا لمعرفة كيفية الاتصال به واستخدام مختلف نقاط الاتصال (endpoints). وبما أنك درست الكورس جيدا، حينما تكون في تطبيق Laravel يمكنك استخدام مكتبة HTTP مثل Guzzle لإجراء طلبات إلى API نظام الصيدلية وإنشاء خدمات أو فئات منفصلة لإدارة الاتصال بـ API وتنفيذ المهام المختلفة مثل إرسال بيانات الطلب، استرداد بيانات المنتج واستدعاء هذه الخدمات من داخل موقع Laravel كلما احتجت للتفاعل مع نظام الصيدلية، مثل عرض بيانات المنتج أو تسجيل طلب جديد. لكن قد تحتاج أيضا إلى تنفيذ إجراءات أمان مناسبة مثل التوثيق باستخدام مفاتيح API أو رموز المصادقة حسب متطلبات API لنظام الصيدلية.
-
العمود الذي يحتوي على القيم 0 و 1 يمكن اعتباره متغيرا ثنائيا (Binary Variable) وهو عادة ما يمثل حالتين مختلفتين أو خيارين. في حالة عمود "fasting blood sugar"، فهو يشير إلى حالة سكر الدم عند الصيام، حيث: 0: يعني أن نسبة السكر في الدم عند الصيام طبيعية. 1: يعني أن النسبة عند الصيام مرتفعة أو غير طبيعية. يمكننا استخدام المتغيرات الثنائية بشكل مباشر في النماذج التحليلية والإحصائية لأنها تحتوي على قيمتين فقط تسهل على النماذج فهمها ومعالجتها وهذه أمثلة على متغيرات ثنائية مشابهة: الجنس (sex): 0 قد يمثل الإناث و1 قد يمثل الذكور. الذبحة الصدرية أثناء التمرين (exercise angina): 0 يعني عدم وجود ذبحة صدرية أثناء التمرين و1 يعني وجودها. رسم القلب عند الراحة (resting ecg): يمكن أن يحتوي على 0 و1 (وفي بعض الأحيان أكثر من ذلك إذا كان هناك أنواع متعددة من رسم القلب عند الراحة).
- 10 اجابة
-
- 1
-
الفرق بينها يكمن في الغرض والاستخدام والطريقة التي يتم بها تمثيل عملية حل مشكلة معينة في البرمجة وهندسة البرمجيات، فالخوارزمية هي خطة لحل مشكلة، أما الشيفرة الزائفة هي وصف شبه برمجي للخوارزمية، والمخطط الانسيابي هو تمثيل بصري لهذه الخطوات. فالخوارزمية هي وصف دقيق لمجموعة من الخطوات التي تنفذ لحل مشكلة معينة أو لتحقيق هدف محدد. أين تعتمد على التسلسل المنطقي وتكون واضحة ومباشرة لتوجيه عملية التنفيذ. في حين أن الشيفرة الزائفة، أو الكود الكاذب، هي تمثيل شبه برمجي للخوارزمية، يكتب بلغة مفهومة للبشر، ويهدف إلى توضيح منطق الخوارزمية دون الالتزام بقواعد لغة برمجة معينة بحيث يستخدم لشرح الأفكار وتسهيل التواصل بين المبرمجين وغير المبرمجين. بينما المخطط الانسيابي هو تمثيل بياني للخوارزمية، يستخدم الأشكال والصناديق لتمثيل الخطوات والإجراءات، والأسهم لتوضيح تدفق العملية. يُسهل فهم تسلسل الخطوات ويوضح العلاقات بينها، ويستخدم في تصميم البرمجيات وتوثيق العمليات. وهذه أمثلة تبين الفروقات: هنا لدينا خوارزمية لحساب مجموع الأعداد من 1 إلى N: ابدأ. ضع المجموع = 0. ضع i = 1. طالما أن i ≤ N، قم بما يلي: أضف i إلى المجموع. زِد i بمقدار 1. اطبع المجموع. انتهى. وهذه هي الشيفرة الزائفة لنفس الخوارزمية: ابدأ المجموع = 0 i = 1 بينما i ≤ N افعل المجموع = المجموع + i i = i + 1 اطبع المجموع انتهى بينما المخطط الانسيابي يمكنك التعرف عليه أكثر من هنا:
- 1 جواب
-
- 1
-
صحيح لأنه في بيانات التعلم الآلي، من الشائع تحويل البيانات الفئوية (مثل الجنس) إلى أرقام لأن النماذج لا يمكنها التعامل إلا مع الأرقام، ففي الملف البيانات فيه تتضمن العمود "sex" وهو من نوع البيانات int64 ويحتوي على القيم 0 و 1. هذا يعني أن القيم الفئوية كالجنس قد تم تحويلها إلى أرقام. في هذه الحالة، من الشائع أن يكون: 0 يمثل الإناث (female) 1 يمثل الذكور (male) وهذا التحويل ضروري لأن نماذج التعلم الآلي تتعامل بشكل أفضل مع البيانات الرقمية.
- 10 اجابة
-
- 1
-
الفرق بين الدالة `read_csv` في مكتبة `pandas` والدالة `open` في بايثون هو في وظيفتهما وكيفية استخدامهما فالدالة `read_csv` تستخدم لقراءة ملفات CSV وتحويلها مباشرة إلى إطار بيانات في `pandas`، مما يسهل تحليل ومعالجة البيانات بفضل الوظائف المتقدمة التي توفرها المكتبة. من جهة أخرى، الدالة `open` هي دالة مدمجة في بايثون تستخدم لفتح الملفات لأغراض متعددة مثل القراءة والكتابة، وتحتاج إلى مزيد من البرمجة اليدوية عند التعامل مع ملفات CSV فإذا كنت بحاجة لتحليل ومعالجة البيانات بشكل مريح، فإن `read_csv` هي الخيار الأفضل، بينما `open` تكون كافية إذا كان الغرض هو القراءة أو الكتابة المباشرة لمحتويات الملف. يمكنك التوسع أكثر من هنا:
- 4 اجابة
-
- 1
-
تحسين مهاراتك في الخوارزميات وهياكل البيانات هو أمر ممكن باستخدام PHP. فلا حاجة للعودة إلى لغات مثل C++ إذا كنت مرتاحا مع PHP. فالمهم هو فهم المفاهيم وليس اللغة نفسها. لهذا يمكنك الاستمرار في تعلم وتحسين مهاراتك مع الاستفادة من المشاريع العملية والتحديات البرمجية لتعزيز التفكير المنطقي وحل المشاكل. وفي حالة ما إذا شعرت بالحاجة لتوسيع معارفك بلغات أخرى في المستقبل، يمكنك القيام بذلك، لكن ليس ضروريا طالما أنك تتقدم بشكل جيد مع PHP. يمكنك الاطلاع والتوسع في موضوع التأسيس أكثر من هنا:
- 2 اجابة
-
- 1
-
المشكلة على الأغلب تتعلق بإعدادات البريد الإلكتروني في بيئة الاستضافة، فعند إرسال البريد الإلكتروني في بيئة الإنتاج، قد تكون هناك إعدادات ناقصة أو غير صحيحة في ملف `settings.py` الخاص بمشروع Django. لذا تأكد من إعدادات البريد الإلكتروني في `settings.py` لتكون كالتالي: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = 'your-email@gmail.com' EMAIL_HOST_PASSWORD = 'your-email-password' DEFAULT_FROM_EMAIL = EMAIL_HOST_USER لضمان أنك تستطيع رؤية الأخطاء التي تحدث عند محاولة إرسال البريد الإلكتروني، يمكنك تمكين تسجيل الأخطاء في Django. أضف الكود التالي إلى `settings.py`: import os LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': os.path.join(BASE_DIR, 'debug.log'), }, }, 'loggers': { 'django': { 'handlers': ['file'], 'level': 'DEBUG', 'propagate': True, }, }, } فهو سيسمح بتتبع الأخطاء التي تحدث عند محاولة إرسال البريد الإلكتروني من خلال ملف `debug.log`.
- 8 اجابة
-
- 1
-
تستخدم النجمة (*) هنا كعامل ضرب في المعادلة الرياضية. دعني أوضح ذلك بشكل مفصل: def discount(self, ratio): self.price = self.price - self.price * ratio في هذا المثال، الدالة `discount` تقوم بحساب خصم معين على السعر الحالي `self.price` باستخدام النسبة المئوية `ratio`. النجمة (*) هنا تعني ضرب `self.price` في `ratio`. إليك خطوة بخطوة ما يحدث: `self.price * ratio` يقوم بحساب القيمة التي تمثل الخصم بناءً على النسبة `ratio`. `self.price - self.price * ratio` يطرح قيمة الخصم من السعر الأصلي. فمثلا، إذا كان `self.price` يساوي 100 و`ratio` يساوي 0.2 (أي 20%)، فإن العملية الحسابية ستكون: self.price = 100 - 100 * 0.2 وهذا يعني: self.price = 100 - 20 لذلك، السعر الجديد بعد الخصم سيكون 80. وهكذا.
- 3 اجابة
-
- 1
-
في الكود الذي أرسلته، الدالة `finder` تستخدم معاملين، الأول هو `iterable` وهو عبارة عن قائمة أو مجموعة تحتوي على عناصر يمكن تكرارها. في هذا المثال، `iterable` هو قائمة `words` التي تحتوي على لغات البرمجة (مثل "python" و "php" و "java" و "ruby") فهذا المعامل هو ما نبحث فيه عن العناصر المطابقة. أما `text` هو النص الذي نريد البحث عنه في بداية كل عنصر من عناصر `iterable` وفي هذا المثال، `text` هو الحرف "p" وهذا المعامل يحدد الشرط الذي نبحث عنه في العناصر. بالنسبة ل`finder` تأخذ `iterable` و `text`. وداخل `finder`، هناك دالة `find` التي تتحقق مما إذا كان أي عنصر في `iterable` يبدأ بالنص `text` أما `filter` يستخدم `find` لتصفية العناصر في `iterable` بناءً على الشرط المحدد والنتيجة النهائية هي قائمة بالعناصر التي تبدأ بالنص `text`.وهذا هو الكود بعد التصحيح: words = ["python", "php", "java", "ruby"] def finder(iterable, text): def find(item): return str(item).startswith(text) return list(filter(find, iterable)) result = finder(words, "p") print(result) والنتيجة النهائية ستكون: ['python', 'php'] وبهذا الشكل، الكود يقوم بإرجاع جميع العناصر في `words` التي تبدأ بالحرف "p".
- 3 اجابة
-
- 1
-
يمكنك تصميم قاعدة بيانات تحتوي على جداول لكل قسم مثل المطاعم والماركت والأقسام الأخرى، ثم تقوم بإنشاء واجهة مستخدم ديناميكية باستخدام تقنيات مثل React أو Angular أو Vue.js لعرض الأقسام المختلفة بناء على البيانات المستلمة من الواجهة الخلفية (Backend). في الواجهة الخلفية، يمكنك إنشاء واجهة برمجة تطبيقات (API) باستخدام Node.js أو Django للتواصل مع قاعدة البيانات وتحديد القسم المناسب لعرضه عند فتح التطبيق. للبحث عن مصادر باللغة الإنجليزية، يمكنك استخدام الكلمات المفتاحية مثل "Dynamic Section Rendering in Mobile Apps" و "Conditional Component Rendering in React/Angular/Vue.js" و "Backend API Design for Dynamic Content" و "User Preference Based Content Display in Mobile Applications" لكني أنصح بمراجعة التوثيقات الرسمية فهي تغنيك عن البحث الكثير.
- 2 اجابة
-
- 1
-
دالة Series في مكتبة Pandas تشبه القاموس في بايثون لكنها تحتوي على بعض المميزات الخاصة بها، وتتميز بأنها تتيح فهرسة كل عنصر بفهرس يمكن أن يكون رقميا أو نصيا، وجميع العناصر فيها تكون من نفس النوع. يمكن إجراء العمليات الرياضية والإحصائية بسهولة كما تتكامل بشكل ممتاز مع مكتبات تحليل البيانات الأخرى مثل Numpy. Pandas عامة و Series خاصة مصممة للتعامل مع مجموعات بيانات كبيرة وعمليات تحليل معقدة بشكل فعال. الفروقات بين Series والقاموس تكمن في أن Series تتيح إجراء العمليات الرياضية والإحصائية بسهولة ويمكن فهرستها بأي نوع من القيم، في حين أن القاموس يمكن أن يحتوي على أنواع بيانات مختلفة ولكنه لا يدعم العمليات الرياضية بشكل مباشر.فلإنشاء Series من قائمة بيانات: import pandas as pd data = [1, 2, 3, 4, 5] s = pd.Series(data) print(s) كما يمكنك إجراء عملية جمع على جميع العناصر هكذا: print(s + 10) يمكن الوصول إلى عنصر معين: print(s[2]) يمكنك التوسع في الموضوع من هنا:
- 3 اجابة
-
- 1
-
يمكنك التحقق من توثيق المكتبة أو محاولة استخدام الكود مباشرة ومعرفة ما إذا كان يظهر خطأ. import pandas as pd print(pd.__version__) أو من خلال زيارة الموقع الرسمي للتوثيق `pandas` [pandas documentation](https://pandas.pydata.org/pandas-docs/stable/) والبحث عن توثيق `pd.Index` ومراجعة العمليات المدعومة عليه.لكن يوجد بديل آخر، بحيث يمكنك استخدام دالة `union` كطريقة مؤكدة: import pandas as pd arr0 = pd.Index([0, 1, 2, 3, 4]) arr1 = pd.Index([0, 1, 2]) print(arr0.union(arr1)) فدالة `union` تعتبر الخيار الأكثر أمانا للعمل مع إصدارات مختلفة من `pandas`.
- 8 اجابة
-
- 1
-
العفو، بالنسبة للعامل `|` يمكن استخدامه لعمل اتحاد بين كائنات `pd.Index` في مكتبة `pandas`. ففي حالة ما إذا كانت تواجهنا مشاكل مع استخدام العامل `&` للتقاطع، يمكن استخدام `|` للاتحاد بهذه الطريقة: import pandas as pd arr0 = pd.Index([0,1,2,3,4]) arr1 = pd.Index([0,1,2]) print(arr0 | arr1) فهذه الطريقة ستعطينا اتحاد المؤشرين، مما يعني دمج جميع العناصر مع إزالة التكرارات كما أن كلتا الطريقتين ستعطيك نفس النتيجة، وهي اتحاد العناصر في المؤشرين.
- 8 اجابة
-
- 1
-
صحيح، التقاطع (`&`) بين كائنات `pd.Index` كان مدعوما في إصدارات أقدم من مكتبة `pandas`. ومع التحديثات الجديدة، قد تكون هذه العملية لم تعد مدعومة بنفس الطريقة. ولضمان التوافق مع الإصدارات الأحدث من المكتبة، يفضل استخدام الدوال المخصصة مثل `intersection`.
- 8 اجابة
-
- 1
-
الخطأ الذي يظهر عند تشغيل هذا الكود يرجع إلى أن عملية التقاطع (`&`) غير مدعومة مباشرة بين كائنات `pd.Index` في مكتبة `pandas`. لاستخدام عملية التقاطع بين مجموعتين من المؤشرات، يجب استخدام الدالة `intersection` بدلا من ذلك. إليك الكود المعدل: import pandas as pd arr0 = pd.Index([0,1,2,3,4]) arr1 = pd.Index([0,1,2]) print(arr0.intersection(arr1)) فهذا الكود سيعطيك التقاطع الصحيح بين المؤشرين `arr0` و `arr1`.
- 8 اجابة
-
- 1
-
أول خطوة هي من خلال إعدادات البريد الإلكتروني في ملف `settings.py` في مشروع جانغو الذي تعمل عليه فنقوم بإضافة إعدادات البريد الإلكتروني إلى الملف مع ضبط إعدادات SMTP الخاصة بـ Gmail. عادة يكون الملف هكذا: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = 'your_email@gmail.com' # عنوان بريدك الإلكتروني EMAIL_HOST_PASSWORD = 'your_email_password' # كلمة مرور بريدك الإلكتروني بعدها يجب أن تقوم بتمكين الوصول الأقل أمانا لحساب Gmailمن خلال الذهاب إلى [رابط إعدادات الأمان لحسابك في Google](https://myaccount.google.com/security) والتأكد من تمكين الوصول الأقل أمانا. قم تقوم بإنشاء وظيفة في ملف views.py لإرسال البريد الإلكتروني وهذا هو الملف: from django.core.mail import send_mail from django.http import HttpResponse def send_test_email(request): subject = 'Test Email' message = 'This is a test email sent from Django.' email_from = 'your_email@gmail.com' recipient_list = ['recipient_email@example.com'] # البريد الإلكتروني للمستلم send_mail(subject, message, email_from, recipient_list) return HttpResponse('Email sent successfully') ثم أضف مسارا إلى ملف `urls.py` لاستدعاء دالة إرسال البريد الإلكتروني. from django.urls import path from .views import send_test_email urlpatterns = [ path('send-email/', send_test_email, name='send_email'), ]
-
لا توجد لغة بعينها لبرمجة تطبيقات الوينداوز، لكن هنالك عدة لغات برمجة شائعة لتطوير تطبيقات Windows، كلغة سي شارب التي تستخدم مع .NET Framework أو .NET Core وهي تعتبر مثالية لتطوير تطبيقات بواجهة مستخدم رسومية باستخدام Windows Forms أو WPF. لغة C++ هي الأخرى تستخدم لتطوير تطبيقات ذات أداء عالي والمميز فيها أنها تعمل بشكل مباشر مع Windows API وتستخدم مكتبات مثل MFC. أما VB.NET فهي لغة برمجة مع .NET، سهلة التعلم وتستخدم في التطبيقات البسيطة والمتوسطة وحتى لغة بايثون يمكن استخدامها لتطوير تطبيقات Windows باستخدام مكتبات مثل PyQt أو Tkinter. حتى JavaScript/TypeScript تستخدمان مع تقنيات مثل Electron لتطوير تطبيقات سطح المكتب باستخدام تقنيات الويب. فكل لغة برمجة لها مميزاتها وتناسب أنواعا مختلفة من التطبيقات، والاختيار يعتمد على متطلبات المشروع وخبرة المطور أيضا. يمكنك التوسع أكثر من هنا:
- 3 اجابة
-
- 1
-
العامل الذي يمكن أن نحدد من خلاله الأفضل، هو ما إذا كان تطبيق الويب الذي نود إنشاءه يتعامل مع بيانات غير متجانسة ويحتاج إلى مرونة في بنية البيانات، فإن MongoDB سيكون مناسبا كما أنه يمكن استخدام خطة MongoDB Atlas المجانية للاستضافة. أما إذا كانت البيانات تحتاج إلى علاقات معقدة وبنية صارمة، فإن MySQL هو الخيار الأفضل ويمكنك استخدام استضافة GoDaddy التي تقدم MySQL مجانا. فمن مميزات MongoDB أنها تشمل تخزين البيانات بشكل مرن باستخدام الوثائق (documents) في صيغة JSON-like، مما يجعلها مناسبة للبيانات غير المتجانسة أو المتغيرة بسرعة، فهي تتصف بأن لها مرونة عالية في التوسع الأفقي أو ما يعرف ب (horizontal scaling) وعدم الحاجة إلى تحديد بنية البيانات مسبقا، مما يتيح تعديل البيانات بسهولة. كما يوفر أداءً جيدًا في العمليات التي تتطلب قراءة وكتابة بيانات كبيرة بشكل سريع. من العيوب أنها ليست مثالية للعلاقات المعقدة بين البيانات مثل العلاقات الموجودة في قواعد البيانات العلائقية. أما الأخرى فهي قاعد بيانات علائقية (Relational Database) مثالية للعلاقات المعقدة بين البيانات باستخدام الجداول والروابط، وتوفر معاملات ACID لضمان النزاهة والاتساق في البيانات. تمتلك نظامًا بيئيًا ناضجًا مع دعم واسع وأدوات متعددة، وتوفر أداءً جيدًا في التعامل مع البيانات العلائقية والطلبات المعقدة. من العيوب أنها تتطلب تحديد بنية البيانات مسبقا، مما قد يكون مقيدا إذا كانت البيانات تتغير بشكل مستمر، كما أن التوسع الرأسي أسهل من التوسع الأفقي. يمكنك التوسع في الموضوع من هنا:
- 6 اجابة
-
- 1
-
كمبرمجين، لا بدّ وأننا تعرضنا لهذه المشكلة، ولا مناص منها، فلا داعي للقلق، ففي الأساس الأصل ليس في حفظ الأكواد البرمجية إنما في فهمها والمداومة على العمل، وعندما تتعلم لغة برمجة جديدة مثل Python، خصوصا في البداية فمن البديهي أن تنسى، فالبرمجة تتطلب ممارسة مستمرة وتعرضا دوريا للمفاهيم لترسيخها بشكل جيد في الذاكرة. كنصائح يمكن تقديمها، هو أن لا يكون هدفك الأساسي هو حفظ ما تتعلمه، فالمراجع والتوثيقات ما أنشئت إلا لهذا الأمر، لنرجع إليها في وقت الحاجة، ولا يمكن استظهارها عن ظهر قلب، فالتحديثات التقنية والبرمجية لا حصر لها فكيف يحصي المرء كل شاردة وواردة. ما ساعدني شخصيا على الفهم والترسيخ هو استخدام طريقة التعليم العكسي، أي أن تحاول أن تشرح ما تعلمته لشخص آخر فالتعليم يعزز الفهم ويساعد في ترسيخ المعلومات في الذهن بشكل جيد. يمكنك الاستفادة أكثر من هنا ومن الإجابات على هذا السؤال:
- 3 اجابة
-
- 1