-
المساهمات
1588 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
1
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Khaled Osama3
-
اولا يجب عليك تحميل 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 الخاصة بك.
- 7 اجابة
-
- 1
-
في 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>
- 4 اجابة
-
- 1
-
و عليكم السلام ال 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!
- 5 اجابة
-
- 1
-
يمكنك تصفح موسوعة حسوب التي تحتوي على توثيق شامل للغة بايثون، حيث تجد المصطلحات الإنجليزية مرفقة بجانب الترجمة العربية. عن طريق هذا المسار. كما يوجد كتاب خاص بلغة بايثون تابع للأكاديمية، يقدم شرحاً وافياً للغة ومدعوماً بالمصطلحات الإنجليزية بجانب العربية. يمكنك تحميل الكتاب من هذه الصفحة: البرمجة بلغة بايثون. إذا واجهتك صعوبة فستجد أسفل الدرس صندوق للتعليقات كما هنا، او هنا يمكنك السؤال عن اى سؤال و سوف يتم الرد عليها سريعا. .
- 3 اجابة
-
- 1
-
و عليكم السلام يمكن استخدام الاتنين pandas او sql على حسب المهمة التى تقوم بها. فهذا على حسب حجم البيانات وطبيعة العمل و لكن فى مسار تعلم الالة يفضل استخدام pandas لعمليات مثل ال cleaning و غيرها قبل إدخالها إلى قاعدة البيانات.
- 5 اجابة
-
- 1
-
و عليكم السلام كان يوجد مشكلة فى زر الجمع و زر المساوة يجب ان تضع فى ال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() بالتوفيق.
- 2 اجابة
-
- 1
-
و عليكم السلام ال int ليس دالة هو class. و هو يعتبر من انواع البيانات فى البايثون (data type). و يكون استخدامه هو انك تنشئ كائنات objects من النوع int عن طريق استخدام class. و يمكنك معرفة هذا عن طريق استخدام هذا الكود: variable = int(10) print(type(variable)) و سوف تكون النتيجة: <class 'int'>
- 3 اجابة
-
- 1
-
و عليكم السلام لغة البايثون لست من اللغات البطيئة ولاكنها تستخدم فى اكثر من و مجال و technology و هى ايضا تقوم بالتحكم فى ال memory و تقوم بالعديد من العمليات فى وقت التشغيل. و ال interpreter يقوم بالتحقق من كل سطر على حدى لذلك قد ياخذ بعض الوقت يجب ال ننسى مميزات ال interpreter مثل: اسرع و اسهل فى عملية التصحيح من اجل تشغيل الكود و يسمح لل programmers برؤية الخطأ بشكل اسرع. و ايضا سهولة تعديلها بعد ذلك. لانه كما نعرف ان لغة البايثون متعددة الاستخدامات و يهمها سرعة التطوير اكثر من امور اخرى. بالتوفيق
- 5 اجابة
-
- 1
-
يمكننا ذلك عن طريق استخدام مكتبة 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 هى من تتحكم فى الوقت
- 6 اجابة
-
- 1
-
من فضلك إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتكى بشكل أفضل.
-
بعد مراجعة الكود، لم أجد أي أخطاء كبيرة تعيق فكرة التشغيل. و لكن هناك بعض النقاط يمكن تحسينها او تكون سبب لمشاكل صغيرة في الكود، مثل: قم بإضافة المكتبة المناسبة وهي tooltip وفي حال كنت تجرب إضافة Tooltip بطريقة مختلفة، فقد لا تكون مدعومة بشكل ما مع Tkinter. او قم بإضافة ال parameter الرابع وهو يكون النص الذي يظهر في الـ Tooltip: self.create_button("1", 1, 0, "اضغط لإدخال الرقم 1") بالتوفيق
- 2 اجابة
-
- 1
-
وعليكم السلام يمكنك ذلك عن طريق استخدام مكتبة 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.
- 3 اجابة
-
- 1
-
يمكنك تحويلها باسخدام الدالة 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
- 1 جواب
-
- 1
-
وعليكم السلام احسنت عملا. برافو استخدمت ال OOP كويس و عرفت تظبط ال inheritance بشكل كويس و ال exceptions. و من الرائع ايضا استخدامك للرموز و العبارات الموضحة لل errors. و لكن لدى بعض النصائح: من الافضل انك توضح ال comments فى اجزاء الكود أكثر ليسهل على باقى المطوريين فهمه بشكل اسرع. لازم تجرب الكود عن طريق انك تعمل فايل تانى وتجرب تستخدم فيه ال objects من كل ال classes اللى عملته و هذا ما نطلق عليه ال Unit test: و هو تجربه الكود الخاص بك من الافضل ايضا ان لا تجعل الكود كله فى نفس الملف ففى المشاريع الكبيرة سوف يصعب عليك فهم و تعديل الكود بعد ذلك. استمر في التطوير، والبحث، واستكشاف مفاهيم جديدة. ما شاء الله، بدايتك ممتازة! و نعتذر بشدة عما حدث سلام عليكم
- 2 اجابة
-
- 1
-
اعتذر لك و بشدة بسبب هذا ولكم من فضلك هل يمكنك سؤالى هنا او يمكن ارفاق رابط السؤال الذى سألته و انا ساجيب عليك من فورى
-
اهلا بحضرتك نتعذر لك بسبب هذا من فضلك اخبرنى ماهو سؤالك؟ و إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات لان هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
-
سلام عليكم يوجد الكثير من المواقع التى توفر تصميمات جاهزة لعمل عروض تقديمية مجانية. مثل: Canva و Google Slidesو Prezi وغيرهم. اما بالنسبة لكتابة كود بلغة بايثون لانشاء عرض تقديمي او باي لغة برمجة اخرى او برامج متخصصة في ذلك ؟ يمكنك ذلك باستخدام مكتبة ال python-pptx فى ال Python و هذا مثال على ذلك. from pptx import Presentation # إنشاء عرض تقديمي جديد prs = Presentation() # إضافة شريحة جديدة slide_layout = prs.slide_layouts[0] # اختيار تصميم الشريحة slide = prs.slides.add_slide(slide_layout) # إضافة عنوان إلى الشريحة title = slide.shapes.title title.text = "العنوان الرئيسي" # إضافة نص آخر إلى الشريحة subtitle = slide.placeholders[1] subtitle.text = "نص توضيحي" # حفظ العرض التقديمي prs.save('presentation.pptx') و يمكنك تثبيتها بواسطة الامر: pip install python-pptx
-
و عليكم السلام Maintainability Index :هو مقياس طورته مايكروسوفت لقياس سهولة صيانة الكود البرمجي. يتم حساب هذا المؤشر بناءً على مجموعة من العوامل التي تشمل: 1. التعقيد الحلقي (Cyclomatic Complexity): وهو مقياس لتعقيد الشيفرة البرمجية ويشير إلى عدد المسارات المختلفة التي يمكن أن يتخذها البرنامج. 2. طول الكود (Lines of Code): يشير إلى عدد الأسطر البرمجية المكتوبة. 3. مؤشر هالستيد (Halstead Volume): وهو مقياس يستند إلى عدد المشغلين والمعاملات في الكود، ويقيس مقدار المعلومات المطلوبة لفهم الشيفرة. والمؤشر يعطي نتيجة على مقياس من 0 إلى 100: - 100: يشير إلى أن الكود سهل الصيانة جدًا. - 0: يشير إلى أن الكود صعب الصيانة. فكلما كان المؤشر قريب من ال 100 فيعتبر الكود سهل الصيانة. وغالبًا، يتم استخدام هذا المؤشر في أدوات تحليل الكود الساكن (Static Code Analysis) لتقديم تقديرات حول مدى جودة الكود من حيث الصيانة وتسهيل تحديد النقاط التي قد تتطلب إعادة صياغة أو تحسينات.
- 5 اجابة
-
- 1
-
هل يمكنك ارفاق الخطأ اللذى يظهر لك
-
Docker و Neovim : يمكن أن يكونا استثمارًا مفيدًا لوقتك اليومي بناءً على احتياجاتك. Docker يسهل إدارة البيئات المختلفة وتشغيل التطبيقات على نحو متسق ومستقر، خاصة عند العمل في فرق أو التعامل مع إنتاج وتطوير متعدد الأنظمة. و هى من اكثر الانظمة استخداما فى الشركاتز أما Neovim، فهو نسخة محسنة من Vim، يوفر تحريرًا قويًا ومخصصًا للكود، ويمكنك تحسين كفاءتك في التحرير بمرور الوقت. Golang صحيح أنها ليست كائنية التوجه بشكل تقليدي كما هو الحال في لغات مثل Java أو Python. ولكن Golang تعتمد على البساطة والوضوح، وتستخدم مبدأ التكوين (composition) بدلاً من التوريث (inheritance) لزيادة إعادة استخدام الشيفرة. يساعد ذلك في بناء تطبيقات قابلة للتوسع وأكثر وضوحًا. كما أن نظام الـ goroutines وchannels في Golang يساعد في التعامل مع التزامن بكفاءة عالية، وهو أمر حيوي للتطبيقات الكبيرة. أما عن الأطر، فهناك مكتبات وأطر مثل Gin و Echo و Fiber التي تعتبر خفيفة وتدعم عملية تطوير فعالة في Golang، على الرغم من أن نهج Golang يكون أحيانًا أقل تعقيدًا من بعض الأطر الضخمة الموجودة في لغات أخرى. ولكن Golang ما زالت حديثة ليست مثل: java و python على سبيل المثال. فمن الافضل الا تسثمر فيها وقتك الان,
-
أشهر تقنيات الـ Caching المستخدمة مع PHP بتعتمد على نوع البيانات التي تريد تخزينها وسيناريو الاستخدام. ويوجد أكثر من تقنية مشهورة شغالين بيها مع PHP: OPcache هذا مثل محسن للـ opcode مدمج مع PHP. بيشتغل إنه يخزن النسخ المترجمة من ملفات PHP في الرام (الذاكرة)، وهذا يقلل من وقت تنفيذ الأكواد لأن مفيش احتياج إن الملفات تترجم كل مرة تتطلب فيها. وهذا بيحسن الأداء بشكل كبير. فعال جدا في تحسين أداء تطبيقات PHP، وسهل في الإعداد والاستخدام، وبينفع مع معظم المواقع والتطبيقات. Memcached هذا نظام تخزين مؤقت موزع في الرام (الذاكرة)، وبيتستخدم لتخزين البيانات المؤقتة وتخفيف الحمل على قاعدة البيانات. ممكن تخزن به جلسات المستخدم، نتائج الاستعلامات، أو أي بيانات اخري تريد تخزينها بشكل مؤقت. سريع جدا، ويدعم التوزيع على أكتر من سيرفر، ومستخدم في التطبيقات الكبيرة التي عليها ضغط. Redis هذا مثل قاعدة بيانات في الرام (in-memory data store) بتشتغل كمخزن بيانات، وCache، ووسيط رسائل. بيدعم أنواع كثيره من البيانات مثل السلاسل والقوائم والمجموعات. بيدعم ميزات متقدمة مثل استمرارية البيانات (persistence)، والنسخ الاحتياطي، وبيتعامل مع البيانات المعقدة. Redis يعمل في التطبيقات التي محتاجة أداء عالي. Varnish هذا مسرع HTTP بيشتغل كطبقة بين المستخدم والسيرفر، وبيتخزن به محتوى HTTP مؤقتا في الرام لتحسين سرعة تحميل الصفحات. فعال في تسريع تحميل الصفحات، وبيقلل الحمل على السيرفر، وبيستخدم بشكل شائع في المواقع اللي عليها حركة كبيرة. الخلاصه إذا كنت محتاج تحسين أداء تنفيذ PHP نفسه، إذا OPcache هو الأنسب. إذا كنت محتاج تخزين مؤقت للبيانات بشكل عام (مثل نتائج الاستعلامات أو جلسات المستخدم)، اذا Memcached أو Redis هما الأنسب. إذا كنت محتاج تسريع تحميل صفحات الويب من خلال تخزين مؤقت لمحتوى HTTP، اذا Varnish سيكون خيار مناسب.
-
وعليكم السلام يمكنك تحويل ملفات CSV إلى قاعدة بيانات SQL بسهولة باستخدام مكتبة مثل: pandas sqlite3 SQLAlchemy إليك كود باستخدام sqlite3: import pandas as pd import sqlite3 # تحميل ملف CSV df = pd.read_csv("data.csv") # إنشاء اتصال بقاعدة البيانات conn = sqlite3.connect("database.db") # تحويل البيانات إلى SQL df.to_sql("table_name", conn, if_exists="replace", index=False) # إغلاق الاتصال بقاعدة البيانات conn.close() اما الفائدة من تحويل CSV إلى SQL في مجال تعلم الآلة والتعلم العميق: إذا كنت تعمل مع بيانات ضخمة، فوجود البيانات في قاعدة بيانات SQL يسهل التعامل مع ال complex queries وأكثر كفاءة مقارنةً بـ CSV الذي يعاني من مشاكل عندما تكون البيانات كبيرة. و ال SQL يقدم هيكلًا منظمًا للبيانات، حيث يمكنك الربط بين الجداول والاستعلام عن البيانات بطريقة أكثر تماسكًا من مجرد ملفات CSV . اما في المشاريع الحقيقية فغالبًا ما تحتاج إلى إجراء تعديلات متكررة على البيانات، سواء بإضافة بيانات جديدة أو تعديل الموجودة، وهو ما يتم بسهولة باستخدام SQL. و ذلك يتم استخدام ال SQL بشكل رئيسي. اما ال CSV: يتم استخدامه بشكل مؤقت أو لنقل البيانات بين الأنظمة المختلفة، ولكنه ليس مثاليًا لتخزين البيانات بشكل دائم بسبب محدودياته في الأداء والتنظيم. بايثون يوفر لك الأدوات للتعامل مع كليهما، مما يسهل التنقل بينهما حسب الحاجة في مشروعك.
- 7 اجابة
-
- 1
-
يمكن ان تستخدم دالة اسمها ToLower() اللي بتشتغل على النصوص (Strings). string text = "HELLO WORLD"; string lowerText = text.ToLower(); Console.WriteLine(lowerText); // هيطلعلك النص: hello world في هذا المثال، النص "HELLO WORLD" تم تحويله بالكامل إلى أحرف صغيرة باستخدام ToLower(). كل ما عليك فعله هو استدعاء هذه الدالة على النص الذي تريد تحويله.
-
من فضلك اذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل. أما إذا كان سؤال عام فيرجي ارسال كود و صورة للمشكلة وذلك لمساعدتك بشكل أفضل.
- 1 جواب
-
- 1
-
وعليكم السلام argv هو اختصار لـ argument vector. يتم استخدامه لجلب قائمة بالوسائط (arguments) التي يتم تمريرها إلى البرنامج عند تشغيله من سطر الأوامر او cmd. sys.argv يمن العناصر. - العنصر الأول (sys.argv[0]) يحتوي على اسم البرنامج أو المسار الذي تم تشغيله من خلاله. - العناصر التالية (sys.argv[1], sys.argv[2])و غيرها. تحتوي على الوسائط التي تم تمريرها من سطر الأوامر عند تشغيل البرنامج. و نوضح ذلك بمثال و نقل ان لديك برنامج بايثون يسمى task.py، وكتبت داخله الكود التالي: import sys # طباعة قائمة الوسائط الممررة إلى البرنامج print("Arguments passed:", sys.argv) # طباعة كل وسيطة على حدة print("Program name:", sys.argv[0]) print("First argument:", sys.argv[1]) print("Second argument:", sys.argv[2]) print("Third argument:", sys.argv[3]) إذا قمت بتشغيل البرنامج من سطر الأوامر CMD على الشكل التالي: python example.py arg1 arg2 arg3 سيظهر لك الناتج التالي: Arguments passed: ['example.py', 'arg1', 'arg2', 'arg3'] Program name: example.py First argument: arg1 Second argument: arg2 Third argument: arg3 و يمكن استخدامه إذا كنت تريد إنشاء برامج تتعامل مع المدخلات القادمة من سطر الأوامر، مثل البرامج التي تعتمد على وسائط لتغيير سلوكها حسب المعطيات التي يتم تمريرها عند التشغيل. و من فضلك إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
- 3 اجابة
-
- 1