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

محمد_عاطف

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

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

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

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

    134

كل منشورات العضو محمد_عاطف

  1. إن الدالة str تقوم بإرجاع قيمة المتغير وتحويلها إلى سلسلة نصية و لكن لا تغير قيمة المتغير نفسه . لذلك يجب إسناد تلك القيمة إلى ذلك المتغير أو متغير أخر . لاحظ كما في الصورة السابقة أسندنا النتيجة التى يتم إرجاعها من str(age) إلى المتغير age وبذلك قمنا بتحديث قيمة المتغير age الحالية والتى هى int إلى القيمة الخارجة من الدالة str وأصبح الآن سلسلة نصية. لذلك كل ما عليك هو كتابة السطر التالي : age = str(age)
  2. وعليكم السلام ورحمة الله وبركاته . إن جميع الدورات في الأكاديمية تم إعداداها بشكل ممنهج حيث يتم أولا البدء بالأساسيات وبعد ذلك تنتقل من قسم إلى أخر حيث يعتمد كل قسم على الأقسام التى قبله . لذلك يرجى متابعة المسارات بالترتيب خاصة مسار الأساسيات وذلك حتى لا تجد صعوبة في مسار يعتمد على المسارات التى قبله . أولا يجب عليك التركيز في الدرس وتأكد من عدم تخطي أى درس قبل التأكد من فهمه جيدا وإذا ما واجهتك مشكلة يمكنك السؤال دائما أسفل الدرس وستجد العديد من المدربين المتاحين لمساعدتك في أى وقت . بعد التأكد من فهم الدرس يرجى التطبيق مع المدرب ويمكنك التطبيق أثناء الدرس ولكن يفضل التطبيق بنفسك مرة أخرى بعد نهاية الدرس وذلك للتأكد من أنك تستطيع تطبيق ما تعلمته حيث في البرمجة التطبيق أهم بكثير من الدراسة النظرية . وفي المسارات الخاصة بالتطبيق العملى ففي هذا المسار يرجى فهم المشروع المطلوب أولا وبعد ذلك يمكنك متابعة الدرس والتطبيق مع المدرب وبعد إنتهاء المسار يفضل إنشاء المشروع من البداية بنفسك والتأكد من عمل المشروع كما من المفترض أن يعمل و بعد ذلك يمكنك مقارنة المشروع الذى أنشأته مع المدرب والمشروع الذى أنشأته بنفسك لتعرف نقاط الضعف والقصور التي لديك حتى تركز عليها . ويمكنك قراءة الأجوبة التالية لنصائح أفضل حول طرق المذاكرة :
  3. وعليكم السلام ورحمة الله وبركاته . لا لم يتم الحفظ بالطبع في قاعدة البيانات حيث الكود لا يقوم بأى تعديل أو حفظ في قاعدة البيانات . حيث يقوم الكود فقط باستبدال القيم الفارغة (null) في عمود "cholesterol" من DataFrame وبما أن الكود يقوم فقط بتعديل وحفظ البيانات في الذاكرة المؤقته ولا يوجد أى كود أخر لحفظ تلك العديلات في قاعدة البيانات فإذا التعديلات ستظل فقط في الذاكرة المؤقته وقاعدة البيانات ستظل كما هي.
  4. كما وضحنا لك فإن أى متغير أو بيانات يتم حفظها في البرنامج نفسه سواء متغير أو شئ فإنه يتم حفظها في الذاكرة المؤقته (RAM) وليس على القرص الصلب (Hard Disk) لديك على الجهاز ولهذا بمجرد إغلاق الحاسوب أو حتى إغلاق البرنامج يتم حذف البيانات من الذاكرة المؤقته وبالتالى فقدان أى بيانات كانت بداخل تلك المتغيرات . وكما أخبرتك لم تصمم البرامج لحفظ المتغيرات على الحاسوب . حيث بمجرد تشغيل البرنامج وإنشاء متغير تقوم اللغة التى تم كتابة الكود بها ومثلا هنا بايثون بحفظ مكان في الذاكرة المؤقته و تعين هذا المتغير بقيمة فارغة حتى تقوم بحفظ البيانات فيه فتقوم بحفظ البيانات في المكان الخاص بهذا المتغير في الذاكرة المؤقته . وحين يتم إغلاق البرنامج تقوم اللغة بالتخلى عن تلك الأماكن في الذاكرة المؤقته ويتم حذف تلك البيانات . ولهذا فلحفظ البيانات يجب إستخدام قواعد البيانات أو ملفات لحفظها مثل ملفات JSON أو CSV أو حتى TEXT . ولكن لا يتم الإعتماد على المتغيرات فلن يتم حفظ البيانات بها وبمجرد إغلاق البرنامج أو إغلاق الحاسوب سيتم فقدها نهائيا.
  5. وعليكم السلام ورحمة الله وبركاته. عند تشغيل البرنامج فإن المتغيرات والبيانات التى يتم حفظها بداخل تلك المتغيرات يقوم البرنامج بحفظها في الذاكرة المؤقته في الجهاز لديك وبمجرد إغلاق البرنامج يتم مسح كافة تلك البيانات من الذاكرة المؤقته . حيث لم يتم تصميم البرامج لحفظ البيانات بتلك الطريقة . ولذلك لحفظ البيانات لديك ينبغى إستخدام قواعد البيانات لحفظها أو يمكنك حفظها في ملف لديك على الجهاز إن كان الأمر بسيط كما لديك هنا حيث يمكنك إستخدام ملف وليدعى مثلا users.txt وبداخله تقوم بحفظ البيانات . حيث حينما تريد حفظ البيانات تقوم بفتح الملف من خلال الدالة open وتقوم بالكتابة على الملف بإستخدام الدالة write هكذا مثلا : from sys import exit from time import sleep import os class User: def __init__(self, first_name, last_name, email, password, status="inactive"): self.first_name = first_name self.last_name = last_name self.email = email self.password = password self.status = status def display(self): print(f"First name: {self.first_name}") print(f"Last name: {self.last_name}") print(f"Email: {self.email}") print(f"Password: {self.password}") print(f"Status: {self.status}\n") print("_" * 20) def to_string(self): return f"{self.first_name},{self.last_name},{self.email},{self.password},{self.status}\n" def load_users(filename): users = [] if os.path.exists(filename): with open(filename, 'r') as file: lines = file.readlines() for line in lines: if line.strip(): first_name, last_name, email, password, status = line.strip().split(',') users.append(User(first_name, last_name, email, password, status)) return users def save_users(users, filename): with open(filename, 'w') as file: for user in users: file.write(user.to_string()) def create_user(): first_name = input("First name: ") last_name = input("Last name: ") email = input("Email: ") password = input("Password: ") return User(first_name, last_name, email, password) filename = 'users.txt' users = load_users(filename) while True: print("Welcome to user management\n") print("Choose an action\n") print("1. Add new user") print("2. Display all users") print("3. Exit\n") choice = input("Enter your choice: ") if choice == '1': users.append(create_user()) save_users(users, filename) print("User added successfully!\n") sleep(2) elif choice == '2': if users: for user in users: user.display() sleep(2) else: print("No users found!") sleep(2) elif choice == '3': print("Exiting...") exit(0) else: print("Invalid choice! Please select 1, 2, or 3.") حيث قمنا بحفظ البيانات في ملف يدعى users.txt ونقوم بقراءة تلك البيانات منه إذا أردنا ذلك . وبهذا حتى لو تم إغلاق البرنامج فستجد أن الملف users.txt يحتوى على البيانات ولهذا لن يتم فقد البيانات.
  6. قم بفتح الرابط في متصفح أخر . من المفترض عند الضغط على تحميل يتم توجيهك إلى صفحة تسجيل الدخول إذا لم يكن لديك حساب قم بتسجيل حساب جديد وبعد ذلك سيتم تحميل الملف معك .
  7. يمكنك الذهاب إلى الموقع الرئيسى الخاص ب oracle وتحميل نسخة ويندوز 64bit منها https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee يمكنك الذهاب إلى الرابط التالي وتحميل النسخة التى تريدها . كما في الصورة هذه النسخة الخاصة بويندوز 64bit لإصدار 19c . إذا كانت هذه النسخة هى ما تريد قم بالضغط على ZIP لتحميل النسخة لديك.
  8. وعليكم السلام ورحمة الله وبركاته . إن تعامل python مع البيانات وخاصة الأرقام مختلف تمام عن التعامل معها في لغة C. حيث أن python هى لغة Dynamic Type حيث يمكنك تغير نوع البيانات في وقت ال run time فإذا كنت قد عرفت المتغير ك int يمكنك تغيره إلى float أو حتى سلسلة نصية و python تسمح لك بهذا و في بايثون الأعداد الصحيحة يمكن أن تنمو بمرونة إلى أي حجم يتسع له الذاكرة المتاحة. أما لغة C هي لغة Static Type حيث لا يمكن تغير نوع المتغير بعد تعريفه فلا يمكن تغير النوع من int إلى float أو أى نوع أخر . والمشكلة التي تحدث والخاصة بظهور أرقام سالبة هي بسبب ال overflow حيث أن البيانات أكبر من حجم الذاكرة الحالية ولذلك يحدث فقدان للبيانات فتظهر أرقام غريبة . تخيل لو أن لدينا زجاجة تسع لتر واحد فقط من المياه ماذا سيحدث إذا وضعنا لترين بها ؟ بالفعل ستتسع فقط للتر واحد واللتر الأخر سوف ينسكب ويضيع وهكذا هى مشكلة ال overflow. والصورة السابقة للجدول الخاص بأنواع البيانات في لغة c و المجال الذي يتسع له كل نوع بيانات . فلاحظ النوع int يتسع من -32,768 إلى 32,767 لو كان 2 byte أي إذا تم وضع 32,768 لاحظ أنه زيادة رقم عن المجال المسموح ستحدث مشكلة ال overflow وستجد أن المتغير يحوى أرقام سالبة أو حتى صفر . لذلك في الكود الذي بلغة c يفضل إستخدام نوع بيانات كبير مثل unsigned long حيث المجال الخاص به كبير كما موضح في الجدول .
  9. إن موقع مستقل من المواقع الرائدة في العالم العربى لتوظيف و وعمل المستقلين عليه باللغة العربية حيث يمكنك البدأ منه في بداية مسيرتك لأن المنافسة فيه ليست قوية كما في المواقع العالمية التي ستجد مستقلين من جميع دول العالم لذلك المنافسة شديدة هناك. وتوجد العديد من المواقع العالمية للعمر الحر وأشهرهم هما : upwork freelancer Fiverr ولكن أخر موقعين هما مواقع إسرائيلية لذلك يفضل عدم العمل عليهم والتعامل مع upwrok حيث أنه من أفضل و أكثر المواقع شهرة للعمل الحر.
  10. إن تركك لشئ ما مدة طويلة بالطبع سينسيك الكثير حوله ولن تستطيع تذكر أشياء كثيرة بخصوص هذا . أما في البرمجة فالأمر يعتمد على ما كنت وصلت إليه سابقا . فإذا كنت قبل الإنقطاع قد ذاكرت جيدا وكانت نسبة إستيعابك للأمور كبيرة فستجد أن المراجعه سهلة بإذن الله وسريعه والطريقة الأفضل في هذه الحالة هي مراجعة التلخيصات إذا كنت قمت بهذا سابقا أما إذا لم تكتب أى تلخيصات فيمكنك مشاهدة دروس حو البرمجة سريعا أو المراجعة من المصادر التي ذاكرت منها سابقا . و يجب عليك أهم شئ أولا مراجعة الأساسيات و محاولة الإستذكار وبعد ذلك يمكنك إنشاء مشاريع صغيره بنفسك لتساعدك في المراجعة بشكل جيد و إذا كنت قد كتبت مشاريع سابقة يمكنك إعادىها دون النظر إليها إلا حين الإنتهاء من المشروع ومقارنة المشروعين وأنظر إلى طريقة كتابتك للكود سابقا وحاليا لتعرف مدى القصور لديك والأجزاء التى تحتاج مذاكرة مرة أخرى منك. أما الشعور بالضياع والتشتت فهذا أمر طبيعى جدا ولكن لا يجب عليك الإستسلام له فبعد المراجعة و التطبيق ستجد أن الأمور أصبحت أسهل و أفضل إن شاء الله فتعلم أى شئ من البداية يكون صعبا فى بادئ الأمر لهذا لا تقلق. أما بخصوص المصادر فيمكنك مشاهدة الدروس التى تريدها على اليوتيوب أو يمكنك الإشتراك في دورة دورة تطوير واجهات المستخدم هنا في الأكاديمية حيث ستساعدك لتصبح مطور واجهات مستخدم أو يمكنك قراءة الدروس والمقالات هنا في الأكاديمية أو موقع موسوعة حسوب حيث ستجد الكثير من الشروحات للدروس في العديد من لغات البرمجة : https://wiki.hsoub.com/الصفحة_الرئيسية https://academy.hsoub.com/programming/
  11. لا يوجد فرق فقط إن ال -q تقوم بمنع طباعة رسائل حقوق الملكية والإصدار ليس إلا . حيث ستجد إذا كتبت بايثون فقط ظهور نص خاص بحقوق الملكية والإصدار : أما إذا كتبت -q لن يقوم بطباعة النص السابق . ولمعرفة ما هي وظيفة و الخيارات المتاحة في بايثون يمكنك كتابة python - h . وإذا كان هذا السؤال خاص بدرس من دروس الدورة فيرجى مستقبلا وضع سؤالك أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا .
  12. المشكلة توجد في سطر 14 و سطر 22 حيث أنكي تستخدمين mysqli وليس PDO لذلك يجب وضعه القيمة بداخل الإستعلام SQL بدلا من كتابة علامة الإستفهام حيث هنا يظن أن علامة الإستفهام هي قيمة نصية وليس قيمة تريدين إستبدالها. لذلك يجب إستبدال سطر 14 بالتالي : $sql = "UPDATE studentinfomation SET username='$username', password='$password' WHERE password = '$password'"; وسطر 22 بالتالي : $sql = "SELECT * FROM studentinfomation WHERE password='$password'";
  13. يوجد عدة أخطاء في كتابة الكود . أولا في سطر 14 لا يوجد شئ يسمى $forsearch فى php يبدوا أنكي تريدين إستخدام foreach لذلك يجب إستبدال $forsearch ب foreach هكذا : foreach($_FILES['images']['tmp_name'] as $key => $tmp_name){ ثانيا في سطر 22 نسيتى كتابة علامة = لإضافة رسالة الخطأ : $errors[] = "حجم الملف كبير"; وأخيرا في سطر 31 نسيتي وضع علامة ال $ لتحديد المتغير errors : $errors[]= " ادخال فشل التحميل"; وهذا هو الكود كاملا بعد التعديل : <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "student"; $conn = new mysqli($servername , $username , $password , $dbname); if($conn->connect_error){ die("فشل الاتصال : " .$conn->connect_error); } if (isset($_FILES['images'])) { $errors = []; $uploaded_File = []; foreach($_FILES['images']['tmp_name'] as $key => $tmp_name){ $file_name = $_FILES['images']['name'][$key]; $file_tmp = $_FILES['images']['tmp_name'][$key]; $file_type = $_FILES['images']['type'][$key]; $file_size = $_FILES['images']['size'][$key]; $upload_dir = 'uploads/'; $uploaded_File = $upload_dir . basename($file_name); if ($file_size >2000000) { $errors[] = "حجم الملف كبير"; continue; } if (move_uploaded_file($file_tmp,$uploaded_File)) { $stmt = $conn->prepare("INSERT INTO imags (image1, image2) VALUES (?,?)"); $stmt->bind_param("ss",$uploaded_File); if ($stmt->execute()) { $uploaded_File[]= $uploaded_File; }else { $errors[]= " ادخال فشل التحميل"; } $stmt->close(); }else { $errors[]=" فشل التحميل"; } } if (!empty($uploaded_File)) { header("Location:confessionscreen.php"); } if (!empty($errors)) { echo" خطا".implode(",",$errors);} } $conn->close(); ?>
  14. إن بايثون تستخدم الإزاحات (Indentations) لتنظيم الكود وتحديد الهيكل والتسلسل الزمني للتعليمات ولذلك فإن أي إزاحة أو مسافة خاطئة تٌحدث خطأ في ترتيب وتسلسل الكود فتظهر مشكلة IndentationError: unexpected indent . ويبدوا من الصورة المرفقة وجود مسافات قبل print("Samer" * 2) لذلك يجب حذف اي مسافة فارغة قبل كتابة أى سطر حتى لا تحدث تلك المشكلة.
  15. g لا شكر على واجب . وبارك الله فيك أخي وجزانا وإياكم كل خير
  16. هل يمكنك إرسال الملف templates\store\product-details.html بعد التعديل الذي أجريته . وأيضا يرجى إرسال صورة للعناصر عند عمل inspect لها : وتأكد من أنها مختلفة مثل الصورة السابقة حيث كل id هو فريد لا يتكرر . وأيضا أن ال id وال for لكل عنصر متشابهان ليعمل بشكل صحيح . ولا شكر على واجب يمكنك السؤال في أي وقت
  17. مرحبا عزيزى محمود . الخطأ لديك في templates\store\product-details.html سطر رقم 85 و 86 حيث أنك تضع ال id الخاص بالعنصر input ك id="item-{{ item.sku }}" وهنا معظم ال item لها نفس ال sku فهنا ستجد أن العديد من العناصر لها نفس ال id ولذلك عند الضغط على label فإنه يبحث عن أول عنصر له ال id الخاص به ولذلك فإنه يختار العناصر في المقاس الإفتراضي . ولحل تلك المشكلة نقوم بتحديد متغير أخر له رمز فريد وهو {{ size.id }} وهو لن يتكرر مع ال item.sku لذلك يرجى تغير سطر 85 و 86 بالتالي : <input type="radio" name="item" id="item-{{ size.id }}-{{ item.sku }}" value="{{ item.sku }}" class="item-option" {% if forloop.first %}checked{% endif %}> <label for="item-{{ size.id }}-{{ item.sku }}"> <img src="{{ item.image.url }}" alt="{{ item.color }}"> </label> ولقد أرسلت لك الملف بعد التعديل . product-details.html
  18. من فضلك هل يمكنك إرسال قاعدة البيانات التي لديك حيث توجد أخطاء كثيرة بسبب قاعدة البيانات
  19. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  20. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  21. إذا كان هذا سؤال متعلق بإحدي الدورات فستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى مستقبلا طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. أما بخصوص المشكلة فهذا بسبب أن المنفذ 3000 مستخدم بالفعل حيث يبدوا أنك قد قمت بتشغيل المشروع في منفذ أوامر أخر لذلك يرجى غلقه.
  22. عموما إن لغات البرمجة والبرامج التي تستخدم في تحرير الأكواد مثل vs code وغيرها لا تستهلك مواردا كثيرة في العمل لذلك عمليا يمكنك إستخدام أي جهاز ولو كانت الرامات 4 GB. ولكن بالطبع كلما زادت الإمكانيات والرامات أمكنك تشغيل عدة برامج في نفس الوقت وستجد سرعة إستجابة في تشغيل البرامج . أما بخصوص الجهاز الخاص بك فهو جهاز جيد إلى حد ما و ، سيكون كافياً لتشغيل البرامج التي ذكرتها. Visual Studio Code: هذا البرنامج ليس ثقيلا على الموارد ولن يستهلك الكثير منها ولذلك لن تواجه أي مشاكل في تشغيله بإذن الله ولكن هذا يعتمد على كمية المشاريع التي تعمل بها في نفس الوقت والإضافات التي تستخدمها فإذا كان هناك إضافات كثيرة لديك ولافتحت أكثر من مشروع في نفس الوقت فمن الممكن أن تلاحظ بطئ أحيانا في الجهاز. لغة البايثون: يمكنك تشغيل معظم برامج Python وتطويرها بشكل مريح على هذا اللاب لذلك لا تقلق من حدوث أي مشكلة وأيضا نفس الملاحظات السابقة إذا كان المشروع كبيرا ويعتمد على مكتبات كثيرة فمن الممكن أن تجد بطئا ملحوظا . الأوتوكاد: يعتمد الأداء هنا على نوعية المشاريع التي تعمل عليها . حيث أن برنامج الأوتوكاد يتطلب مواردا كثيرة وأقل المتطلبات هي رامات 8GB والمفضل أن تكون 16 GB ويحتاج إلى كارت شاشة جيد للمساعدة في عمل Render وإظهار الرسومات. و لذلك إذا كان المشروع يعمل على رسومات معقدة أو كبيرة فقد تواجه بطئأ في أغلب الأحيان أما إذا كانت المشاريع بسيطة إلى متوسطة فغالبا لن تواجه مشاكل البطئ إلا قليلا.
  23. مرحبا بك ماجد. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى مستقبلا طرح سؤوالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. أما بخصوص ملفات المشروع فيوجد نوعين توجد ملفات إبتدائية وهي ما يجب تحميلها والعمل عليها مع المدرب لإكمال المشروع . أما الملفات النهائية فهي الملفات المكتملة للمشروع بعد إنهاءه وإنهاء المسار الخاص به . وهي تسفيدك في إختبار المشروع ومعرفة المميزات به وكيف يعمل لإختبار تطبيقه من خلاله. أما بخصوص المطلوب منك فهو لا يوجد أى شئ حاليا مطلوب سوى البدء في المذاكرة من خلال المسار الأول وهكذا كلما تنتهي من مسار وإنشاء المشاريع الخاصه به يمكنك البدء في المسار الذي يليه مباشرة و يجب البدأ أولا بمسار الأساسيات لأن هذا هو ما ستحتاجه . ويمكنك قراءة الإجابات التالية لمعرفة كيفية مذاكرة الدورة :
  24. وعليكم السلام ورحمة الله وبركاته. يمكنك تثبيت pip (مدير الحزم الخاص ببايثون) على نظامك دون الحاجة لإزالة npm (مدير الحزم ل node.js ). npm و pip يمكن أن يتواجدان على نفس النظام دون تعارض ودون حدوث أي مشاكل . ولتحميل pip كل ما عليك هو الذهاب إلى موقع بايثون الرسمي وتحميل برنامج بايثون الإصدار الذي تريده. ويجب عند التثبيت التأكد من تفعيل خيار Add to path : وهكذا ستجد أنه يوجد لديك npm و pip على نفس الجهاز
  25. يمكنك البحث في قائمة الويندوز عن environment : ومن المفترض أن تظهر معك إذا لم تظهر يمكن فتحها من مكان أخر . قم بالذهاب إلى الإعدادات ثم system ثم about بعد ذلك قم بإختيار advanced system settings : والآن سيتم فتح system proprties
×
×
  • أضف...