-
المساهمات
2691 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
13
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Chihab Hedidi
-
نعم قم فقط بتحميل الملف الذي ينقص، أكتبه في جوجل و ستجد موافع لتحميله، حمله و أتبع الخطوات التي قلت لك.
-
مرحبا أحمد، أرجو منك طرح المشكلة في الفيديو الذي واجهت فيه هذه المشكلة لنتمكن من مساعدتك بشكل أفضل.
-
يوجد بعض الملفات النظامية التي تنقص في الجهاز الذي نقلت اليه التطبيق، و هو مذكور في الإيرور بإسم api-ms-win-core-path-l1-1-0.dll، لذا حاول تحميله فقط و قم بوضعه داخل ملفات الwindows في مجلد system32 ثم قم بإعادة تشغيل الجهاز و سيشتغل معك بدون مشاكل.
- 3 اجابة
-
- 1
-
-
نعم هذا ما كنت أقصده. في سياق مكتبة face_recognition، يتم تمثيل الوجوه كنقاط، ونستخدم face_distance لحساب مدى التشابه بين وجهين باستناد إلى هذه الميزات، و يمكن أن يكون الناتج هو مقياس لقرب أو بعد الوجهين عن بعضهما البعض.
- 9 اجابة
-
- 1
-
-
يستخدم المعامل rtol لتحديد السماحية النسبية وتعني relative tolerance، و القيمة الإفتراضية لها هي 1e-09 أي 0.000000001،بشرح أبسط لنفرض أنه لدينا القيمتين a و b حيث a=100 و b=103 إذا وضعنا السماحية النسبة 0.02 أي 2% سيكون الناتج False لأن الفارق بين x و y أكبر من 2%، أما إذا غيرناه إلى 0.03 سيكون الناتج True: import math x = 100.0 y = 103.0 result = math.isclose(x, y, rel_tol=0.02) print(result)
-
face_locations و face_encodings هما جزءان من الوظائف التي تستخدم للكشف عن الوجوه في الصور واستخراج معلومات حولها، أهم الفروقات بينهما: face_locations: تستخدم للعثور على مواقع الوجوه في الصورة. ترجع قائمة من أقسام الصورة حيث تظهر الوجوه. النتيجة هي تواجد الوجوه في الصورة بدون تفاصيل إضافية. تساعد هذه الوظيفة في تحديد مواقع الوجوه في الصورة. face_encodings: - تستخدم لاستخراج ميزات الوجه (face encodings) من الصورة. - تعيد قائمة من المتجهات الرقمية التي تمثل الوجوه في الصورة. - تحتاج إلى موقع الوجه (الذي يمكن الحصول عليه باستخدام face_locations) لاستخدام هذه الوظيفة. - تستخدم هذه الميزات لمقارنة الوجوه والتحقق من الهوية. و باستخدام هاتين الوظيفتين معا، يمكنك تحديد موقع الوجوه في الصورة باستخدام face_locations ومن ثم استخراج ميزات الوجه باستخدام face_encodings للقيام بالتحقق من الهوية أو مقارنة الوجوه.
- 9 اجابة
-
- 1
-
-
الخطأ يحدث في السطر: df1['إسم المادة'] = col_A لأنك تقوم بتعيين قيم لعمود 'إسم المادة' بشكل كامل، وبالتالي تحتاج إلى التأكد من أن الطول (عدد الصفوف) للعمود الذي تقوم بتعيينه يتطابق مع عدد الصفوف في df1. لحل هذا، يمكنك تعديل الكود على النحو التالي: df1['إسم المادة'] = col_A[:len(df1)] بهذا التعديل، ستقوم بتعيين القيم فقط للصفوف التي توجد في df1، مما يحل المشكلة التي تواجهك.
- 5 اجابة
-
- 1
-
-
لغات مثل Dart لإطار العمل Flutter وJavaScript لـ React Native و حتى java مصممة خصيصا للعمل على المنصات المحمولة، مما يمنحها أداء أفضل في بعض الحالات مقارنة بـ Python. كما أن لديهم مجتمعات تطوير نشطة وشركات كبيرة تدعمهما، مما يجعلهما خيارات شائعة لتطوير تطبيقات الهواتف المحمولة، Flutter و React Native يحصلان على تحديثات منتظمة ودعم رسمي من قبل Google وFacebook على التوالي، مما يعني استمرارية التطوير وتحسين الأداء. لغة البيثون متعددة الإستعمالات لكن لديها مجالات محددة قوية فيهم أهمها الذكاء الإصطناعي، لذلك فهي تبرز في هذا المجال أفضل.
-
يمكنك القيام بذلك بإستخدام الميثود melt حيث تقوم بإعادة تنسيق ال dataframe الخاصة بك على حسب العمود الذي تريد، و هذا مثال بسيط للكود الذي يوضح ذلك: import pandas as pd # نفترض أن DataFrame الخاص بك يسمى df data = { 'رقم الطالب': ['A001', 'A002'], 'عربي': [50, 60], 'حساب': [73, 80], 'علوم': [50, 60], 'جغرافيا': [55, 70] } df = pd.DataFrame(data) # قم بتحويل الDataFrame melted_df = pd.melt(df, id_vars=['رقم الطالب'], var_name='column', value_name='value') # قم بفرز الDataFrame المحولة بناءً على 'رقم الطالب' melted_df = melted_df.sort_values(by=['رقم الطالب']) # عرض الDataFrame المحولة print(melted_df)
- 2 اجابة
-
- 1
-
-
بالطبع يمكنك استخدام مكتبة pandas في Python لحفظ ملف Excel جديد ولحفظ البيانات في نفس الملف، حيث بعد إنشاء DataFrame جديدة باستخدام بياناتك، يتم حفظها في ملف Excel جديد، ثم يتم قراءة الملف للتحقق من الحفظ الصحيح، وبعد ذلك يتم إضافة بيانات جديدة إلى DataFrame ويتم الدمج بينها وبين البيانات الموجودة في الملف السابق، ثم يتم حفظ النتيجة في نفس الملف. فيما يلي مثال بسيط: import pandas as pd # قم بإنشاء DataFrame جديدة (يمكنك استخدام بياناتك الفعلية) data = {'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']} df = pd.DataFrame(data) # اسم الملف الجديد file_path = 'مسار_الملف/اسم_الملف.xlsx' # حفظ DataFrame في ملف Excel جديد df.to_excel(file_path, index=False) # إعادة قراءة الملف للتحقق من الحفظ الصحيح df_read = pd.read_excel(file_path) # قم بإضافة بيانات جديدة إلى DataFrame new_data = {'Column1': [4, 5], 'Column2': ['D', 'E']} df_new = pd.DataFrame(new_data) # الدمج بين DataFrame الحالية والبيانات الجديدة df_combined = pd.concat([df_read, df_new], ignore_index=True) # حفظ البيانات المدموجة في نفس الملف df_combined.to_excel(file_path, index=False) print("تم حفظ البيانات بنجاح.") يرجى تغيير مسار_الملف/اسم_الملف.xlsx إلى المسار الذي تريد حفظ الملف فيه،
-
إذا كنت تستخدم مكتبة tkinter يمكنك استخدام الدالة os.path.basename() لاستخراج اسم الملف من المسار الكامل الذي تم اختياره، فيما يلي مثال بسيط: import tkinter as tk from tkinter import filedialog import os def open_file_dialog(): file_path = filedialog.askopenfilename() if file_path: file_name = os.path.basename(file_path) print("اسم الملف:", file_name) # إعداد النافذة الرئيسية root = tk.Tk() root.withdraw() # لإخفاء النافذة الرئيسية إذا لم تكن مطلوبة # زر لفتح مربع حوار اختيار الملف button = tk.Button(root, text="اختيار ملف", command=open_file_dialog) button.pack() # تشغيل البرنامج root.mainloop() عند تشغيل هذا البرنامج، سيتم فتح مربع حوار لاختيار ملف، وبعد اختيار الملف سيتم طباعة اسم الملف.
- 2 اجابة
-
- 1
-
-
يظهر هذا الخطأ عندما يكون هناك تضارب في إستخدام Tk و Toplevel في تصميم الواجهة الرسومية، و الظاهر أن الخطأ قد يكون ناتجا عن توريث الفئة Menu من customtkinter.CTkFrame و App في الوقت نفسه، مما يؤدي إلى إنشاء نافذة رئيسية و Toplevel في نفس الوقت. لتجنب هذا الخطأ، يمكنك إزالة الوراثة المتعددة واستخدام واجهة المستخدم الرئيسية App كنافذة رئيسية واستخدام Menu كـ Toplevel إذا كنت بحاجة إلى نافذة فرعية. و هذا الكود المصحح: import customtkinter import tkinter as tk from tkinter import filedialog, messagebox, ttk import pandas as pd from pathlib import Path class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("App-v1") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(1, weight=1) Menu(self) def File_dialog(self): self.filename = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) self.label_file["text"] = self.filename return None def Load_excel_data(self): file_path = self.label_file["text"] try: excel_filename = r"{}".format(file_path) if excel_filename[-4:] == ".csv": df = pd.read_csv(excel_filename) else: df = pd.ExcelFile(excel_filename) self.optionmenu1.configure(values=df.sheet_names) self.label2["text"] = df.sheet_names except ValueError: tk.messagebox.showerror("Information", "The file you have chosen is invalid") return None except FileNotFoundError: tk.messagebox.showerror("Information", f"No such file as {file_path}") return None class Menu(tk.Toplevel): def __init__(self, master): super().__init__(master) self.title("Menu") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(1, weight=1) self.create_widgets() def create_widgets(self): self.button1 = customtkinter.CTkButton(self, text='Button 1', command=self.master.File_dialog) self.button1.grid(row=0, column=0, sticky='e') self.label_file = ttk.Label(self, text="") self.label_file.grid(row=1, column=0, sticky='e') self.button2 = customtkinter.CTkButton(self, text='Button 2', command=self.master.Load_excel_data) self.button2.grid(row=2, column=0, sticky='e') self.label2 = ttk.Label(self, text="") self.label2.grid(row=3, column=0, sticky='e') self.optionmenu1 = customtkinter.CTkOptionMenu(self, values=["إختر ورقة العمل"], font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.optionmenu1.grid(row=4, column=0, padx=(10, 10), pady=(10, 10), sticky="e") app = App() app.mainloop()
-
يشير الخطأ إلى مشكلة في محاولة إعادة ترتيب DataFrame باستخدام الفهرس، و أدى هذا إلى تعارض في القيم و يعتبر الفهرس جزءا مهما في هيكل DataFrame، حيث يجب أن يكون لكل صف قيمة فريدة في الفهرس. لمعالجة هذا الخطأ تأكد من أن الفهرس لديك لا يحتوي على قيم مكررة عن طريق الكود التالي: df[df.index.duplicated()] في حالة وجدت قيما مكررة، قم بتصحيحها بالكود التالي: df = df[~df.index.duplicated()]
-
ابحث عن ملفات السجل أو log files التي تم إنشاؤها أثناء عملية التحويل، يمكن أن تحتوي هذه الملفات على معلومات قد تساعد في تحديد سبب المشكلة، ربما لم يتم بناء البرنامج بشكل صحيح. إذا لم يكن هناك ايرورز جرب إستخدام مكتبة أخرى و أنصحك ب PyInstaller لأنني إستعملتها من قبل و كانت تشتغل بدون مشاكل.
-
مرحبا كمال، اذا كانت قاعدة البيانات تتصل بدون أي مشاكل، أرفق ملف المشروع للإطلاع عليه أكثر. بالتوفيق.
-
مرحبا كمال، حاول استخدام هذا الكود وتأكد من أن جميع علامات PHP تأتي بالترتيب الصحيح: <?php $server = 'DESKTOP-PJDLJNR'; $database = 'Legacy'; $username = ''; $password = ''; $connection = new PDO("sqlsrv:Server=$server;Database=$database", $username, $password); if (!$connection) { die(print_r(sqlsrv_errors(), true)); } $sql_query = 'SELECT * FROM Problemss'; $statement = $connection->query($sql_query); ?> <table border="1" width="100%"> <tr> <th>تم</th> <th>الحلول</th> <th>المشكلة</th> <th>م</th> <th>الرقم</th> </tr> <?php while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { ?> <tr> <td><?php echo $row['تم']?></td> <td><?php echo $row['الحلول']?></td> <td><?php echo $row['المشكلة']?></td> <td><?php echo $row['م']?></td> <td><?php echo $row['الرقم']?></td> </tr> <?php } ?> </table> <?php $connection = null; // إغلاق الاتصال بقاعدة البيانات ?> بالتوفيق إن شاء الله.
-
مرحبا كمال، يبدو أن هناك خطأ في تركيبة كود PHP الخاص بك، بحيث أن العبارة print_r($row); يجب أن تكون خارج الحلقة وقبل جدول HTML، و أيضا يجب عليك إغلاق علامة PHP بشكل صحيح قبل بدء كود HTML. هذا كود ال php بعد التصحيح: <?php $server = 'DESKTOP-PJDLJNR'; $database = 'Legacy'; $username = ''; $password = ''; $connection = new PDO("sqlsrv:Server=$server;Database=$database", $username, $password); if (!$connection) { die(print_r(sqlsrv_errors(), true)); } $sql_query = 'SELECT * FROM Problemss'; $statement = $connection->query($sql_query); ?> <table border="1" width="100%"> <tr> <th>تم</th> <th>الحلول</th> <th>المشكلة</th> <th>م</th> <th>الرقم</th> </tr> <?php while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { ?> <tr> <td><?php echo $row['تم']?></td> <td><?php echo $row['الحلول']?></td> <td><?php echo $row['المشكلة']?></td> <td><?php echo $row['م']?></td> <td><?php echo $row['الرقم']?></td> </tr> <?php } $connection = null; // close the connection ?> </table> تأكد من استبدال القيم المؤقتة لـ $username و $password بالقيم الفعلية لاعتمادك على قاعدة البيانات. بالتوفيق إن شاء الله @كمال صالح محمد
-
الخطأ الذي تواجهه يحدث عندما يكون لديك أعمدة متكررة في DataFrame الخاص بك، مما يؤدي إلى فشل عملية إعادة التسمية (Reindexing) لحل هذا الخطأ، يمكنك إضافة ignore_index=True عند استخدام دالة concat و يمكنك تغيير السطر البرمجي الأخير ليصح كالتالي: result = pd.concat(frames, ignore_index=True) بهذه الطريقة، ستقوم pandas بإعادة ترقيم الفهارس بشكل فريد بدلا من محاولة استخدام الفهارس الحالية، مما يمنع حدوث الخطأ الذي تواجهه.
- 1 جواب
-
- 1
-
-
هو المتغير الذي فيه البيانات التي ستحفظها في الملف، لنفرض مثلا ان ملف الاكسل الخاص بك فيه عمودين name و email ، يكون المتغير بهذه الطريقة: row_information = {"Name": "شهاب", "Email": "chihab@mail.com"}
- 3 اجابة
-
- 1
-
-
حل الأسئلة الإختبارية لا نجيبه بشكل مباشر و لكن سأشرح لك طريقة الحل لتستطيعي كتابة الحل بمفردك، أولا يجب عليك الطلب من المستخدم إدخال رقم الموظف الذين يريد أن يبحث عنه، نستخدم Scanner لاستقبال إدخال المستخدم. للبحث في المصفوفة نستخدم حلقة for-each للانتقال عبر جميع العناصر في المصفوفة ونقوم بمقارنة كل عنصر (رقم الموظف) مع الرقم الذي أدخله المستخدم، إذا تم العثور على تطابق، نعين المتغير ليكن مثلا بإسم found على القيمة true ونوقف الحلقة بإستخدام break. في الأخير ادوات الشرط if-else لطباعة نتيجة البحث، حيث اذا كان الموظف موجود (قيمة found هي true)، نطبع "الموظف موجود في القائمة". - إذا لم يتم العثور على الموظف نطبع "الموظف غير موجود في القائمة".
-
هذه الميثود غير موجودة في مكتبة Pandas يمكن استعمال الميثود loc بحيث تقوم بالتأشير على السطر الأخير بعدها تضيف المعلومات فيه، و هذا كود لتفهم أكثر: df = pd.read_excel("example.xlsx") df.loc[len(df)] = row_information df.to_excel("example.xlsx", index=False) نستخدم loc لتحديد سطر في DataFrame باستخدام الفهرس (index). في هذا السياق، استخدمت len(df) للإشارة إلى السطر الأخير في DataFrame ومن ثم إضافة معلومات الصف الجديدة row_information إلى هذا السطر.
-
لديك بعض المشكلات في الربط بين الكلاسات في الكود الخاص بك، يجب عليك تصحيح الطريقة التي تقوم بها بتمرير الـ method إلى الأزرار داخل Frame2، يجب تمرير instance من الكلاس App إلى Frame2 واستخدام هذا الـ instance لاستدعاء الـ LoadFile و LoadFile1. إليك الكود المصحح: import customtkinter from tkinter import filedialog from pathlib import Path import pandas as pd class App(customtkinter.CTk): def __init__(self): super().__init__() self.FilePath = None self.sh = None self.title("App-v1") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(1, weight=1) customtkinter.set_appearance_mode("dark") customtkinter.set_default_color_theme("green") Frame_A = Frame1(self) Frame_A.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="ew", columnspan=2) Frame_A.grid_columnconfigure(0, weight=1) Frame_A.configure(border_width=1, border_color="#0087f2") Frame_B = Frame2(self) Frame_B.grid(row=1, column=0, padx=(10, 10), pady=(10, 10), sticky="news") Frame_B.grid_columnconfigure(0, weight=1) Frame_B.configure(border_width=1, border_color="#0087f2") def LoadFile(self): self.FilePath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) return self.FilePath def LoadFile1(self): df = pd.ExcelFile(self.FilePath) self.sh = df.sheet_names print(self.sh) class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.label1 = customtkinter.CTkLabel(self, text="Welcome", fg_color="transparent", font=customtkinter.CTkFont(family="Calibri", size=18, weight="bold"), justify="center") self.label1.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="n") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) # تمرير الـ instance من الـ App لـ Frame2 self.button1 = customtkinter.CTkButton(self, text="Open File", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=master.LoadFile) # استخدام الـ instance لاستدعاء الـ method self.button1.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="e") self.button2 = customtkinter.CTkButton(self, text="Open File", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=master.LoadFile1) # استخدام الـ instance لاستدعاء الـ method self.button2.grid(row=0, column=1, padx=(10, 10), pady=(10, 10), sticky="e") app = App() app.mainloop() قمت بتعديل الأزرار داخل Frame2 لتمرير الـ instance الخاصة بـ App واستخدمتها لاستدعاء الـ method.
-
للوصول إلى المتغيرات بين الكلاسات في لغة البرمجة، يمكنك استخدام مفهوم الوراثة حيث تسمح لك بإنشاء كلاس جديد يرث الخصائص والسلوكيات من كلاس آخر. سأحاول أن اشرح لك بمثال متفهم أكثر: لنفترض أنه لدينا Class A مع دالة ترجع قيمة: class A: def __init__(self): self.result = 0 def do_something(self): # قم بعملية هنا واحتفظ بالناتج في self.result self.result = 42 ثم لنقم بإنشاء Class B ونرث من Class A: class B(A): def __init__(self): # يمكنك استدعاء __init__ من الكلاس الأساسي باستخدام super() super().__init__() def do_another_thing(self): # يمكنك الآن الوصول إلى self.result من Class A print(f"The result from Class A is: {self.result}") و بهذا يمكنك استخدام Class B والوصول إلى المتغير result الذي تم حفظه في Class A بواسطة دالة do_something: # إنشاء كائن من Class B obj_b = B() # استدعاء الدالة do_something التي تأتي من Class A obj_b.do_something() # استخدام الدالة do_another_thing التي تأتي من Class B obj_b.do_another_thing() وهذا المفهوم عام ويمكن تطبيقه بطرق مختلفة حسب اللغة.
- 1 جواب
-
- 1
-