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

عبدالباسط ابراهيم

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

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

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

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

    11

كل منشورات العضو عبدالباسط ابراهيم

  1. نعم ليس هناك فرق كبير في الأداء بين الطريقتين حيث أن ال module يتم إستدعائه في كلا الطريقتين لذلك يمكنك استخدام الطريقة التي تفضلها فمثلاً الطريقة الأولى لا تحتاج لأكثر من Import لاستخدام عدة دوال بينما في الطريقة الثانية تحتاج لذلك في الطريقة الأولى عند استخدام دالة تحتاج للوصول لها كالتالي module.method مما قد تبدو ممله بينما في الطريقة الثانية لا تحتاج لذلك لذلك بالأخير فإنه يمكنك استخدام الطريقة التي تفضلها وتسهل العمل عليك
  2. يمكنك تنفيذ المطلوب من خلال ال cookies كالتالي <?php if (!isset($_COOKIE['firsttime'])) //إذا كان المستخدم يزور الموقع لأول مرة { setcookie("firsttime", "no", /*cookie قم بتحديد فترة إنتهاء ال */); header('Location: first-time.php'); exit(); } else { header('Location: index.php'); exit(); } ?>
  3. نعم يوجد إختصار لل if في البايثون ولكن ليس مثل javascript وهو كما في المثال التالي a,b=5,7 x = a > b and "True" or "False" #or يتم إرجاع ما بعد ال false وإذا كان and يتم إرجاع ما بعد ال true في حالة
  4. يمكنك تحقيق ذلك أيضاً من خلال التالي s = set(list2) #set ل list2 نحول أولاً ال list3 = [x for x in list1 if x not in s] #temp3 نقومب إرجاع الإختلافات بينهما في ال
  5. يمكنك معرفة اللغة التي يستخدمها المستخدم من خلال javascript كما في التعليقات السابقة أو في حالة أنه تريد استخدام لغات ال backend مثل php يمكنك معرفة اللغة من خلال الدالة التالية $_SERVER['HTTP_ACCEPT_LANGUAGE'] ويمكنك الحصول على أول حرفين من الناتج مثل en ليدل على اللغة الإنجليزية يمكنك استخدام الدالة substr كالتالي echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  6. يمكنك تغيير حجم ال textarea من خلال خاصية rows و cols كالتالي textarea.rows = rows;//القيمة التي تريدها أو يدخلها المستخدم textarea.cols = cols;//القيمة التي تريدها أو يدخلها المستخدم يمكنك الإعتماد على هذه الخاصية لتغيير الحجم فقم بتعديل البرنامج الخاص بك ليعمل بالشكل المطلوب
  7. هناك حل آخر أبسط قليلاً وهو كالتالي s = "The quick brown fox jumps over the lazy dog" for r in (("brown", "red"), ("lazy", "quick")): s = s.replace(*r) #الناتج: The quick red fox jumps over the quick dog
  8. يمكنك عمل ذلك من خلال استخدام yield كالتالي def read_in_chunks(file_object, chunk_size=1024): while True: data = file_object.read(chunk_size)#يمكننا تحديد الحجم المطلوب قرائته chunk_size باستخدام المعامل if not data: break yield data with open('really_big_file.dat') as f: for piece in read_in_chunks(f): process_data(piece) تقوم yield بإكمال العمل بدلاً من البداية من الصفر فلن تقوم بقراءة الملف من البداية بل تكمل من حيث توقفت
  9. أعتقد أنك أبتعدت لفترة عن التطبيق في المهارات التي تعلمتها فالحل بالنسبة في الدورات التي تريد تعلم المصطلحات منها قم بتطبيق مشروع وراء المدرب حتى يمكنك تذكر المصطلحات وتذكر ما تعلمته (المشروع الموجود في الدورة فقط وليس الشرح) ويمكنك أيضاً بدلاً من مشاهدة الفيديوهات قراءة المراجع الموجودة في موسوعة حسوب إذا كانت اللغة الإنجليزية جيدة إلى حد ما يمكنك قراءة ال documentation للغات التي تريد تذكرها وبعد قراءة ال documentation ستتطور لديك هذه المهارة أو اللغة بشكل كبير
  10. في ميزانية ال 5000 جنيه مصري لا يمكن تجميع جهاز بكارت شاشة منفصل وذلك في حالة أن القطع جديدة ولكن البديل عن ذلك يمكن تجميع جهاز ب APU وهو معالج بكارت شاشة مدمج ويعتبر في نفس هذه الفئة (Ryzen 3 3200g أفضل إختيار متوفر) ولكن الأداء جيد جداً لهذه الفئة (يفضل إضافة قطعتين من الرام بدلاً من واحدة لأداء أفضل) ويمكنك تجميع باقي القطع بناء على هذا ال APU وستكون في حدود ال 5000 بالنسبة لأداء هذه التجميعة فيمكنها تشغيل معظم البرامج والألعاب الموجودة بدون مشكلة ولن تواجه مشكلة سواء في التصميم أو البرمجة
  11. إذا كنت تقصد ال tooltip كما وضح وائل في التعليق السابق فبالطبع يمكنك عمل ذلك من خلال الخاصية title ولكن لن تتمكن من تعديل التنسيق حيث يبقى لل title نفس الشكل ولن تستطيع التعديل عليه حيث يبدو من الصورة أنك تحتاج شكل معين يأخذ بعض التنسيقات وهناك العديد من الطرق عن طريق ال javascript عن طريق ال css فقط بدون الحاجة لل javascript أو يمكنك البحث عن الأشياء الجاهزة فقط أبحث عن ال tooltip تطبيق ذلك عن طريق ال css سيكون كالتالي <div data-tooltip="hello"> <!-- لم نستخدم ال title --> something here </div> ال css [data-tooltip]:before { position : absolute; content : attr(data-tooltip); opacity : 0; /* يمكنك تنسيقه كما تريد عن طريق إضافة التنسيقات هنا */ } [data-tooltip]:hover:before { /*title الجزء المسؤل عن ظهور ال */ opacity : 1; }
  12. يمكننا إنشاء كائن بلغة python عن طريق التالي قم بقراءة الشرح المرفق class Person: #لإنشائه ويمكنك ملاحظة أنن ا نجعل أول حرف كبير class نستخدم كلمة def __init__(self, first_name, last_name): #self تعود على الكلاس self.first_name = first_name#من خصائص الكائن first_name هنا تصبح الخاصية self.last_name = last_name #من خصائص الكائن first_name هنا تصبح الخاصية def full_name(self):#من دوال الكائن first_name هنا تصبح الخاصية return f'{self.first_name} {self.last_name}' def name(self):#من دوال الكائن first_name هنا تصبح الخاصية return f'{self.last_name}, {self.first_name}'
  13. كما أخبرك محمد في التعليق السابق أن المشكلة في استدعاء المكتبة ويمكنك حلها بواسطة webpack.ProvidePlugin كما وضح ولكن أرى أنك تستخدم ال expose-loader لذلك الحل بالنسبة لك فقط جرب استدعاء المكتبة كالتالي import $ from "jquery"; //بدلاً من import 'jquery/dist/jquery.min';
  14. في حالة أن ال keys أكثر من ال values يمكنك استخدام ال itertools.zip_longest حتى يمكنك استخدام ال fillvalue لتحديد قيمة لل values المتبقية كالتالي from itertools import zip_longest x =[1, 2, 3, 4, 5, 6, 7] y =[8, 9, 10] z = list(zip_longest(x, y, fillvalue ='_' )) print(z) #output #[(1, 8), (2, 9), (3, 10), (4, '-'), (5, '-'), (6, '-'), (7, '-' )]
  15. يمكنك أيضاً استخدام ال multiprocessing.Process لعمل المطلوب كالتالي import multiprocessing import time # bar def bar(): for i in range(100): print "Tick" time.sleep(1) if __name__ == '__main__': # process نقوم بتنفيذ الدالة ك p = multiprocessing.Process(target=bar) p.start() # الإنتظار ل 10 ثواني p.join(10) # مازالت تعمل process التحقق إذا كانت ال if p.is_alive(): print "running... let's kill it..." # إيقاف الدالة p.terminate() #أيضاً kill يمكن إيقاف الدالةعن طريق # p.kill() p.join()
  16. بالطبع يمكنك تحديد الإصدار من خلال الأمر --python أو -p وذلك في حالة أنك غالباً تقوم بالتبديل بين الإصدارات ولكن يمكنك تثبيت الإصدار المستخدم من خلال ال virtualenv يمكنك عمل ذلك من خلال الملف .bashrc قم بإضافة السطر التالي له export VIRTUALENV_PYTHON=/مسار/الإصدار/الذي/تريده
  17. بالإضافة للمميزات في التعليق السابق يعتبر ASP.NET CORE وهو النسخة الحديثة من ال ASP.NET وتعتبر هذه النسخة open source مما يساهم في تطورها بشكل سريع وأفضل وبالنسبة لسؤالك هل هذه التقنية مدفوعة ؟ فتعتبر هذه التقنية مجانية تماماً ولكن مثلاً لو قمت باستخدام بيئة التطوير visual studio النسخة الأعلى أو التجارية ستجد أنه غير مجاني ولكن هناك بديل جيد له visual studio code لذلك يمكنك تطوير التطبيقات بهذه التقنية بشكل مجاني
  18. أيضاً بالإضافة لاستخدام الدالة .decode بهذا الشكل .decode("utf-8") في الإصدار الثالث من python ال encoding الإفتراضي أصبح "utf-8" لذلك يمكنك استخدام الدالة بالشكل التالي في الإصدار الثالث print(b"Ahmed".decode())
  19. من خلال ال html يمكن إضافتها من خلال الوسم link ويجب وضعه في ال head كالتالي <head > <link rel="icon" type="image/png" href="/favicon.png"/> </head>
  20. يتم إضافة object إلى list عن طريق الدالة append كالتالي my_list = [2, 3, 1, -4, -1, -4] my_list.append(8) print(my_list) #list لطباعة محتويات ال وسيكون الناتج [2, 3, 1, -4, -1, -4, 8] ويمكنك أيضاً استخدام الدوال extend أو insert
  21. يمكنك أن تجد العديد من الملخصات للغة c أو العديد من اللغات الأخرى عن طريق البحث عن اللغة التي تريدها ثم إضافة sheet cheat وسيظهر معك العديد من الملخصات المفيدة للغة أو أي شيء آخر ويمكنك أن تجد العديد من المقالات الرائعة من خلال البحث في الموقع من مربع البحث في الأعلى
  22. بالإضافة للإستخدام في التعليق السابق يوجد أيضاً عدة استخدامات منها تنسيق الأرقام الكبيرة بشكل يسهل قرائته كالتالي num = 1_000_000 وهو نفس الرقم بدون الفاصلة num = 1000000 ولكن لتسهيل قرائته يقوم المترجم بحفظ آخر قيمة في المتغير " _ " كالتالي >>> 10 10 >>> _ 10 >>> _ * 3 30 >>> _ * 20 600 تستخدم لتدل على أن الالخاصية أو الدالة private عندما تسبق اسم الدالة أو الخاصية ولكن هذا convention أو من التقاليد المتبعة بين المبرمجين وليس خاصية في اللغة class _Base: # private class _hidden_factor = 2 # private variable
  23. توجد عدة طرق لإيقاف ال output buffering منها يمكنك استخدام flush للدالة print كمثال import time for buffer in range(20): print(buffer, end=" ", flush=True) time.sleep(2) أو يمكنك استخدام ()sys.stdout.flush وتوجد عدة طرق أخرى قم بالبحث عنها لإختيار الطريقة الأفضل لك
  24. يمكنك استخدام ال regular expression التالي '(\$[0-9]+(.[0-9]+)?)' وسيقوم باستخراج الأعداد التي تتبعها علامة ال $ ليصبح الكود import re text = input() result = [x[0] for x in re.findall('(\$[0-9]+(\.[0-9]+)?)', text)]
  25. تقوم محددات الوصول بتحديد إمكانية الوصول للدوال أو خصائص الكائن والفرق بين المحددات كالتالي private يمكن الوصول لخصائص الكائن من داخل الكائن نفسه فقط كمثال class A{ private int data=40; private void msg(){System.out.println("Hello java");} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//يتم توليد خطأ obj.msg();//يتم توليد خطأ } } Protected يمكن الوصول لخصائص الكائن سواء داخل ال package أو خارجها ولكن من خلال الكائنات التي ترث الكائن الأب Public يمكن الوصول لخصائص الكائن سواء داخل ال package أو خارجها من أي مكان في البرنامج Default وهي القيمة الإفتراضية في حالة لم تضع محدد وصول يمكن الوصول لخصائص الكائن داخل ال package فقط من أي مكان في البرنامج
×
×
  • أضف...