-
المساهمات
13209 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
365
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
المشكلة بسبب تعارض في الحزم لديك، قم بحذف ملف composer.lock ثم مجلدvendor في المشروع لديك، وقم بثبيت الحزم من جديد: composer install وفي حال استمرت المشكلة حاول تثبيت نسخة متوافقة مع الحزم لديك كالتالي: composer require fruitcake/laravel-cors:^2.1 وفي حال استمرت المشكلة حاول تنفيذ الأمر التالي لتحديث الإعتماديات الأخرى اللازمة للتوافق مع الحزمة: composer require fruitcake/laravel-cors --with-all-dependencies
-
يتم الترتيب على أساس البلد أولاً، ثم على أساس العمر، وفي حال وجود أكثر من عنصر متشابه في الاسم، فسيتم الترتيب على أساس العمر. حيث تتم عملية الترتيب باستخدام الدالة sorted() مع استخدام itemgetter(1, 2) كوظيفة مفتاح، وذلك يعني أنه يتم ترتيب القائمة a بناءًاعلى القيم في المواقع 1 و 2 في كل tuple داخل القائمة. حيث ترُتب القائمة لديك كالتالي: b = [('Ali', 'Jordan', 45), ('Ahmad', 'Sudan', 23), ('Adam', 'Sudan', 23)] في حال وجود عناصر متشابهة في الموقعين 1 و 2، يتم الاحتفاظ بالترتيب الأصلي لتلك العناصر. وتستطيع تغيير ترتيب العناصر المتشابهة عن طريق تغيير ترتيب الوسائط التي يتم تمريرها إلى الدالة itemgetter(). فلو أردت ترتيب العناصر المتشابهة على أساس العمر أولاً، ثم على أساس البلد، فسنقوم بتغيير الوسائط على النحو التالي: b = sorted(a, key=itemgetter(2, 1)) فسيتم ترتيب القائمة على النحو التالي: b = [("Ahmad", "Sudan", 23), ("Ahmad", "Sudan", 23), ("Ali", "Jordan", 45)]
-
عند استخدام PDO (PHP Data Objects) للتفاعل مع قواعد البيانات، يتم استخدام $stmt و $conn كمتغيرات شائعة. حيث أن $stmt (Statement) يستخدم لتمثيل البيانات المستعلمة (query) أو العبارة التي تقوم بتنفيذها على قاعدة البيانات باستخدام PDO، فبعد تحضير الاستعلام وتنفيذه، تستطيع استخدام $stmt لاسترجاع النتائج أو التحكم في تأثير الاستعلام. أما $conn (Connection) هو متغير يستخدم لتمثيل اتصال PDO بقاعدة البيانات، ونستخدمه لتنفيذ الاستعلامات أو التفاعل مع قاعدة البيانات. مثال على كيفية استخدامهم: // الاتصال بقاعدة البيانات $dsn = "mysql:host=localhost;dbname=mydatabase"; $username = "username"; $password = "password"; $options = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false, ); try { $conn = new PDO($dsn, $username, $password, $options); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); } // استعلام $sql = "SELECT * FROM mytable WHERE column = :value"; $stmt = $conn->prepare($sql); // تمرير القيمة $value = "some_value"; $stmt->bindParam(':value', $value); // تنفيذ الاستعلام $stmt->execute(); // استخدام نتائج الاستعلام while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { // فعل شيء مع البيانات } // إغلاق الاتصال $conn = null;
-
استخدم الثيم التالي سيبدوا بشكل أفضل: https://marketplace.visualstudio.com/items?itemName=RobbOwen.synthwave-vscode
- 7 اجابة
-
- 1
-
عند كتابة سؤال ستجد زر باسم "اسحب الملفات إلى هنا أو اضغط لإرفاق ملف). وتستطيع الضغط ثم إختيار ما تريده، أو يمكنك سحب الصورة وإفلاتها في المكان الذي تريده بالسؤال. فمثلاً لو أردت وضع صورة أسفل السطر التالي سأقوم بإنهاء السطر هنا ثم الضغط علىEnter للنزول للسطر بالأسفل ثم سحب وإفلات الصورة أسفل السطر: لاحظ الصورة بالأعلى.
- 7 اجابة
-
- 1
-
الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ويمكنك مساعدتك في حال توفر الكود، وإليك خطوات الحل: ستحتاجين إلى تضمين المكتبات اللازمة وهي: #include <iostream> #include <string> بعد ذلك: تعريف متغير لتخزين السلسلة الرمزية المدخلة. تعريف متغير لتخزين الحرف الذي سيتم استبداله. استخدمي دالة cin لاستلام السلسلة الرمزية من المستخدم وتخزينها في المتغير المناسب. استخدمي دالة cin أيضًا لاستلام الحرف الذي سيتم استبداله وتخزينه في المتغير المخصص. تأكدي من أن السلسلة الرمزية ليست فارغة وأن الحرف البديل قد تم إدخاله. اعتمدي على حلقة (for loop) للانتقال عبر السلسلة الرمزية واستبدال كل حرف يطابق الحرف المراد استبداله. طباعة السلسلة الرمزية بعد الاستبدال. إذا كانت السلسلة تحتوي على فراغات، فمن الأفضل التفكير في كيفية معالجتها، مثلاً بتجاوز الفراغات أو استبدالها أيضًا. من الممكن إضافة ميزة إعادة تشغيل البرنامج للسماح للمستخدم بتجربة إدخالات جديدة. يمكنك إضافة ميزات إضافية، مثل تحويل الحروف إلى أحرف كبيرة أو صغيرة أو السماح بالاستبدال مع حرفين بدلاً من حرف واحد. https://academy.hsoub.com/programming/cpp/الحلقات-التكرارية-loops-في-cpp-r893/
-
لا مشكلة في ذلك، لكن من الأفضل في بداية تعلمك إتباع الآتي: تخصيص نصف ساعة إلى ساعة تبعًا لمستوى الصعوبة، قبل البحث عن حل للمشكلة. في حال وجدت حل للمشكلة، عليك فهم الفكرة والمنطق، ثم لا تقم بنسخ الكود، بل قم بكتابته أنت بالطريقة التي استوعبت الأمر بها. لكن أن تتسرع إلى البحث عن حل وعدم تمرين عقلك وتنمية التفكير المنطقي لديك، فتلك هي المشكلة، عليك توظيف ما تعلمته التفكير بشكل منطقي وتقسيم المشكلة إلى أجزاء. وستجد تفصيل أكثر هنا:
- 2 اجابة
-
- 1
-
يتم تحديث الدورات كل فترة ومن المحتمل إضافة ذلك، ويمكنك المتابعة من خلال صفحة آخر التحديثات، وسأرسل إقتراحك للقسم المسؤول عن إعداد محتوى الدورة، وفي الوقت الحالي ستجد دروس خاصة بتطبيقات أودو في الأكاديمية: تطبيقات أودو odoo
-
من الممكن تنفيذ من خلال تصدير قاعدة بيانات Access إلى تنسيق XML وربطها بالمشروع، أو استخدام واجهة برمجة تطبيقات ODBC لقاعدة بيانات Access من خلال أداة إنشاء واجهة برمجة تطبيقات ODBC المضمنة في نظام التشغيل Windows. وسأوضح لك الطريقة الثانية: 1- عليك أولاً تكوين مصدر البيانات DSN: قم بفتح لوحة التحكم في Windows. انتقل إلى "إدارة مصادر البيانات (ODBC)". اختر "System DSN" وانقر على زر "Add". اختر "Microsoft Access Driver" واتبع الخطوات لتكوين مصدر البيانات. أضف ملف ODBC إلى مشروع Laravel لديك عن طريق وضع الملف في مجلد "databases". 2- تكوين ملف .env: قم بفتح ملف .env في مشروع Laravel وإضافة معلومات الاتصال بقاعدة البيانات: DB_CONNECTION=odbc DB_HOST=DSN_NAME 3- تكوين ملف config/database.php: فتح ملف config/database.php وفي مصفوفة connections، أضف تكوين لقاعدة البيانات Access: 'odbc' => [ 'driver' => 'odbc', 'dsn' => env('DB_HOST'), 'username' => env('DB_USERNAME', ''), 'password' => env('DB_PASSWORD', ''), 'options' => [ PDO::ATTR_CASE => PDO::CASE_LOWER, PDO::ATTR_PERSISTENT => false, ], ], باستطاعتك استخدام قاعدة البيانات Access الآن في تطبيق Laravel كما تستخدم أي قاعدة بيانات أخرى.
-
في أي دولة؟ إذا كنت تقصد السعودية، فالإجراءات هي كالتالي: 1- أول خطوة هي اختيار نوع الشركة التي تريد تأسيسها. هناك عدة أنواع من الشركات التي يمكنك اختيارها، منها: شركة ذات مسؤولية محدودة شركة مساهمة شركة تضامنية شركة توصية بسيطة 2- بعد اختيار نوع الشركة، يجب عليك إعداد الوثائق المطلوبة لاستخراج السجل التجاري، وهي: طلب استخراج سجل تجاري صورة من الهوية الوطنية أو الإقامة للمؤسس أو المؤسسين صورة من صك الملكية أو عقد الإيجار للمقر الرئيسي للشركة صورة من السجل التجاري للشركة الأم (إذا كانت الشركة فرعًا لشركة أخرى) شهادة حسن سير وسلوك للمؤسس أو المؤسسين 3- بعد إعداد الوثائق المطلوبة، يجب عليك تقديمها إلى وزارة التجارة السعودية، وذلك من خلال أحد فروع الوزارة أو من خلال موقع الوزارة الإلكتروني. 4- عليك الآن دفع الرسوم الحكومية المقررة لاستخراج السجل التجاري. 5- بعد دفع الرسوم الحكومية، ستصدر لك وزارة التجارة السجل التجاري الخاص بشركتك، وذلك خلال مدة أقصاها 10 أيام عمل. إلكترونيًا وفي حال أنك ترغب في استخراج السجل تجاري إلكترونيًا، عليك بالتالي: قم بإنشاء حساب على موقع وزارة التجارة السعودية. انتقل إلى قسم "الخدمات الإلكترونية". اختر الخدمة "إصدار سجل تجاري". اضغط على زر "تقديم الطلب". املأ البيانات المطلوبة في الطلب. إرفق المستندات المطلوبة. اضغط على زر "إرسال الطلب". بعد ذلك، ستتولى وزارة التجارة مراجعة طلبك وإصدار السجل التجاري الخاص بشركتك خلال مدة أقصاها 10 أيام عمل. لكي تتمكن من استخراج سجل تجاري لمنصة تعليمية، يجب عليك استيفاء الشروط التالية: أن يكون المؤسس أو المؤسسون سعوديين الجنسية أو مقيمين في المملكة العربية السعودية. أن يكون لدى المؤسس أو المؤسسون رأس مال لا يقل عن 500 ألف ريال سعودي. أن يكون لدى المؤسس أو المؤسسون سجل تجاري ساري المفعول. أن يكون لدى المؤسس أو المؤسسون شهادة حسن سير وسلوك. وانتبه للتالي: يجب أن يتضمن اسم الشركة التعليمية كلمة "تعليم" أو أي كلمة أخرى ذات دلالة تعليمية. يجب أن تلتزم الشركة التعليمية بالأنظمة والتعليمات المعمول بها في المملكة العربية السعودية.
-
هناك العديد من القوالب التعليمية منها: أولاً: قوالب ووردبريس تعليمية مجانية قالب VW Education Academy قالب Uni Education Free WordPress LMS -قالب Signify Education LMS WordPress Theme قالب School Zone ثانيًا: قوالب ووردبريس تعليمية احترافية مدفوعة قالب Masterstudy قالب Edumall قالب Kingster Education قالب Academist قالب Eikra قالب Ed School قالب University قالب eCademy قالب eSmarts قالب Educavo قالب Education Pack قالب Invent قالب Edumodo -قالب IveyPrep
- 3 اجابة
-
- 1
-
الأمر راجع لأسباب أمنية، حيث أن الاتصالات التي تتم عبر https تكون مشفرة، مما يحمي البيانات من التعرض للاختراق أو التلف. وحتى لو كنت تستخدم خادم محلي، فإن فيسبوك ما زالت تتطلب منك استخدام https. وذلك لأن فيسبوك لا تريد أن تتعرض بيانات المستخدمين للخطر، حتى لو كانت البيانات تتم بين تطبيقك وفيسبوك فقط. وعندما تستخدم فيسبوك لتسجيل الدخول عبر Socialite في Laravel، تحتاج إلى توفير عنوان URL صحيح لـ "توجيه التوجيه" (redirect URL)، وبالطبع يكون ذلك العنوان هو عنوان URL الفعلي لتطبيقك. مثل http://localhost:8000 أو http://127.0.0.1:8000. ومعظم الشبكات الاجتماعية، بما في ذلك فيسبوك، تتوقع أن يكون عنوان URL يبدأ بـ "https" عند التوجيه. ولحل المشكلة عليك إما استخدام خادم محلي يدعم https عن طريق تثبيت شهادة SSL على خادمك المحلي. أو الإعتماد على بروكسي (وكيل) https، والوكيل هو برنامج يعيد توجيه الاتصالات من http إلى https، مثل ngrok أو Localtunnel. وإليك الطريقة: قم بإضافة معلومات التطبيق الخاصة بك في ملف .env: FACEBOOK_CLIENT_ID=your-facebook-client-id FACEBOOK_CLIENT_SECRET=your-facebook-client-secret FACEBOOK_REDIRECT=http://localhost:8000/callback قم بتحديث ملف config/services.php لتكوين Socialite لاستخدام فيسبوك: // في مصفوفة 'providers' 'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('FACEBOOK_REDIRECT'), ], في ملف routes/web.php، أضف مسارين للتوجيه: use Laravel\Socialite\Facades\Socialite; // مسار للتوجيه إلى فيسبوك Route::get('/redirect', function () { return Socialite::driver('facebook')->redirect(); }); // مسار للتوجيه عند العودة من فيسبوك Route::get('/callback', function () { $user = Socialite::driver('facebook')->user(); // هنا يمكنك معالجة البيانات المستردة من فيسبوك dd($user); }); وتستطيع تشغيل ngrok كالتالي: ngrok http 8000 وستحصل على عنوان URL يشبه https://xxxxxxxx.ngrok.io، وتستطيع استخدام ذلك العنوان في إعدادات تطبيق Facebook على Socialite، وستحتاج إلى تحديث إعدادات التطبيق على موقع Facebook لتشير إلى العنوان URL الجديد الذي يوفره ngrok. قم بتشغيل خادم Laravel: php artisan serve ثم افتح متصفح الويب وانتقل إلى http://localhost:8000/redirect، وسيتم توجيهك إلى صفحة تسجيل الدخول عبر فيسبوك، وبعد تسجيل الدخول بنجاح، ستعود إلى http://localhost:8000/callback مع البيانات المستردة من فيسبوك.
- 2 تعليقات
-
- الشبكات الاجتماعية
- تويتر
-
(و 5 أكثر)
موسوم في:
-
النسخة الحديثة منه لا تدعم 32 بت، ولكن هناك نسخة أقدم نسبيًا وهي 1.70 من خلال الرابط التالي: https://update.code.visualstudio.com/1.70.2/win32-user/stable والنسخة الأحدث حاليًا هي 1.84، وإذا أردت استخدامها يوجد مشروع باسم vscodium يوفر برنامج vscode ليعمل على جميع المنصات والبنيات المختلفة، وذلك هو رابط أحدث نسخة بعد تحميلها وفك الضغط في مجلد ستجد أيقونة البرنامج يمكنك تشغيلها. https://github.com/VSCodium/vscodium/releases/download/1.84.2.23319/VSCodium-win32-arm64-1.84.2.23319.zip
- 8 اجابة
-
- 1
-
المشكلة ليس لها علاقة بـ vscode أو vscode IDE، بل لها علاقة بنوع بنية المعالج. فالبرنامج الذي تحاول تثبيته مصممًا ليعمل فقط على معالجات محددة أو على معالجات بنية معينة، مثل معالجات 32 بت أو 64 بت، والمشكلة تحدث إذا كان لديك معالج ببنية 32 بت وتحاول تثبيت برنامج مخصص لبنية 64 بت. ما هو البرنامج الذي تحاول تثبيته؟
- 8 اجابة
-
- 1
-
من يمكنه مساعدتك في هذا الشأن هو مركز المساعدة ، عليك إخبارهم بما تريد وإنتظار الرد.
- 1 جواب
-
- 1
-
إذا أردت تجاهل التشكيل بشكل كامل، تتوفر مكتبات لتحويل الكلمات إلى نص بدون تشكيل، مثل: Arabic-Stemmers stemmer وبالنسبة لحل للبحث بشكل مقارب بدون التجاهل الكامل للتشكيل، فعليك استخدام ميزة الترتيب حسب الشبهية (Fuzzy Search) مع بعض التعديلات على الكود، وتتوفر مكتبة مثل "scout" مع Elasticsearch لتحقيق ذلك. وهناك مكتبة جاهزة توفر لك ذلك عليك قراءة المستند الخاص بها: https://github.com/matchish/laravel-scout-elasticsearch
-
عليك أولاً تثبيت Laravel Sanctum وتكوينه لتوفير ميزات المصادقة، بتشغيل الأوامر: composer require laravel/sanctum php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider" php artisan migrate ثم تكوين ملف config/cors.php للسماح للمتصفح بتبادل الموارد عبر المواقع CORS (Cross-Origin Resource Sharing)، بتنفيذ التالي لنشر ملفات التكوين: composer require fruitcake/laravel-cors php artisan vendor:publish --tag="cors" بعد ذلك تأكد من أن Jetstream يستخدم Sanctum كـ API حسب الحاجة، وقم بفحص ملف config/jetstream.php وتحقق من أن خيار stack يتم تعيينه إلى livewire أو inertia. نأتي الآن لخطوة تكوين حماية Sanctum Middleware، ففي ملف app/Http/Kernel.php، يجب أن يكون EnsureFrontendRequestsAreStateful middleware موجود في مجموعة web middleware. وفي ملف config/sanctum.php، عليك تكوين stateful لـ sanctum بحيث تكون هناك علامة تحقق للمتصفح. والآن قم بإنشاء نقاط النهاية (controllers) الخاصة بك للعمليات التي تحتاج إليها، وضع middleware auth:sanctum في النقاط التي تتطلب مصادقة المستخدم. مثال على ملف routes/api.php: use App\Http\Controllers\Api\PostController; Route::middleware('auth:sanctum')->group(function () { Route::get('/posts', [PostController::class, 'index']); // يمكنك إضافة طرق إضافية هنا }); وكمثال سنقوم بإنشاء app/Http/Controllers/Api/PostController.php: <?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { public function index() { $posts = Post::all(); return response()->json($posts); } // يمكنك إضافة المزيد من الوظائف مثل store وupdate وdelete حسب الحاجة. } في مشروع React.js، تستطيع استخدام fetch أو Axios لاستدعاء نقاط النهاية API: import React, { useEffect, useState } from 'react'; function App() { const [posts, setPosts] = useState([]); useEffect(() => { fetch('/api/posts') .then(response => response.json()) .then(data => setPosts(data)); }, []); return ( <div> <h1>Posts</h1> <ul> {posts.map(post => ( <li key={post.id}>{post.title}</li> ))} </ul> </div> ); } export default App;
- 2 اجابة
-
- 1
-
هجمات CSRF لا تعتمد على بيانات الاعتماد المخزنة في المتصفح أو الجهاز، بل تعتمد على حقيقة أن المستخدم قد تم تسجيل الدخول بالفعل إلى موقع الويب، وعندما يقوم المستخدم بتسجيل الدخول إلى موقع ويب، يقوم الموقع بتعيين ملف تعريف ارتباط يسمى ملف تعريف ارتباط الجلسة، ويحتوي ملف تعريف ارتباط الجلسة على معرف فريد يربط المستخدم بالجلسة الحالية. أي تعتمد على جلب عمليات غير مصرح بها من المستخدم عبر تنفيذ أوامر داخل موقع ويب حيث قد تكون المستخدم قد قام بتسجيل الدخول، والهجمات لا تستند إلى بيانات الاعتماد نفسها، بل تستفيد من جلب الجلسة (Session) النشطة في المتصفح. وبالتبعية عندما يقوم المهاجم بتنفيذ هجوم CSRF، فإنه يقوم بإرسال طلب ويب إلى موقع الويب نيابة عن الضحية، ويتضمن الطلب ملف تعريف ارتباط الجلسة للضحية، وعند تلقى موقع الويب الطلب، فإنه يتحقق من ملف تعريف ارتباط الجلسة ويسمح للطلب بالمضي قدمًا. وأحيانًا تُخزن بيانات الاعتماد داخل الكوكيز، وإن كان الأمر كذلك، فقد يتمكن المهاجم من استخدام هجوم CSRF للحصول على بيانات اعتماد الضحية، ولكن ذلك النوع من الهجمات أقل شيوعًا من الهجمات التي تعتمد على ملف تعريف ارتباط الجلسة. وبيانات الاعتماد (مثل اسم المستخدم وكلمة المرور) تُرسَل عادةً في كل طلب (request)، سواء كان ذلك عبر الكوكيز أو الهيدرات (headers) الأخرى، والهجمات CSRF تستفيد من عدم فصل الجلسات بشكل صحيح. نعم ولا في نفس الوقت، حيث يجب على الموقع الويب تنفيذ تدابير أمان مناسبة لحماية ضد هجمات CSRF، وذلك يتضمن استخدام رموز عشوائية موقعة (CSRF tokens) في الطلبات للتحقق من أن الطلب يأتي من المستخدم الحقيقي وليس من مهاجم. ولكن عندما تقوم بتسجيل الدخول إلى موقع ويب، يتم إنشاء ملف تعريف ارتباط جلسة جديد، وفي حال لم تقم بتسجيل الخروج من الموقع، فسيظل ملف تعريف ارتباط الجلسة هذا صالحًا. هنا يستطيع المهاجم استخدام ملف تعريف ارتباط الجلسة لتنفيذ هجوم CSRF، مثل إنشاء رابط ويب يحتوي على رمز ضار، وعند نقر المستخدم على الرابط، يتم إرسال طلب ويب ضار إلى موقع الويب نيابة عن المستخدم. لذا، إن استطعت، يُنصح بتسجيل الخروج بعد الانتهاء من الجلسة لضمان أمان الجلسة، وكذلك تحديث وتعزيز إجراءات الأمان على الموقع لتقليل مخاطر هجمات CSRF، والإلتزام بالتالي: سجل الخروج من المواقع التي لا تستخدمها بانتظام. استخدم أدوات الأمان التي تساعد على حماية حساباتك من الهجمات الإلكترونية. كن حذرًا من الروابط التي تتلقاها في البريد الإلكتروني أو من مواقع الويب التي لا تثق بها. إذا كنت تشك في أنك قد تعرضت لهجوم CSRF، فقم بتغيير كلمات المرور الخاصة بك على الفور.
- 2 اجابة
-
- 1
-
الخريطة ستكون كالآتي: بداية: تبدأ التنفيذ هنا. X=1: نقوم بتهيئة المتغير X ليكون 1. حاصل الضرب: نبدأ بقيمة متغير (ضرب) تكون 1. ضرب = ضرب * X: نقوم بضرب القيمة الحالية للمتغير (ضرب) في X. X < 10: نتحقق من أن قيمة X لا تزال أقل من 10. X = X + 2: نزيد قيمة X بمقدار 2 (للحصول على الأعداد الفردية). انهاء: عندما تكون قيمة X أكبر من 10، يتم إنهاء العملية. عليك رسمها بالمنطق السابق.
-
أرجو منك التعليق أسفل الدرس لمساعدتك بشكل أفضل. تستطيع ذلك، حيث نستخدم عامل الجمع + لتحويل القيم إلى أعداد بدلاً من استخدام الدالة Number، ويُطلق على تلك العملية اسم "Unary Plus"، وذلك لأن العامل + يُستخدم بمفرده لتحويل القيم إلى أعداد. وتستطيع الإعتماد على Unary Plus مع أي نوع من القيم، ولكن النتيجة ستكون NaN إذا كانت القيمة لا تمثل رقمًا صالحًا. صحيح، لكن في الكود الخاص بجافا أنت قمت بكتابة المتغير ولم تضعه بداخل علامتي إقتباس. أما في جافاسكريبت فعلت ذلك، ولا نستطيع كتابة متغير داخل نص أي علامتي إقتباس، لكن هناك طريقة لفعل ذلك من خلال ميزة قالب النص Template literal ولكن نكتب `` بدلاً من ' ' لاحظ علامتي إقتباس مائلتين وعليك قراءة الشرح التالي لتفهم الأمر:
- 2 اجابة
-
- 1
-
يجب تشغيل مترجم بايثون في منفذ الأوامر من خلال كتابة python او py ثم اضغطي على Enter، والآن تستطيعي كتابة أكواد بايثون.
- 3 اجابة
-
- 1
-
الكود بحاجة إلى إعادة كتابة بالكامل لهيكلة الصفحة بشكل جيد، ومبدأيًا سيكون شكل الكود كالتالي: <!DOCTYPE html> <html lang="en"> <head runat="server"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Click to Chic: Elevate Your Style with Online Shopping</title> <link rel="stylesheet" href="Mystyle.css"> <style> body { background: #f8f8f8; margin: 0; font-size: 16px; line-height: 1.6; font-family: 'Arial', sans-serif; } header { background: #3498db; color: #fff; padding: 1rem; display: flex; justify-content: space-between; align-items: center; } #logo img { width: 100px; height: auto; } nav { display: flex; align-items: center; } nav ul { list-style: none; display: flex; margin: 0; } nav li { margin-right: 20px; } nav a { text-decoration: none; color: #fff; font-weight: bold; font-size: 1.1rem; } main { padding: 2rem; box-sizing: border-box; } #footer { background: #3498db; color: #fff; padding: 2rem; display: flex; justify-content: space-between; align-items: center; } #footer .social-links { list-style: none; display: flex; margin: 0; padding: 0; } #footer .social-links li { margin-right: 10px; } #footer .social-links img { width: 40px; height: auto; } #footer-content { flex-grow: 1; margin-left: 2rem; } #bot-left { font-size: 0.8rem; } </style> </head> <body> <header> <div id="logo"> <img src="https://placehold.co/100x100" alt="Logo"> </div> <nav> <ul> <li><a href="home.aspx">Home</a></li> <li><a href="Women.aspx">Women Clothes</a></li> <li><a href="Men.aspx">Men Clothes</a></li> <li><a href="About Us.aspx">About Us</a></li> <li><a href="Contact Us.aspx">Contact Us</a></li> </ul> </nav> <asp:LoginView ID="LoginView1" runat="server"> <AnonymousTemplate> Welcom!, <a href="Register.aspx">Register</a> | <a href="Login.aspx" style="text-align: right">Login</a> </AnonymousTemplate> <LoggedInTemplate> <asp:LoginName ID="Log_name" runat="server" FormatString="Hi {0}!" /> <asp:LoginStatus ID="Log_stat" runat="server" LogoutText="Logout" LogoutPageUrl="~/default.aspx" LogoutAction="Redirect" LoginText="Login" OnLoggingOut="Log_stat_LoggingOut" /> </LoggedInTemplate> </asp:LoginView> </header> <main> <!-- Your main content goes here --> </main> <footer id="footer"> <div id="footer-sidebar"> <ul class="social-links"> <li> <a href="https://www.whatsapp.com/" target="_blank"> <img src="https://placehold.co/40x40" alt="WhatsApp"> </a> </li> <li> <a href="https://www.twitter.com/" target="_blank"> <img src="https://placehold.co/40x40" alt="Twitter"> </a> </li> <li> <a href="https://www.instagram.com/" target="_blank"> <img src="https://placehold.co/40x40" alt="Instagram"> </a> </li> <li> <a href="https://www.facebook.com/" target="_blank"> <img src="https://placehold.co/40x40" alt="Facebook"> </a> </li> </ul> </div> <div id="footer-content"> <h1>Online Shopping</h1> <p>Providing high-quality garments, shoes, and watches at a low price</p> 2023 created by ALNABHANI </div> </footer> </body> </html>
-
استخدم الدالة pd.concat، ويجب أن تحدد المحور الذي تريد الدمج عليه، سواء كان ذلك على محور الأعمدة (axis=1) أو على محور الصفوف (axis=0)، وأنت تريد الدمج على محور الأعمدة: import pandas as pd # الأعمدة المستخدمة من selected_rows columns_selected_rows = [0, 2, 1, 3, 4, 5, 6] # الأعمدة المستخدمة من selected_rows2 columns_selected_rows2 = [3, 4, 5, 6] # قراءة البيانات من ملفات Excel df = pd.read_excel("2023.xlsx", header=None, usecols=columns_selected_rows) df2 = pd.read_excel("AAA.xlsx", header=None, usecols=columns_selected_rows2) # اختيار الصفوف المطلوبة selected_rows = df.iloc[8::2].reset_index(drop=True) selected_rows2 = df2.iloc[9::2].reset_index(drop=True) # دمج الجدولين على محور الأعمدة result_df = pd.concat([selected_rows, selected_rows2], axis=1) # طباعة النتيجة print(result_df) بحيث يتم دمج selected_rows و selected_rows2 على محور الأعمدة باستخدام pd.concat، ثم طباعة DataFrame الناتج result_df. إذا كنت ترغب في تغيير ترتيب الأعمدة، فتتوفر دالة set_axis().
-
المشكلة تكمن في كيفية استخدام reset_index، وتحديداً في الخطوتين: selected_column_1.reset_index(drop=True, inplace=True) selected_column_2.reset_index(drop=True, inplace=True) فعند استخدام inplace=True، يؤدي إلى تعديل DataFrame المحدد مباشرة بدون إعادة إعادة الجدول، وبالتالي يجب عليك تعديل الكود بحيث يتم حذف استخدام inplace=True. الأمر الذي يجعل الإطارين selected_column_1 و selected_column_2 تعديل بنية البيانات الأصلية: selected_column_1.reset_index(drop=True) selected_column_2.reset_index(drop=True) لذلك، يجب عليك تحديث الجزء النهائي من الكود ليصبح كالتالي: import pandas as pd df = pd.read_excel("AAA.xlsx", header=None) selected_column_1 = df.iloc[8::2, [0,1,2,3,4,5,6]] selected_column_1.reset_index(drop=True) selected_column_2 = df.iloc[9::2, [2,7,8,9,10]] selected_column_2.reset_index(drop=True) A = pd.DataFrame(selected_column_1, columns=['العمر','رقم الهاتف','إسم العائة','الإسم الأول']) B = pd.DataFrame(selected_column_2, columns=['نتيجة الدور','أعمال السنة','النهائي','المجموع','التقدير']) ومن المفترض أن يظهر DataFrame A كما هو متوقع. في حال لم تكن تلك المشكلة لديك، حاول تحديد الأعمدة التي تريدها في DataFrame الجديد، أو تستطيع استخدام طريقة loc لتحديد الصفوف والصفوف التي تريدها، كالتالي: A = pd.DataFrame(selected_column_1, columns=['العمر','رقم الهاتف','إسم العائة','الإسم الأول']) أو استخدام الطريقة التالية لتحديد الصفوف والصفوف التي تريدها: A = pd.DataFrame(selected_column_1.iloc[0:10, [0,1,2,3,4,5,6]], columns=['العمر','رقم الهاتف','إسم العائة','الإسم الأول'])