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

Khaled Osama3

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

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

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

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

    1

كل منشورات العضو Khaled Osama3

  1. هذه الخاصية تساعد في تقليل المساحات البيضاء الفارغة حول المخطط، و بالتالى فإن المخطط يظهر بدون هوامش إضافية غير ضرورية. خاصة عند تضمين الصور في تقارير أو مستندات.
  2. وعليكم السلام الـ Data Visualization (تصور البيانات) في ال (Machine Learning) كبيرة جدا ، و يقوم بدور مهمًا في جميع مراحل تعلم الآلة، من استكشاف البيانات، إلى بناء النماذج، وتقييم النتائج. يساعد على اتخاذ قرارات أفضل . و هى تساعد فى فهم البيانات للعلماء والمحللين. فقبل بناء نموذج تعلم الآلة، من الضروري فهم طبيعة البيانات، توزيعها، وما إذا كانت هناك أي علاقات بين السمات (features). مثل الرسوم البيانية مثل scatter plots أو histograms أو correlation matrices و تساعد ايضا فى اختيار السمات المهمة و نسميها (Feature Selection) فيمكننا بسهولة تحديد السمات التي لها تأثير أكبر على النتيجة النهائية. هذا يساعد في تقليل عدد السمات التي سيتم استخدامها في النموذج وتحسين ال performance. و تساعد فى تقييم أداء نموذج تعلم الآلة بعد بناؤه. و الكثير ممن الامور الاخرى. فهى من اهم المهارات فى مجال تعلم الالة
  3. لكى تستطيع حفظ المخطط الذي تم إنشاؤه باستخدام matplotlib، يمكنك استخدام الدالة savefig لحفظه كصورة (مثل PNG أو JPG أو PDF). هذه الدالة تحفظ الشكل أو المخطط النهائي في ملف بدلاً من عرضه فقط. و يمكنك استخدامها هكذا: import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(20, 16)) plotnumber = 1 # Loop through each column in the dataframe for col in df.columns: # Check if the number of unique values is less than 5 if df[col].nunique() < 5: if plotnumber <= 6: plt.subplot(2, 3, plotnumber) ax = sns.countplot(x=df[col], hue=df['target'], palette='bright') # Add labels to each bar in the plot for p in ax.patches: ax.text(p.get_x() + p.get_width() / 2., p.get_height() + 3, f'{int(p.get_height())}', ha="center") plotnumber += 1 # Save the figure as a file plt.savefig('output_plot.png', bbox_inches='tight') plt.show() فى هذا السطر يكمن عملية الحفظ: plt.savefig('output_plot.png', bbox_inches='tight')
  4. و عليكم السلام دعنا نتفق ان الهدف من الكود: هو رسم مخططات التكرار للأعمدة التي تحتوي على عدد قليل من القيم الفريدة (أقل من 5)، وتقسيم الرسوم البيانية على نافذة شبكية من 6 رسومات. هذا لاحتياجنا لفهم توزيع القيم الفريدة في كل عمود ومعرفة كيف تتوزع. اما هذا السطر: if df[col].nunique() < 5: مستخدم لتحديد الأعمدة التي تحتوي على عدد صغير من القيم الفريدة(unique) ، مثل الأعمدة التصنيفية . فعلى سبيل المثال، عمود يحتوي على فئات مثل "ذكر/أنثى" أو "نعم/لا" أو "مستويات تصنيفية" يمكن تمثيله بشكل جيد بواسطة مخططات تكرار. فإذا كان العمود يحتوي على عدد كبير جدًا من القيم الفريدة، يصبح هذا النوع من الرسوم البيانية غير مفيد، لذا يتم تجاهلها.
  5. و عليكم السلام ال nunique هى اختصار ل number of unique و ذلك يعنى عدد القيم الفريدة فى ال Series أو DataFrame. مثال على ال series: import pandas as pd # examples of data data = {'Customer_Name': ['Ahmed', 'Mohammed', 'Sara', 'Mohammed', 'Ahmed']} df = pd.DataFrame(data) # Count unique values in the 'Customer_Name' column unique_count = df['Customer_Name'].nunique() print(unique_count) # Output: 3 فى هذا المثال ال list تحتوى على اربع قيم ولاكن Ahmed و Mohammed مكررين مرتين (و يمكن ان يكون اكثر فى مثال اخر) و لذذلك كلا منهم يعتبر واحد فقط و يصبح العدد 3. مثال على dataframe: import pandas as pd data = {'Customer_Name': ['Ahmed', 'Mohammed', 'Sara', 'Mohammed', 'Ahmed'], 'Product': ['Apple', 'Banana', 'Apple', 'Apple', 'Banana']} df = pd.DataFrame(data) # Count unique values for each column in the DataFrame # 000000000000000000000000000000000000000000000000000000 unique_counts = df.nunique() print(unique_counts) # the output is: # Customer_Name 3 # Product 2 # dtype: int64 يتم حساب القيم الفريدة فى كل column و يكون الناتج: Customer_Name 3 Product 2 dtype: int64
  6. و عليكم السلام يمكنك العمل على كل فرع او على كل الفروع و لكن هذا يعتمد على هدفك من التحليل إذا كنت تهدف إلى فهم العملاء بشكل عام بغض النظر عن الفرع، فإن دمج الفروع قد يكون أكثر منطقية. او حجم البيانات:إذا كان حجم البيانات كبير جدًا لكل فرع، يمكنك التفكير في تقسيم العمل إلى مراحل لكل فرع. او نوع البيانات: إذا كانت البيانات المتعلقة بالفروع تختلف جذريًا (مثل المنتجات، العروض، العملاء)، فقد يكون العمل على كل فرع بشكل مستقل أفضل. اذا حددت هذه الامور ستجد الجواب الصحيح.
  7. وعليكم السلام ورحمه الله وبركاته اذا كان Github اخبرك انه ارسل رساله علي الجيميل فيجب ان تكون وصلت لك ولكن قد تتاخر من دقيقه الي خمس دقايق اذا انتظرت اكثر من ذلك ومع ذلك لم تصل الرساله فأحيانا يتم تصنيف رسائل GitHub كرسائل غير مرغوب فيها ويتم نقلها إلى مجلد الـ "Spam". افحص هذا المجلد في بريدك الإلكتروني للتأكد من أن الرسالة لم تصل هناك. ويجب ايضا التاكد من عنوان البريد الالكتروني انه صحيح ثم طلب اعاده ارسال الرساله مره اخري من الجيت هاب اذا استمرت المشكله فاذا يجب التواصل مع الدعم الفني لل Github لتوضيح المشكلة. قد تكون هناك مشكلة مؤقتة في إرسال الرسائل من جانبهم.
  8. وعليكم السلام ورحمه الله وبركاته نظام لينكس ونظام ويندوز هم نظامان تشغيل مختلفان، يعني كل واحد له طريقته الخاصة في العمل. إذا تعلمت نظام لينكس، مش معناه أنك اتعلمت ويندوز، لأن كل واحد له شكل مختلف وطريقة تشغيل البرامج الخاصة به. لكن إذا فهمت كيف يشتغل نظام لينكس، هيسهل عليك فهم ويندوز، لأنك بتكون اكتسبت مهارات عامة عن كيفية عمل الأنظمة (زي إدارة الملفات، تشغيل البرامج، التعامل مع الأوامر).
  9. الكود غير واضح من الصوره يرجي ارسال الكود لتفقد المشكله ومساعدتك بشكل افضل
  10. و عليكم السلام من الافضل ان تعمل على مشروع و تقوم بانشاء Frontend له. و هذا سوف يعزز عندك مهارة البرمجة و يمكنك من معرفه اكواد جديدة و مشاكل جديدة. و كل ما تحل المشاكل تزداد مهارتك فى البرمجة اكثر. يمكنك عمل مشروع او اثنين باستخدام تعلم الالة و الواجهات الامامية. و لاكن اهتم اكثر بجانب تعلم الالة. اما بالنسبة لللتعلم العميق: فيمكنك تعلمها بجانب شغلك فى المشاريع و من الافضل الا تضغط على نفسك. خذ وقتك فى التعلم. و يمكنك البدء فى التقديم على شغل و بعد الانتهاء من المشاريع و تعلمك للمهارات فهذا يعزز سيرتك الذاتية بما فيها من مشاريع و مهارات تكفى للتقديم على وظيفة او تدريب. بالتوفيق
  11. اولا يجب عليك تحميل sqlite3 اولا و هذا عن طريق هذا الرابط و الضغط على sqlite-tools-win-x64-3460100.zip و بعد التنزيل يجب فك الضغط. ثم ابحث عن Advanced system settings فى بحث الويندوز. و اضغط على Environment Variables button ثم ابحث عن Path فى ال System variables و اضغط New و اضف المسار للملف الذى فككت الضغط له ثم اضغط ok و بعد ذلك افتح ال terminal و حول المسار الى الفولدر الذى يحتوى على الملف. ثم نفذ هذا الامر: sqlite3 database.db .dump > database.sql قم بإنشاء قاعدة بيانات جديدة في MySQL لاستيراد البيانات إليها. يمكنك استخدام أداة مثل mysql من سطر الأوامر أو أي أداة إدارة قاعدة بيانات مثل phpMyAdmin أو MySQL Workbench. و مثلا سننشئ قاعدة بيانات اسمها my_database: CREATE DATABASE my_database; الآن يمكنك استيراد ملف SQL إلى قاعدة بيانات MySQL. mysql -u username -p my_database < database.sql استبدل username باسم المستخدم الخاص بـ MySQL، وmy_database باسم قاعدة البيانات التي أنشأتها و بعد ذلك يمكنك استعمال اى استبيان للتأكد من وجود البيانات و هناك طريقة اخرى بدون الحاجة الى sqlite وهى استخدام مكتبات sqlalchemy و pandas و عن طريق هذا الكود: import pandas as pd from sqlalchemy import create_engine # تحميل ملف CSV df = pd.read_csv("data.csv") # إنشاء اتصال بقاعدة البيانات MySQL engine = create_engine('mysql+pymysql://username:password@localhost/my_database') # تحويل البيانات إلى SQL df.to_sql("table_name", con=engine, if_exists="replace", index=False) تأكد من استبدال username وpassword وlocalhost وmy_database بالقيم الخاصة بإعدادات MySQL الخاصة بك.
  12. في 44 line: كتابة قيمة transition في الخاصية :hover. هناك فاصلة بدلًا من النقطة في القيمة 0,9s. يجب أن تكون القيمة مكتوبة هكذا: 0.9s. اما في 50 line: الكود يحتوي على مسافة غير صحيحة بين وسم h1 والخاصية :hover. يجب أن تكون كتابة الخاصية :hover بدون مسافة بينها وبين الوسم. و هذا هو الحل: h1:hover, p:hover { background-color: hotpink; padding: 20px 0; transition: all 0.9s; border-radius: 15px; } و يجب ان يكون اللينكات تبدأ ب http او https مثل هكذا: <a href="https://www.google.com"> Most Popular</a> و الكود النهائى يكون: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } img { width: 100%; border-radius: 10px 100px; } h1 { text-align: center; font-size: 25px; } nav { background-color: #0f1922; opacity: 0.9; padding: 30px 0; margin: 30px 0; border-radius: 10px 100px; position: sticky; top: 0; text-align: center; } p { margin: 40px 20px; font-size: 20px; } a { color: white; padding: 15px 30px; text-decoration: none; font-size: 20px; } a:hover { background-color: #16446c; border-radius: 10px 100px; transition: all 0.7s; } h1:hover, p:hover { background-color: hotpink; padding: 20px 0; transition: all 0.9s; border-radius: 15px; } </style> </head> <body> <img src="img/pexels-agneselunecka-25857969.jpg" alt="asaa"> <nav> <a href="www.google.com"> Most Popular</a> <a href="www.google.com"> Top Rated</a> <a href="www.google.com">Coming soon</a> <a href="www.google.com">News</a> </nav> <h1 class="asaa">Main Title of the page</h1> <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. Exercitationem explicabo assumenda, ex dolorem earum adipisci nihil impedit aliquam atque quae?</p> <!-- باقي الفقرات... --> </body> </html>
  13. و عليكم السلام ال command line هى الاوامر التى ننفذها فى ال termainal او powershell و يمكنك تنفيذ الأوامر بسرعة اكبر من خلالهم، والعمل مع الملفات والمجلدات. فيمكننا تشغيل ملفات ال python باستخدام ال CLI مثل اذا كنا نريد تشغيل ملف test.py: python test.py ويمكنك تمرير المتغيرات الى بايثون من خلال سطر الأوامر باستخدام مكتبة sys أو argparse. مثل اذا اردنا تمرير متغيرات مع تشغيل الملفtest.py: import sys print("1st argument:", sys.argv[1]) print("2nd argument:", sys.argv[2]) و لتشغيل الملف: python test.py arg1 arg2 و يمكننا تثبيت الحزم و المكتبات عن طريقها ايضا مثل: تثبيت المكتبة pandas: pip install pandas # or any library او يمكننا التفاعل مع بايثون مباشرة حيث يمكنك بدء التفاعل مع بايثون في سطر الأوامر بكتابة python أو python3 فقط. هنا يمكنك كتابة أوامر بايثون مباشرة. python ثم كتابة الكود: print("Hello, World!") و ستكون النتيجة المطبوعة فى ال terminal: Hello, World!
  14. يمكنك تصفح موسوعة حسوب التي تحتوي على توثيق شامل للغة بايثون، حيث تجد المصطلحات الإنجليزية مرفقة بجانب الترجمة العربية. عن طريق هذا المسار. كما يوجد كتاب خاص بلغة بايثون تابع للأكاديمية، يقدم شرحاً وافياً للغة ومدعوماً بالمصطلحات الإنجليزية بجانب العربية. يمكنك تحميل الكتاب من هذه الصفحة: البرمجة بلغة بايثون. إذا واجهتك صعوبة فستجد أسفل الدرس صندوق للتعليقات كما هنا، او هنا يمكنك السؤال عن اى سؤال و سوف يتم الرد عليها سريعا. .
  15. و عليكم السلام يمكن استخدام الاتنين pandas او sql على حسب المهمة التى تقوم بها. فهذا على حسب حجم البيانات وطبيعة العمل و لكن فى مسار تعلم الالة يفضل استخدام pandas لعمليات مثل ال cleaning و غيرها قبل إدخالها إلى قاعدة البيانات.
  16. و عليكم السلام كان يوجد مشكلة فى زر الجمع و زر المساوة يجب ان تضع فى الbutton_click احتمال لل + و استخدامها: def button_click(root, text): if text == "=": try: result = str(eval(entry_field.get())) entry_field.delete(0, tk.END) entry_field.insert(0, result) except: entry_field.delete(0, tk.END) entry_field.insert(0, "Error") elif text == "+": # add this condition entry_field.insert(tk.END, "+") elif text == "CLR": entry_field.delete(0, tk.END) elif text == "BCKSP": entry_field.delete(len(entry_field.get()) - 1, tk.END) else: entry_field.insert(tk.END, text) و لست بحاجة الى هذا الكود فهو غير مستخدم: if Calculator == "addition": entry_field.insert(0, number1 + int(numbertwo)) و يجب التعديل فى كود ال button 8, 9 و ذلك باستخدام button_click بدلا من button_add and button_equal: button_8 = tk.Button(root, text="+", bg="blue", fg="white", font="Arial, 12", command=lambda: buttonadd()) button_8.grid(row=1, column=2, columnspan=4, padx=10, pady=10) button_9 = tk.Button(root, text="=", bg="blue", fg="white", font="Arial, 12", command= lambda: buttonequal()) button_9.grid(row=1, column=3, columnspan=4, padx=10, pady=10) و يمكنك ايضا الاستغناء عن جميع ال imports و جعلها بهذة الطريقة: from tkinter import * import tkinter as tk from tkinter.tix import * و هذا كل الكود بعد التعديلات. ولاحظ أن الكود مختلف فى التنسيق و ذلك لستخدامى black formatter يمكن البحث عنه و هو ينسق كود البايثون بشكل افضل. from tkinter import * import tkinter as tk from tkinter.tix import * class Calculator: def __init__(self, master): self.master = master def button_click(entry, value): entry_field.insert(tk.END, value) def clear(entry): entry_field.delete(0, tk.END) def backspace(entry): current_text = entry.get() entry_field.delete(len(current_text) - 1) def buttonadd(): global number1 global operation number1 = int(entry_field.get()) operation = "addition" entry_field.delete(0, END) def buttonequal(): number2 = int(entry_field.get()) entry_field.delete(0, END) if operation == "addition": result = number1 + number2 entry_field.insert(0, result) def button_click(root, text): if text == "=": try: result = str(eval(entry_field.get())) entry_field.delete(0, tk.END) entry_field.insert(0, result) except: entry_field.delete(0, tk.END) entry_field.insert(0, "Error") elif text == "+": entry_field.insert(tk.END, "+") elif text == "CLR": entry_field.delete(0, tk.END) elif text == "BCKSP": entry_field.delete(len(entry_field.get()) - 1, tk.END) else: entry_field.insert(tk.END, text) # إنشاء نافذة التطبيق الرئيسية root = Tk() root.geometry("1000x1000") root.title("برنامج تحويل التقويم الياباني") root.configure(background="light green") root.columnconfigure((0, 1, 2, 3, 4), weight=1) # إنشاء أداة بالون للتلميحات tool_tip = Balloon(root) # إنشاء تسميات الإدخال label_1 = tk.Label(root, text="近現代", bg="green", fg="white", font=("Mincho", 12)) label_1.grid(row=0, column=0, columnspan=4, padx=10, pady=10) # إنشاء حقل الإدخال entry_field = tk.Entry(root, width=30, justify="right", font=("Arial", 16)) entry_field.grid(row=1, column=0, columnspan=4, padx=10, pady=10) # إنشاء الأزرار button_1 = tk.Button( root, text="明治", bg="green", fg="white", font="Mincho, 12", command=lambda: button_click(root, "1868"), ) button_1.grid(row=2, column=0, columnspan=4, padx=10, pady=10) button_2 = tk.Button( root, text="大正", bg="green", fg="white", font="Mincho, 12", command=lambda: button_click(root, "1912"), ) button_2.grid(row=3, column=0, columnspan=4, padx=10, pady=10) button_3 = tk.Button( root, text="昭和", bg="green", fg="white", font="Mincho, 12", command=lambda: button_click(root, "1926"), ) button_3.grid(row=4, column=0, columnspan=4, padx=10, pady=10) button_4 = tk.Button( root, text="平成", bg="green", fg="white", font="Mincho, 12", command=lambda: button_click(root, "1989"), ) button_4.grid(row=5, column=0, columnspan=4, padx=10, pady=10) button_5 = tk.Button( root, text="令和", bg="green", fg="white", font="Mincho, 12", command=lambda: button_click(root, "2019"), ) button_5.grid(row=6, column=0, columnspan=4, padx=10, pady=10) button_6 = tk.Button( root, text="CLR", bg="blue", fg="white", font="Arial, 12", command=lambda: entry_field.delete(0, tk.END), ) button_6.grid(row=1, column=4, columnspan=4, padx=5, pady=5) button_7 = tk.Button( root, text="BCKSP←", bg="blue", fg="white", font="Arial, 12", command=lambda: entry_field.delete(len(entry_field.get()) - 1, tk.END), ) button_7.grid(row=1, column=5, columnspan=4, padx=5, pady=5) button_8 = tk.Button( root, text="+", bg="blue", fg="white", font="Arial, 12", command=lambda: button_click(root, "+"), ) button_8.grid(row=1, column=2, columnspan=4, padx=10, pady=10) button_9 = tk.Button( root, text="=", bg="blue", fg="white", font="Arial, 12", command=lambda: button_click(root, "="), ) button_9.grid(row=1, column=3, columnspan=4, padx=10, pady=10) button_10 = tk.Button( root, text="1", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "1"), ) button_10.grid(row=4, column=1, columnspan=4, padx=5, pady=5) button_11 = tk.Button( root, text="2", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "2"), ) button_11.grid(row=4, column=2, columnspan=4, padx=5, pady=5) button_12 = tk.Button( root, text="3", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "3"), ) button_12.grid(row=4, column=3, columnspan=4, padx=5, pady=5) button_13 = tk.Button( root, text="4", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "4"), ) button_13.grid(row=4, column=4, columnspan=4, padx=5, pady=5) button_14 = tk.Button( root, text="5", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "5"), ) button_14.grid(row=4, column=5, columnspan=4, padx=5, pady=5) button_15 = tk.Button( root, text="6", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "6"), ) button_15.grid(row=5, column=1, columnspan=4, padx=5, pady=5) button_16 = tk.Button( root, text="7", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "7"), ) button_16.grid(row=5, column=2, columnspan=4, padx=5, pady=5) button_17 = tk.Button( root, text="8", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "8"), ) button_17.grid(row=5, column=3, columnspan=4, padx=5, pady=5) button_18 = tk.Button( root, text="9", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "9"), ) button_18.grid(row=5, column=4, columnspan=4, padx=5, pady=5) button_19 = tk.Button( root, text="0", bg="cyan", fg="white", font="Arial, 12", command=lambda: button_click(root, "0"), ) button_19.grid(row=5, column=5, columnspan=4, padx=5, pady=5) # تعيين التلميحات للأزرار tool_tip.bind_widget(button_1, balloonmsg="أقصي رقم للادخال هو 44") tool_tip.bind_widget(button_2, balloonmsg="أقصي رقم للادخال هو 14") tool_tip.bind_widget(button_3, balloonmsg="أقصي رقم للادخال هو 63") tool_tip.bind_widget(button_4, balloonmsg="أقصي رقم للادخال هو 29") tool_tip.bind_widget(button_5, balloonmsg="لا يوجد رقم أقصي حتي تاريخه") # تشغيل حلقة التطبيق الرئيسية root.mainloop() بالتوفيق.
  17. و عليكم السلام ال int ليس دالة هو class. و هو يعتبر من انواع البيانات فى البايثون (data type). و يكون استخدامه هو انك تنشئ كائنات objects من النوع int عن طريق استخدام class. و يمكنك معرفة هذا عن طريق استخدام هذا الكود: variable = int(10) print(type(variable)) و سوف تكون النتيجة: <class 'int'>
  18. و عليكم السلام لغة البايثون لست من اللغات البطيئة ولاكنها تستخدم فى اكثر من و مجال و technology و هى ايضا تقوم بالتحكم فى ال memory و تقوم بالعديد من العمليات فى وقت التشغيل. و ال interpreter يقوم بالتحقق من كل سطر على حدى لذلك قد ياخذ بعض الوقت يجب ال ننسى مميزات ال interpreter مثل: اسرع و اسهل فى عملية التصحيح من اجل تشغيل الكود و يسمح لل programmers برؤية الخطأ بشكل اسرع. و ايضا سهولة تعديلها بعد ذلك. لانه كما نعرف ان لغة البايثون متعددة الاستخدامات و يهمها سرعة التطوير اكثر من امور اخرى. بالتوفيق
  19. يمكننا ذلك عن طريق استخدام مكتبة OS و Time فى ال Python واجحدة لتوفير دالة التحكم فى الوقت و الاخرى للتعامل مع ال terminal مثل هذا الكود تماما: import os import time as t # waiting 5 seconds t.sleep(5) os.system('cls' if os.name == 'nt' else 'clear') # you can make another cmd كما تحب os.system('your_command_here') المكتبة Time هى من تتحكم فى الوقت
  20. من فضلك إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتكى بشكل أفضل.
  21. بعد مراجعة الكود، لم أجد أي أخطاء كبيرة تعيق فكرة التشغيل. و لكن هناك بعض النقاط يمكن تحسينها او تكون سبب لمشاكل صغيرة في الكود، مثل: قم بإضافة المكتبة المناسبة وهي tooltip وفي حال كنت تجرب إضافة Tooltip بطريقة مختلفة، فقد لا تكون مدعومة بشكل ما مع Tkinter. او قم بإضافة ال parameter الرابع وهو يكون النص الذي يظهر في الـ Tooltip: self.create_button("1", 1, 0, "اضغط لإدخال الرقم 1") بالتوفيق
  22. وعليكم السلام يمكنك ذلك عن طريق استخدام مكتبة os و platform فى البايثون و ذلك مثل: import os import platform # function that excute the mission def clear_screen_terminal(): if platform.system() == "Windows": os.system("cls") else: os.system("clear") clear_screen_terminal() فهذا الكود يتاكد من نظام التشغيل أولاً. إذا كان النظام "Windows"، فإنه يستخدم أمر CLS لمسح الشاشة، وإذا كان نظام آخر (مثل Linux أو macOS)، فإنه يستخدم أمر Clear.
  23. يمكنك تحويلها باسخدام الدالة ToString من Convert. تستخدمها مع كلا من الرقم العشرى و 2 ك parameter و هذا مثل: using System; class Program { static void Main() { int decimalNum = 42; // convert from decimal to binary. string binaryNum = Convert.ToString(decimalNum, 2); // show the output. Console.WriteLine($"الرقم العشري: {decimalNum}"); Console.WriteLine($"الرقم الثنائي: {binaryNum}"); } } و هذا مثال لشكل ال output: الرقم العشري: 42 الرقم الثنائي: 101010
  24. وعليكم السلام احسنت عملا. برافو استخدمت ال OOP كويس و عرفت تظبط ال inheritance بشكل كويس و ال exceptions. و من الرائع ايضا استخدامك للرموز و العبارات الموضحة لل errors. و لكن لدى بعض النصائح: من الافضل انك توضح ال comments فى اجزاء الكود أكثر ليسهل على باقى المطوريين فهمه بشكل اسرع. لازم تجرب الكود عن طريق انك تعمل فايل تانى وتجرب تستخدم فيه ال objects من كل ال classes اللى عملته و هذا ما نطلق عليه ال Unit test: و هو تجربه الكود الخاص بك من الافضل ايضا ان لا تجعل الكود كله فى نفس الملف ففى المشاريع الكبيرة سوف يصعب عليك فهم و تعديل الكود بعد ذلك. استمر في التطوير، والبحث، واستكشاف مفاهيم جديدة. ما شاء الله، بدايتك ممتازة! و نعتذر بشدة عما حدث سلام عليكم
  25. اعتذر لك و بشدة بسبب هذا ولكم من فضلك هل يمكنك سؤالى هنا او يمكن ارفاق رابط السؤال الذى سألته و انا ساجيب عليك من فورى
×
×
  • أضف...